class Sprig::Reap::SeedFile
Constants
- DEFAULT_NAMESPACE
Attributes
model[R]
Public Class Methods
new(model)
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 9 def initialize(model) raise ArgumentError, 'Must initialize with a Sprig::Reap::Model' unless model.is_a? Model @model = model end
Public Instance Methods
exists?()
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 19 def exists? File.exists?(path) end
path()
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 15 def path Rails.root.join('db', 'seeds', Sprig::Reap.target_env, "#{model.to_s.tableize.gsub('/', '_')}.yml") end
write()
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 23 def write initialize_file do |file, namespace| file.write model.to_yaml(:namespace => namespace) log_info "Successfully reaped records for #{model}...\r" end end
Private Instance Methods
existing_sprig_ids(yaml)
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 52 def existing_sprig_ids(yaml) return if yaml.empty? YAML.load(yaml).fetch(DEFAULT_NAMESPACE).to_a.map do |record| record.fetch('sprig_id') end end
initialize_file() { |file, namespace| ... }
click to toggle source
# File lib/sprig/reap/seed_file.rb, line 32 def initialize_file existing_file = exists? access_type = existing_file ? 'a+' : 'w' File.open(path, access_type) do |file| namespace = DEFAULT_NAMESPACE if existing_file model.existing_sprig_ids = existing_sprig_ids(file.read) namespace = nil file.write("\n") end yield file, namespace end rescue => e log_error "There was an issue writing to the file for #{model}:\r#{e.message}" end