module IsResource
Public Class Methods
included(base)
click to toggle source
# File lib/spooky/is_resource.rb, line 2 def self.included(base) base.class_eval do attr_reader(*const_get("ATTRIBUTES")) def initialize(attrs = {}) self.class.const_get("ATTRIBUTES").each do |attribute| instance_variable_set("@#{attribute}", attrs[attribute]) end parse_datetimes(attrs) parse_attributes(attrs) end def parse_datetimes(attrs) ["created_at", "updated_at", "published_at"].each do |date_attr| instance_variable_set("@#{date_attr}", DateTime.iso8601(attrs[date_attr])) if attrs[date_attr].present? end end def parse_attributes(attrs) # Abstract method, should be overridden in child if needed. end end end
new(attrs = {})
click to toggle source
# File lib/spooky/is_resource.rb, line 6 def initialize(attrs = {}) self.class.const_get("ATTRIBUTES").each do |attribute| instance_variable_set("@#{attribute}", attrs[attribute]) end parse_datetimes(attrs) parse_attributes(attrs) end
Public Instance Methods
parse_attributes(attrs)
click to toggle source
# File lib/spooky/is_resource.rb, line 21 def parse_attributes(attrs) # Abstract method, should be overridden in child if needed. end
parse_datetimes(attrs)
click to toggle source
# File lib/spooky/is_resource.rb, line 15 def parse_datetimes(attrs) ["created_at", "updated_at", "published_at"].each do |date_attr| instance_variable_set("@#{date_attr}", DateTime.iso8601(attrs[date_attr])) if attrs[date_attr].present? end end