class Nard::Appi::Client::Util::ArgsNormalizer

API へ送る情報を処理するクラス

Public Class Methods

execute( *args ) click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 16
def self.execute( *args )
  new( *args ).to_a
end
new( *args ) click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 20
def initialize( *args )
  @args = [ args ].flatten
  @options = @args.extract_options!

  process_instance_variables unless has_options?
end

Public Instance Methods

to_a() click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 27
def to_a
  [ @args, @options ]
end

Private Instance Methods

has_options?() click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 33
def has_options?
  @options.present?
end
options_from_uri( uri ) click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 49
def options_from_uri( uri )
  uri.query.present? ? Hash[ URI::decode_www_form( uri.query ) ] : {}
end
process_instance_variables() click to toggle source
# File lib/nard/appi/client/util/args_normalizer.rb, line 37
def process_instance_variables
  _args = @args.dup
  last_arg = @args.pop
  if last_arg.present?
    uri = URI.parse( last_arg.to_s )
    @args = [ @args, uri.path ].flatten
    @options = options_from_uri( uri )
  else
    @args = _args
  end
end