Module: EBay

Defined in:
lib/eBayAPI.rb,
lib/RequesterCredentialsHandler.rb

Defined Under Namespace

Classes: API, Error, RequesterCredentialsHandler

Class Method Summary collapse

Class Method Details

.assign_args(obj, args_hash) ⇒ Object



208
209
210
211
212
213
214
215
216
217
218
# File 'lib/eBayAPI.rb', line 208

def assign_args(obj, args_hash)
  if args_hash
    args_hash.each do |key, val|
      key = fix_case_down(key.to_s) # lower first character

      if obj.respond_to? "#{key}="
        eval("obj.#{key} = val")
      end
    end
  end
end

.fix_case_down(name) ⇒ Object



225
226
227
228
# File 'lib/eBayAPI.rb', line 225

def fix_case_down(name)
  name[0] = name[0,1].downcase
  name
end

.fix_case_up(name) ⇒ Object



220
221
222
223
# File 'lib/eBayAPI.rb', line 220

def fix_case_up(name)
  name[0] = name[0,1].upcase # upper first character
  name
end

.method_missing(m, *args) ⇒ Object



194
195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/eBayAPI.rb', line 194

def method_missing(m, *args)
  type_name = fix_case_up(m.id2name)

  begin
    type = "#{type_name}Type"
    type_obj = eval("#{type}.new")
    EBay::assign_args(type_obj, args[0]) # args[0] is a hash of named parameters (like above)

    return type_obj
  rescue NameError
    raise(Error::UnknownType, "Invalid Type: #{type}", caller)
  end
end