Sha256: 31cbe1aee15b20f9fcf0e258540d1d0327dde0033fe84e27decdefd0f6d2b323
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true module Dayman class Resource attr_accessor :id, :attributes, :relationships class << self extend Forwardable attr_accessor :site def_delegators :request, :all, :fields, :filter, :find, :includes, :select, :sort, :where def path name.underscore.pluralize end def has_one(relationship_name) attr_accessor relationship_name end def has_many(relationship_name) instance_variable_name = "@#{relationship_name}".to_sym define_method(relationship_name) do if instance_variable_defined?(instance_variable_name) instance_variable_get(instance_variable_name) else instance_variable_set(instance_variable_name, []) end end end private def request Request.new(self) end end def initialize(id: nil, attributes: {}) @id = id @attributes = attributes end def method_missing(name, *args, &block) attributes.key?(name) ? attributes[name] : super end def respond_to_missing?(name, include_private = false) attributes.key?(name) || super end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dayman-0.1.1 | lib/dayman/resource.rb |