Sha256: 08f517104ae4ccbaa206a735fe84d0fc65299a837524a1fc36fc441010be8656

Contents?: true

Size: 899 Bytes

Versions: 21

Compression:

Stored size: 899 Bytes

Contents

require 'volt/models/persistors/base'
require 'volt/models/persistors/model_identity_map'

module Persistors
  class Store < Base

    @@identity_map = ModelIdentityMap.new

    def initialize(model, tasks=nil)
      @tasks = tasks
      @model = model

      @saved = false
    end

    def saved?
      @saved
    end

    # On stores, we store the model so we don't have to look it up
    # every time we do a read.
    def read_new_model(method_name)
      # On stores, plural associations are automatically assumed to be
      # collections.
      options = @model.options.merge(parent: @model, path: @model.path + [method_name])
      if method_name.plural?
        model = @model.new_array_model([], options)
      else
        model = @model.new_model(nil, options)
      end

      @model.attributes ||= {}
      @model.attributes[method_name] = model

      return model
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
volt-0.7.23 lib/volt/models/persistors/store.rb
volt-0.7.22 lib/volt/models/persistors/store.rb
volt-0.7.21 lib/volt/models/persistors/store.rb
volt-0.7.20 lib/volt/models/persistors/store.rb
volt-0.7.19 lib/volt/models/persistors/store.rb
volt-0.7.18 lib/volt/models/persistors/store.rb
volt-0.7.17 lib/volt/models/persistors/store.rb
volt-0.7.16 lib/volt/models/persistors/store.rb
volt-0.7.15 lib/volt/models/persistors/store.rb
volt-0.7.14 lib/volt/models/persistors/store.rb
volt-0.7.13 lib/volt/models/persistors/store.rb
volt-0.7.12 lib/volt/models/persistors/store.rb
volt-0.7.10 lib/volt/models/persistors/store.rb
volt-0.7.9 lib/volt/models/persistors/store.rb
volt-0.7.8 lib/volt/models/persistors/store.rb
volt-0.7.7 lib/volt/models/persistors/store.rb
volt-0.7.6 lib/volt/models/persistors/store.rb
volt-0.7.5 lib/volt/models/persistors/store.rb
volt-0.7.4 lib/volt/models/persistors/store.rb
volt-0.7.3 lib/volt/models/persistors/store.rb