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