class Troo::Persistence::Local

Attributes

resource[R]

Public Class Methods

new(resource) click to toggle source

@param [] @return [Troo::Persistence::Local]

# File lib/troo/persistence/local.rb, line 22
def initialize(resource)
  @resource = resource
end
persist(resource) click to toggle source

@param [] @return []

# File lib/troo/persistence/local.rb, line 15
def persist(resource)
  new(resource).persist
end
with_collection(resources = []) click to toggle source

@param [Array] @return [Array]

# File lib/troo/persistence/local.rb, line 7
def with_collection(resources = [])
  resources.map do |resource|
    new(resource).preprocess
  end
end

Public Instance Methods

persist() click to toggle source

@return []

# File lib/troo/persistence/local.rb, line 32
def persist
  set_default
  delete
  create
end
preprocess() click to toggle source

@return []

# File lib/troo/persistence/local.rb, line 27
def preprocess
  resource.preprocess
end

Private Instance Methods

create() click to toggle source
# File lib/troo/persistence/local.rb, line 50
def create
  resource.local_model.create(remote)
end
default?() click to toggle source
# File lib/troo/persistence/local.rb, line 58
def default?
  exists? && local.default?
end
delete() click to toggle source
# File lib/troo/persistence/local.rb, line 46
def delete
  local.delete if exists?
end
exists?() click to toggle source
# File lib/troo/persistence/local.rb, line 62
def exists?
  !!local
end
local() click to toggle source
# File lib/troo/persistence/local.rb, line 66
def local
  resource.local
end
remote() click to toggle source
# File lib/troo/persistence/local.rb, line 54
def remote
  resource.adapted
end
set_default() click to toggle source
# File lib/troo/persistence/local.rb, line 42
def set_default
  remote.merge!(default: true) if default?
end