Sha256: 3530381d76b99f93ba2d699c439d65fa1e85852c034a0d3628ec41944e37f236
Contents?: true
Size: 763 Bytes
Versions: 2
Compression:
Stored size: 763 Bytes
Contents
class Restly::Base::Resource::Specification::Fields < Restly::Proxies::Base attr_reader :spec def initialize(spec) @spec = spec @removed = Set.new @added = Set.new super Restly::Base::Fields::FieldSet.new(spec.model) end def -(field) @removed << field super end def +(field) @added << field super end private def method_missing(m, *args, &block) reload_specification! unless super.present? if (value = super).is_a? self.class __setobj__ value self else value end end def reload_specification! from_spec = spec[:attributes] || [] fields = (from_spec - @removed.to_a) + @added.to_a __setobj__ Restly::Base::Fields::FieldSet.new(spec.model, fields) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
restly-0.0.1.alpha.19 | lib/restly/base/resource/specification/fields.rb |
restly-0.0.1.alpha.18 | lib/restly/base/resource/specification/fields.rb |