Sha256: 6ac1271f80fb83f1f2d024bc726db4687947bb6ac835b2a763cd9710a0d4a5b9
Contents?: true
Size: 883 Bytes
Versions: 1
Compression:
Stored size: 883 Bytes
Contents
require "active_support/core_ext/string/inflections.rb" module Billogram class Resource class << self def relations @relations ||= [] end def relation(name, type, class_override: nil) relations << Relation.new(name, type, class_override: class_override) attr_accessor name end def build_objects(data) case data when Hash then new(data) when Array then data.map{|item| build_objects(item) } else data end end end def initialize(attributes = {}) Hash(attributes).each do |key, value| public_send("#{key}=", value) end RelationBuilder.new(self, attributes).call end def to_json(*args) instance_variables .map{|var| ["#{var}"[1..-1], instance_variable_get(var)]} .to_h .to_json(*args) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
billogram-0.4.2 | lib/billogram/resource.rb |