Module: Discogs::ResourceMappings::ClassMethods

Defined in:
lib/wrapper/resource_mappings.rb

Instance Method Summary collapse

Instance Method Details

#element_namesObject

Element defaults to prevent excess boilerplate code.



38
39
40
# File 'lib/wrapper/resource_mappings.rb', line 38

def element_names
  [ self.to_s.split("::")[-1].downcase.to_sym ]
end

#map_to(*elements) ⇒ Object

Helper method to map resource to element in API response.



12
13
14
15
16
17
18
# File 'lib/wrapper/resource_mappings.rb', line 12

def map_to(*elements)
  self.class_eval "    def self.element_names\n      \#{elements.inspect}\n    end\n  EOF\nend\n"

#map_to_plural(*elements) ⇒ Object

Helper method to map pluralised resource to element in API response.



21
22
23
24
25
26
27
# File 'lib/wrapper/resource_mappings.rb', line 21

def map_to_plural(*elements)
  self.class_eval "    def self.plural_element_names\n      \#{elements.inspect}\n    end\n  EOF\nend\n"

#no_mappingObject

Used by root classes (Discogs::Artist, etc) that should be built internally.



30
31
32
33
34
35
# File 'lib/wrapper/resource_mappings.rb', line 30

def no_mapping
  self.class_eval "    def self.element_names; []; end\n    def self.plural_element_names; []; end\n  EOF\nend\n"

#plural_element_namesObject



41
42
43
# File 'lib/wrapper/resource_mappings.rb', line 41

def plural_element_names
  [ (self.element_names[0].to_s + "s").to_sym ]
end