Class: Atlas::Resource
- Inherits:
-
Object
- Object
- Atlas::Resource
- Defined in:
- lib/atlas/resource.rb
Overview
Base class for representing resources.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#tag ⇒ Object
Returns the value of attribute tag.
-
#url_builder ⇒ Object
Returns the value of attribute url_builder.
Instance Method Summary collapse
-
#initialize(tag, hash = {}) ⇒ Resource
constructor
A new instance of Resource.
- #inspect ⇒ Object
- #to_hash ⇒ Object
- #update_with_response(response, except_keys = []) ⇒ Object
Constructor Details
#initialize(tag, hash = {}) ⇒ Resource
Returns a new instance of Resource.
6 7 8 9 10 11 |
# File 'lib/atlas/resource.rb', line 6 def initialize(tag, hash = {}) @tag = tag @url_builder = UrlBuilder.new tag hash.each { |k, v| send("#{k}=", v) if respond_to?("#{k}=") } end |
Instance Attribute Details
#tag ⇒ Object
Returns the value of attribute tag.
4 5 6 |
# File 'lib/atlas/resource.rb', line 4 def tag @tag end |
#url_builder ⇒ Object
Returns the value of attribute url_builder.
4 5 6 |
# File 'lib/atlas/resource.rb', line 4 def url_builder @url_builder end |
Instance Method Details
#inspect ⇒ Object
28 29 30 31 |
# File 'lib/atlas/resource.rb', line 28 def inspect objects = to_hash.map { |k, v| "#{k}=#{v.inspect}" }.join(' ') "#<#{self.class.name}:#{object_id} #{objects}>" end |
#to_hash ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/atlas/resource.rb', line 20 def to_hash attrs = instance_variables.collect do |v| %w(@tag @url_builder).include?(v.to_s) ? next : v.to_s.sub(/^@/, '') end.compact! Hash[attrs.select { |v| respond_to? v }.map { |v| [v.to_sym, send(v)] }] end |
#update_with_response(response, except_keys = []) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/atlas/resource.rb', line 13 def update_with_response(response, except_keys = []) # remove keys that shouldn't be included except_keys.each { |k| response.delete(k) } response.each { |k, v| send("#{k}=", v) if respond_to?("#{k}=") } end |