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.



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

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.



16
17
18
19
20
21
22
# File 'lib/wrapper/resource_mappings.rb', line 16

def map_to(*elements)
  self.class_eval <<-EOF
    def self.element_names
      #{elements.inspect}
    end
  EOF
end

#map_to_plural(*elements) ⇒ Object

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



25
26
27
28
29
30
31
# File 'lib/wrapper/resource_mappings.rb', line 25

def map_to_plural(*elements)
  self.class_eval <<-EOF
    def self.plural_element_names
      #{elements.inspect}
    end
  EOF
end

#no_mappingObject

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



34
35
36
37
38
39
# File 'lib/wrapper/resource_mappings.rb', line 34

def no_mapping
  self.class_eval <<-EOF
    def self.element_names; []; end
    def self.plural_element_names; []; end
  EOF
end

#plural_element_namesObject



45
46
47
# File 'lib/wrapper/resource_mappings.rb', line 45

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