Sha256: c366c4fb19317d638d102ea1bcef8b3d9a64e6e0f375cd982db1bb5b574ede94
Contents?: true
Size: 942 Bytes
Versions: 5
Compression:
Stored size: 942 Bytes
Contents
module Sprig class Dependency attr_reader :id def self.for(klass, sprig_id) klass = to_klass(klass) sprig_id = sprig_id.to_s collection.get(klass, sprig_id) || new(klass, sprig_id) end def initialize(klass, sprig_id) @klass = klass @sprig_id = sprig_id @id = SecureRandom.uuid self.class.collection.set(klass, sprig_id, self) end def sprig_record_reference "sprig_record(#{klass}, #{sprig_id})" end private attr_reader :klass, :sprig_id def self.to_klass(klass) if klass.is_a?(String) klass = klass.classify.constantize end raise ArgumentError, 'First argument must be a Class.' unless klass.is_a?(Class) klass rescue NameError => e raise NameError, e.message #TODO: rescue bad class references end def self.collection @@collection ||= DependencyCollection.new end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
sprig-0.1.4 | lib/sprig/dependency.rb |
sprig-0.1.3 | lib/sprig/dependency.rb |
sprig-0.1.2 | lib/sprig/dependency.rb |
sprig-0.1.1 | lib/sprig/dependency.rb |
sprig-0.1.0 | lib/sprig/dependency.rb |