Sha256: 32da5319dcacb79d77a98021eb7208cb0e56fd004948b196d9ab7c908283967e

Contents?: true

Size: 1.54 KB

Versions: 9

Compression:

Stored size: 1.54 KB

Contents

require 'rubygems'
require 'yaml'
require 'active_record'
require 'serialization_helper'
require 'active_support/core_ext/kernel/reporting'
require 'rails/railtie'

module YamlDb
  module Helper
    def self.loader
      YamlDb::Load
    end

    def self.dumper
      YamlDb::Dump
    end

    def self.extension
      "yml"
    end
  end


  module Utils
    def self.chunk_records(records)
      yaml = [ records ].to_yaml
      yaml.sub!(/---\s\n|---\n/, '')
      yaml.sub!('- - -', '  - -')
      yaml
    end

  end

  class Dump < SerializationHelper::Dump

    def self.dump_table_columns(io, table)
      io.write("\n")
      io.write({ table => { 'columns' => table_column_names(table) } }.to_yaml)
    end

    def self.dump_table_records(io, table)
      table_record_header(io)

      column_names = table_column_names(table)

      each_table_page(table) do |records|
        rows = SerializationHelper::Utils.unhash_records(records, column_names)
        io.write(YamlDb::Utils.chunk_records(records))
      end
    end

    def self.table_record_header(io)
      io.write("  records: \n")
    end

  end

  class Load < SerializationHelper::Load
    def self.load_documents(io, truncate = true)
        YAML.load_documents(io) do |ydoc|
          ydoc.keys.each do |table_name|
            next if ydoc[table_name].nil?
            load_table(table_name, ydoc[table_name], truncate)
          end
        end
    end
  end

  class Railtie < Rails::Railtie
    rake_tasks do
      load File.expand_path('../tasks/yaml_db_tasks.rake',
__FILE__)
    end
  end

end

Version data entries

9 entries across 9 versions & 7 rubygems

Version Path
yaml_db_with_schema_tables-0.2.4 lib/yaml_db.rb
mtwtfss_yaml_db-0.5 lib/yaml_db.rb
keeguon-yaml_db-0.2.4 lib/yaml_db.rb
gitlab_yaml_db-1.0.0 lib/yaml_db.rb
fm_yaml_db-0.2.5 lib/yaml_db.rb
fm_yaml_db-0.2.4 lib/yaml_db.rb
yaml_db-0.2.3 lib/yaml_db.rb
yaml_db_arel-0.2.2 lib/yaml_db.rb
yaml_db-0.2.2 lib/yaml_db.rb