Sha256: f5a19b0601be24e73ce91734db476bd0f2961f3167b1d90f4788039c6c7dde70
Contents?: true
Size: 1.05 KB
Versions: 25
Compression:
Stored size: 1.05 KB
Contents
# frozen_string_literal: true module ChartMogul module Concerns module Entries def self.included(base) base.extend ClassMethods base.instance_eval do @resource_root_key = :entries if @resource_root_key.nil? readonly_attr @resource_root_key, default: [] include API::Actions::All include Enumerable def_delegators @resource_root_key, :each, :[], :<<, :size, :length, :empty?, :first, :last resource_root_key = @resource_root_key.to_s base.send :define_method, 'set_' + resource_root_key do |entries| objects = entries.map do |entity| self.class.get_entry_class.new_from_json(entity) end instance_variable_set "@#{resource_root_key}", objects end end end module ClassMethods def set_entry_class(klass) instance_variable_set('@entry_class', klass) end def get_entry_class instance_variable_get('@entry_class') end end end end end
Version data entries
25 entries across 25 versions & 1 rubygems