module Essential::Resource::AttrMethods::ClassMethods
Public Instance Methods
filter_attrs(attributes)
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 18 def filter_attrs(attributes) filtered = {} attributes.keys.each do |k| if self.permitted_attrs.include?(k.to_sym) filtered[k.to_s] = attributes[k] end end filtered end
from_attributes(attributes, headers: @headers)
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 10 def from_attributes(attributes, headers: @headers) self.new(attrs: attributes, headers: headers) end
permitted_attrs()
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 14 def permitted_attrs _permitted_attrs.dup end
Protected Instance Methods
_permitted_attrs()
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 31 def _permitted_attrs @permitted_attrs ||= Set[:sid] end
attr_property(*names)
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 35 def attr_property(*names) attr_unfiltered(*names) names.each do |name| define_method(name.to_sym) do self[name.to_s] end end end
attr_schema(pairs)
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 48 def attr_schema(pairs) @schema ||= {} @schema = @schema.merge(Hash[pairs.map{|k,v| [k.to_s, v]}]) end
attr_unfiltered(*names)
click to toggle source
# File lib/essential/resource/attr_methods.rb, line 44 def attr_unfiltered(*names) _permitted_attrs.merge names.map(&:to_sym) end