module ActiveFixtures::StateDumper
Constants
- CLEAN_STATE_NAME
- DB_NAME
- FIXTURES_PATH
Public Class Methods
cleanup!()
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 13 def cleanup! FileUtils.rm_rf(FIXTURES_PATH) if File.exist?(FIXTURES_PATH) end
dump(state)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 33 def dump(state) dump_db(state.name) File.write( dump_entities_file(state.name), Hash[*state.entities.flat_map{ |name, entity| [name, entity.attributes] }].to_json ) end
exists?(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 17 def exists?(state_name) File.exists?(dump_db_file(state_name)) end
init!()
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 8 def init! FileUtils.mkdir_p(FIXTURES_PATH) dump_db(CLEAN_STATE_NAME) end
load(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 25 def load(state_name) load_db(state_name) Hash[*JSON.parse(File.read(dump_entities_file(state_name))).flat_map{ |name, attrs| [name, name.gsub(/::[^:]*\z/, '').constantize.new(attrs)] }] end
load_clean!()
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 21 def load_clean! load_db(CLEAN_STATE_NAME) end
Private Class Methods
dump_db(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 53 def dump_db(state_name) args = ['-x', '-O', '-c', '-Fc', '-f', dump_db_file(state_name), DB_NAME] Kernel.system('pg_dump', *args) end
dump_db_file(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 45 def dump_db_file(state_name) File.join(FIXTURES_PATH, "#{state_name}.db.dump") end
dump_entities_file(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 49 def dump_entities_file(state_name) File.join(FIXTURES_PATH, "#{state_name}.entities.json") end
load_db(state_name)
click to toggle source
# File lib/active-fixtures/state_dumper.rb, line 58 def load_db(state_name) args = ['-c', '-d', DB_NAME, dump_db_file(state_name)] Kernel.system('pg_restore', *args) end