Class: WMATA::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/resource.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs = {}) ⇒ Resource

Returns a new instance of Resource.



28
29
30
# File 'lib/resource.rb', line 28

def initialize(attrs={})
  @attrs = attrs
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args) ⇒ Object



32
33
34
35
# File 'lib/resource.rb', line 32

def method_missing(m, *args)
  camel_cased = m.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
  @attrs[m.to_s] or @attrs[camel_cased] or super
end

Instance Attribute Details

#attrsObject (readonly)

Returns the value of attribute attrs.



26
27
28
# File 'lib/resource.rb', line 26

def attrs
  @attrs
end

Class Method Details

.endpoint(value = nil) ⇒ Object



16
17
18
19
# File 'lib/resource.rb', line 16

def endpoint(value=nil)
  @endpoint = value if value
  @endpoint || "#{self.name.capitalize}s"
end

.get_all(params = {}) ⇒ Object Also known as: find_all



4
5
6
7
# File 'lib/resource.rb', line 4

def get_all(params={})
  url = WMATA.base_url % [service, endpoint, to_query_string(params)]
  HTTParty.get(url).first.last.map {|values| new(values) }
end

.service(value = nil) ⇒ Object



11
12
13
14
# File 'lib/resource.rb', line 11

def service(value=nil)
  @service = value if value
  @service || "#{self.name.capitalize}s"
end

.to_query_string(params) ⇒ Object



21
22
23
# File 'lib/resource.rb', line 21

def to_query_string(params)
  "&" + params.map {|k, v| "#{k.to_s}=#{v}"}.join("&")
end