class Locomotive::Steam::FilesystemAdapter

Public Instance Methods

all(mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 26
def all(mapper, scope)
  memoized_dataset(mapper, scope)
end
base_url(mapper, scope, entity = nil) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 66
def base_url(mapper, scope, entity = nil)
  ''
end
count(mapper, scope, &block) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 74
def count(mapper, scope, &block)
  query(mapper, scope, &block).count
end
create(mapper, scope, entity) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 38
def create(mapper, scope, entity)
  sanitizers[mapper.name].with(scope) do |sanitizer|
    dataset = memoized_dataset(mapper, scope)
    dataset.insert(entity)
    sanitizer.apply_to_entity_with_dataset(entity, dataset)
  end
  entity
end
delete(mapper, scope, entity) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 58
def delete(mapper, scope, entity)
  # TODO: to be implemented
end
find(mapper, scope, id) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 62
def find(mapper, scope, id)
  _query(mapper, scope) { where(_id: id) }.first
end
inc(mapper, entity, attribute, amount = 1) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 51
def inc(mapper, entity, attribute, amount = 1)
  entity.tap do
    entity[attribute] ||= 0
    entity[attribute] += amount
  end
end
make_id(value) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 70
def make_id(value)
  value
end
query(mapper, scope, &block) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 30
def query(mapper, scope, &block)
  _query(mapper, scope, &block).tap do |default|
    if scope.site
      default.where(site_id: scope.site._id)
    end
  end
end
update(mapper, scope, entity) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 47
def update(mapper, scope, entity)
  entity
end

Private Instance Methods

_query(mapper, scope, &block) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 80
def _query(mapper, scope, &block)
  Locomotive::Steam::Adapters::Memory::Query.new(all(mapper, scope), scope.locale, &block)
end
build_klass(type, name) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 132
def build_klass(type, name)
  _name = name.to_s.singularize.camelize
  "Locomotive::Steam::Adapters::Filesystem::#{type}::#{_name}".constantize
end
build_sanitizers() click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 124
def build_sanitizers
  hash = Hash.new { build_klass('Sanitizers', :simple).new }
  %i(sites pages content_types content_entries snippets sections).inject(hash) do |memo, name|
    memo[name] = build_klass('Sanitizers', name).new
    memo
  end
end
build_yaml_loaders() click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 117
def build_yaml_loaders
  %i(sites pages content_types content_entries snippets sections translations theme_assets).inject({}) do |memo, name|
    memo[name] = build_klass('YAMLLoaders', name).new(site_path, env)
    memo
  end
end
cache_key(mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 90
def cache_key(mapper, scope)
  "#{scope.to_key}_#{mapper.name}"
end
collection(mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 113
def collection(mapper, scope)
  yaml_loaders[mapper.name].load(scope)
end
dataset(mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 94
def dataset(mapper, scope)
  Locomotive::Steam::Adapters::Memory::Dataset.new(mapper.name).tap do |dataset|
    populate_dataset(dataset, mapper, scope)
  end
end
env() click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 141
def env
  (options.respond_to?(:has_key?) ? options[:env] : nil) || :local
end
memoized_dataset(mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 84
def memoized_dataset(mapper, scope)
  cache.fetch(cache_key(mapper, scope)) do
    dataset(mapper, scope)
  end
end
populate_dataset(dataset, mapper, scope) click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 100
def populate_dataset(dataset, mapper, scope)
  sanitizers[mapper.name].with(scope) do |sanitizer|
    collection(mapper, scope).each do |attributes|
      entity = mapper.to_entity(attributes.dup)

      dataset.insert(entity)
      sanitizer.apply_to(entity)
    end

    sanitizer.apply_to(dataset)
  end
end
site_path() click to toggle source
# File lib/locomotive/steam/adapters/filesystem.rb, line 137
def site_path
  options.respond_to?(:has_key?) ? options[:path] : options
end