yaml_db 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ YamlDb is a database-independent format for dumping and restoring data. It comp
4
4
 
5
5
  This can be used as a replacement for mysqldump or pg_dump, but only for the databases typically used by Rails apps. Users, permissions, schemas, triggers, and other advanced database features are not supported - by design.
6
6
 
7
- Any database that has an ActiveRecord adapter should work.
7
+ Any database that has an ActiveRecord adapter should work. This gem is now Rails 3 only. For Rails 2, clone and checkout the Rails2 branch.
8
8
 
9
9
  ## Installation
10
10
 
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rake'
2
- require 'spec/rake/spectask'
2
+ require "rspec/core/rake_task"
3
3
 
4
4
  begin
5
5
  require 'jeweler'
@@ -20,10 +20,10 @@ rescue LoadError
20
20
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
21
21
  end
22
22
 
23
- require 'spec/rake/spectask'
24
- Spec::Rake::SpecTask.new(:spec) do |spec|
25
- spec.libs << 'lib' << 'spec'
26
- spec.spec_files = FileList['spec/*_spec.rb']
23
+
24
+ RSpec::Core::RakeTask.new(:spec) do |spec|
25
+ spec.pattern = 'spec/*_spec.rb'
26
+ spec.rspec_opts = ['--backtrace']
27
27
  end
28
28
 
29
29
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -115,12 +115,16 @@ module SerializationHelper
115
115
  records.each do |record|
116
116
  columns.each do |column|
117
117
  next if is_boolean(record[column])
118
- record[column] = (record[column] == 't' or record[column] == '1')
118
+ record[column] = convert_boolean(record[column])
119
119
  end
120
120
  end
121
121
  records
122
122
  end
123
123
 
124
+ def self.convert_boolean(value)
125
+ ['t', '1', true, 1].include?(value)
126
+ end
127
+
124
128
  def self.boolean_columns(table)
125
129
  columns = ActiveRecord::Base.connection.columns(table).reject { |c| silence_warnings { c.type != :boolean } }
126
130
  columns.map { |c| c.name }
@@ -192,4 +196,4 @@ module SerializationHelper
192
196
 
193
197
  end
194
198
 
195
- end
199
+ end
@@ -1,45 +1,45 @@
1
1
  namespace :db do
2
- desc "Dump schema and data to db/schema.rb and db/data.yml"
3
- task(:dump => [ "db:schema:dump", "db:data:dump" ])
2
+ desc "Dump schema and data to db/schema.rb and db/data.yml"
3
+ task(:dump => [ "db:schema:dump", "db:data:dump" ])
4
4
 
5
- desc "Load schema and data from db/schema.rb and db/data.yml"
6
- task(:load => [ "db:schema:load", "db:data:load" ])
5
+ desc "Load schema and data from db/schema.rb and db/data.yml"
6
+ task(:load => [ "db:schema:load", "db:data:load" ])
7
7
 
8
- namespace :data do
9
- def db_dump_data_file (extension = "yml")
10
- "#{dump_dir}/data.#{extension}"
11
- end
12
-
13
- def dump_dir(dir = "")
14
- "#{RAILS_ROOT}/db#{dir}"
15
- end
8
+ namespace :data do
9
+ def db_dump_data_file (extension = "yml")
10
+ "#{dump_dir}/data.#{extension}"
11
+ end
16
12
 
17
- desc "Dump contents of database to db/data.extension (defaults to yaml)"
18
- task :dump => :environment do
19
- format_class = ENV['class'] || "YamlDb::Helper"
20
- helper = format_class.constantize
21
- SerializationHelper::Base.new(helper).dump db_dump_data_file helper.extension
22
- end
13
+ def dump_dir(dir = "")
14
+ "#{Rails.root}/db#{dir}"
15
+ end
23
16
 
24
- desc "Dump contents of database to curr_dir_name/tablename.extension (defaults to yaml)"
25
- task :dump_dir => :environment do
26
- format_class = ENV['class'] || "YamlDb::Helper"
27
- dir = ENV['dir'] || "#{Time.now.to_s.gsub(/ /, '_')}"
28
- SerializationHelper::Base.new(format_class.constantize).dump_to_dir dump_dir("/#{dir}")
29
- end
17
+ desc "Dump contents of database to db/data.extension (defaults to yaml)"
18
+ task :dump => :environment do
19
+ format_class = ENV['class'] || "YamlDb::Helper"
20
+ helper = format_class.constantize
21
+ SerializationHelper::Base.new(helper).dump db_dump_data_file helper.extension
22
+ end
30
23
 
31
- desc "Load contents of db/data.extension (defaults to yaml) into database"
32
- task :load => :environment do
33
- format_class = ENV['class'] || "YamlDb::Helper"
34
- helper = format_class.constantize
35
- SerializationHelper::Base.new(helper).load (db_dump_data_file helper.extension)
36
- end
24
+ desc "Dump contents of database to curr_dir_name/tablename.extension (defaults to yaml)"
25
+ task :dump_dir => :environment do
26
+ format_class = ENV['class'] || "YamlDb::Helper"
27
+ dir = ENV['dir'] || "#{Time.now.to_s.gsub(/ /, '_')}"
28
+ SerializationHelper::Base.new(format_class.constantize).dump_to_dir dump_dir("/#{dir}")
29
+ end
37
30
 
38
- desc "Load contents of db/data_dir into database"
39
- task :load_dir => :environment do
40
- dir = ENV['dir'] || "base"
41
- format_class = ENV['class'] || "YamlDb::Helper"
42
- SerializationHelper::Base.new(format_class.constantize).load_from_dir dump_dir("/#{dir}")
43
- end
44
- end
31
+ desc "Load contents of db/data.extension (defaults to yaml) into database"
32
+ task :load => :environment do
33
+ format_class = ENV['class'] || "YamlDb::Helper"
34
+ helper = format_class.constantize
35
+ SerializationHelper::Base.new(helper).load (db_dump_data_file helper.extension)
36
+ end
37
+
38
+ desc "Load contents of db/data_dir into database"
39
+ task :load_dir => :environment do
40
+ dir = ENV['dir'] || "base"
41
+ format_class = ENV['class'] || "YamlDb::Helper"
42
+ SerializationHelper::Base.new(format_class.constantize).load_from_dir dump_dir("/#{dir}")
43
+ end
44
+ end
45
45
  end
@@ -3,6 +3,7 @@ require 'yaml'
3
3
  require 'active_record'
4
4
  require 'serialization_helper'
5
5
  require 'active_support/core_ext/kernel/reporting'
6
+ require 'rails/railtie'
6
7
 
7
8
  module YamlDb
8
9
  module Helper
@@ -1,9 +1,4 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'spec'
4
- require 'spec/autorun'
3
+ require 'rspec'
5
4
  require 'yaml_db'
6
-
7
- Spec::Runner.configure do |config|
8
-
9
- end
@@ -1,13 +1,16 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  describe SerializationHelper::Base do
4
+ def prestub_active_record
5
+
6
+ end
4
7
 
5
8
  before do
6
- @io = StringIO.new
7
- silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
8
- ActiveRecord::Base.connection = mock('connection')
9
+ @io = StringIO.new
10
+ silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
11
+ ActiveRecord::Base.stub(:connection).and_return(mock('connection'))
9
12
  ActiveRecord::Base.connection.stub!(:tables).and_return([ 'mytable', 'schema_info', 'schema_migrations' ])
10
- end
13
+ end
11
14
 
12
15
  def stub_helper!
13
16
  @helper = mock("MyHelper")
@@ -4,9 +4,9 @@ describe SerializationHelper::Dump do
4
4
 
5
5
  before do
6
6
  silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
7
- ActiveRecord::Base.connection = mock('connection')
7
+ ActiveRecord::Base.stub(:connection).and_return(stub('connection').as_null_object)
8
8
  ActiveRecord::Base.connection.stub!(:tables).and_return([ 'mytable', 'schema_info', 'schema_migrations' ])
9
- ActiveRecord::Base.connection.stub!(:columns).with('mytable').and_return([ mock('a',:name => 'a'), mock('b', :name => 'b') ])
9
+ ActiveRecord::Base.connection.stub!(:columns).with('mytable').and_return([ mock('a', :name => 'a', :type => :string), mock('b', :name => 'b', :type => :string) ])
10
10
  ActiveRecord::Base.connection.stub!(:select_one).and_return({"count"=>"2"})
11
11
  ActiveRecord::Base.connection.stub!(:select_all).and_return([ { 'a' => 1, 'b' => 2 }, { 'a' => 3, 'b' => 4 } ])
12
12
  SerializationHelper::Utils.stub!(:quote_table).with('mytable').and_return('mytable')
@@ -5,7 +5,7 @@ describe SerializationHelper::Load do
5
5
  SerializationHelper::Utils.stub!(:quote_table).with('mytable').and_return('mytable')
6
6
 
7
7
  silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
8
- ActiveRecord::Base.connection = mock('connection')
8
+ ActiveRecord::Base.stub(:connection).and_return(stub('connection').as_null_object)
9
9
  ActiveRecord::Base.connection.stub!(:transaction).and_yield
10
10
  @io = StringIO.new
11
11
  end
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/base'
3
3
  describe SerializationHelper::Utils, " convert records utility method" do
4
4
  before do
5
5
  silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
6
- ActiveRecord::Base.connection = mock('connection')
6
+ ActiveRecord::Base.stub(:connection).and_return(stub('connection').as_null_object)
7
7
  end
8
8
 
9
9
  it "returns an array of hash values using an array of ordered keys" do
@@ -28,4 +28,24 @@ describe SerializationHelper::Utils, " convert records utility method" do
28
28
  ActiveRecord::Base.connection.should_receive(:quote_table_name).with('values').and_return('`values`')
29
29
  SerializationHelper::Utils.quote_table('values').should == '`values`'
30
30
  end
31
+
32
+ it "should convert ruby booleans to true and false" do
33
+ SerializationHelper::Utils.convert_boolean(true).should == true
34
+ SerializationHelper::Utils.convert_boolean(false).should == false
35
+ end
36
+
37
+ it "should convert ruby string t and f to true and false" do
38
+ SerializationHelper::Utils.convert_boolean('t').should == true
39
+ SerializationHelper::Utils.convert_boolean('f').should == false
40
+ end
41
+
42
+ it "should convert ruby string 1 and 0 to true and false" do
43
+ SerializationHelper::Utils.convert_boolean('1').should == true
44
+ SerializationHelper::Utils.convert_boolean('0').should == false
45
+ end
46
+
47
+ it "should convert ruby integer 1 and 0 to true and false" do
48
+ SerializationHelper::Utils.convert_boolean(1).should == true
49
+ SerializationHelper::Utils.convert_boolean(0).should == false
50
+ end
31
51
  end
@@ -4,9 +4,9 @@ describe YamlDb::Dump do
4
4
 
5
5
  before do
6
6
  silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
7
- ActiveRecord::Base.connection = mock('connection')
7
+ ActiveRecord::Base.stub(:connection).and_return(stub('connection').as_null_object)
8
8
  ActiveRecord::Base.connection.stub!(:tables).and_return([ 'mytable', 'schema_info', 'schema_migrations' ])
9
- ActiveRecord::Base.connection.stub!(:columns).with('mytable').and_return([ mock('a',:name => 'a'), mock('b', :name => 'b') ])
9
+ ActiveRecord::Base.connection.stub!(:columns).with('mytable').and_return([ mock('a',:name => 'a', :type => :string), mock('b', :name => 'b', :type => :string) ])
10
10
  ActiveRecord::Base.connection.stub!(:select_one).and_return({"count"=>"2"})
11
11
  ActiveRecord::Base.connection.stub!(:select_all).and_return([ { 'a' => 1, 'b' => 2 }, { 'a' => 3, 'b' => 4 } ])
12
12
  YamlDb::Utils.stub!(:quote_table).with('mytable').and_return('mytable')
@@ -6,7 +6,7 @@ describe YamlDb::Load do
6
6
  SerializationHelper::Utils.stub!(:quote_table).with('mytable').and_return('mytable')
7
7
 
8
8
  silence_warnings { ActiveRecord::Base = mock('ActiveRecord::Base', :null_object => true) }
9
- ActiveRecord::Base.connection = mock('connection')
9
+ ActiveRecord::Base.stub(:connection).and_return(stub('connection').as_null_object)
10
10
  ActiveRecord::Base.connection.stub!(:transaction).and_yield
11
11
  end
12
12
 
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{yaml_db}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Adam Wiggins", "Orion Henry"]
12
- s.date = %q{2010-09-27}
12
+ s.date = %q{2011-04-19}
13
13
  s.description = %q{
14
14
  YamlDb is a database-independent format for dumping and restoring data. It complements the the database-independent schema format found in db/schema.rb. The data is saved into db/data.yml.
15
15
  This can be used as a replacement for mysqldump or pg_dump, but only for the databases typically used by Rails apps. Users, permissions, schemas, triggers, and other advanced database features are not supported - by design.
@@ -21,38 +21,37 @@ Any database that has an ActiveRecord adapter should work
21
21
  ]
22
22
  s.files = [
23
23
  "README.markdown",
24
- "Rakefile",
25
- "VERSION",
26
- "about.yml",
27
- "init.rb",
28
- "lib/csv_db.rb",
29
- "lib/serialization_helper.rb",
30
- "lib/tasks/yaml_db_tasks.rake",
31
- "lib/yaml_db.rb",
32
- "spec/base.rb",
33
- "spec/serialization_helper_base_spec.rb",
34
- "spec/serialization_helper_dump_spec.rb",
35
- "spec/serialization_helper_load_spec.rb",
36
- "spec/serialization_utils_spec.rb",
37
- "spec/yaml_dump_spec.rb",
38
- "spec/yaml_load_spec.rb",
39
- "spec/yaml_utils_spec.rb",
40
- "yaml_db.gemspec"
24
+ "Rakefile",
25
+ "VERSION",
26
+ "about.yml",
27
+ "init.rb",
28
+ "lib/csv_db.rb",
29
+ "lib/serialization_helper.rb",
30
+ "lib/tasks/yaml_db_tasks.rake",
31
+ "lib/yaml_db.rb",
32
+ "spec/base.rb",
33
+ "spec/serialization_helper_base_spec.rb",
34
+ "spec/serialization_helper_dump_spec.rb",
35
+ "spec/serialization_helper_load_spec.rb",
36
+ "spec/serialization_utils_spec.rb",
37
+ "spec/yaml_dump_spec.rb",
38
+ "spec/yaml_load_spec.rb",
39
+ "spec/yaml_utils_spec.rb",
40
+ "yaml_db.gemspec"
41
41
  ]
42
42
  s.homepage = %q{http://github.com/ludicast/yaml_db}
43
- s.rdoc_options = ["--charset=UTF-8"]
44
43
  s.require_paths = ["lib"]
45
44
  s.rubygems_version = %q{1.3.7}
46
45
  s.summary = %q{yaml_db allows export/import of database into/from yaml files}
47
46
  s.test_files = [
48
47
  "spec/base.rb",
49
- "spec/serialization_helper_base_spec.rb",
50
- "spec/serialization_helper_dump_spec.rb",
51
- "spec/serialization_helper_load_spec.rb",
52
- "spec/serialization_utils_spec.rb",
53
- "spec/yaml_dump_spec.rb",
54
- "spec/yaml_load_spec.rb",
55
- "spec/yaml_utils_spec.rb"
48
+ "spec/serialization_helper_base_spec.rb",
49
+ "spec/serialization_helper_dump_spec.rb",
50
+ "spec/serialization_helper_load_spec.rb",
51
+ "spec/serialization_utils_spec.rb",
52
+ "spec/yaml_dump_spec.rb",
53
+ "spec/yaml_load_spec.rb",
54
+ "spec/yaml_utils_spec.rb"
56
55
  ]
57
56
 
58
57
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml_db
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 2
9
- - 0
10
- version: 0.2.0
8
+ - 1
9
+ version: 0.2.1
11
10
  platform: ruby
12
11
  authors:
13
12
  - Adam Wiggins
@@ -16,16 +15,14 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-09-27 00:00:00 -04:00
18
+ date: 2011-04-19 00:00:00 -04:00
20
19
  default_executable:
21
20
  dependencies: []
22
21
 
23
- description: |
24
-
25
- YamlDb is a database-independent format for dumping and restoring data. It complements the the database-independent schema format found in db/schema.rb. The data is saved into db/data.yml.
26
- This can be used as a replacement for mysqldump or pg_dump, but only for the databases typically used by Rails apps. Users, permissions, schemas, triggers, and other advanced database features are not supported - by design.
27
- Any database that has an ActiveRecord adapter should work
28
-
22
+ description: "\n\
23
+ YamlDb is a database-independent format for dumping and restoring data. It complements the the database-independent schema format found in db/schema.rb. The data is saved into db/data.yml.\n\
24
+ This can be used as a replacement for mysqldump or pg_dump, but only for the databases typically used by Rails apps. Users, permissions, schemas, triggers, and other advanced database features are not supported - by design.\n\
25
+ Any database that has an ActiveRecord adapter should work\n"
29
26
  email: nate@ludicast.com
30
27
  executables: []
31
28
 
@@ -57,8 +54,8 @@ homepage: http://github.com/ludicast/yaml_db
57
54
  licenses: []
58
55
 
59
56
  post_install_message:
60
- rdoc_options:
61
- - --charset=UTF-8
57
+ rdoc_options: []
58
+
62
59
  require_paths:
63
60
  - lib
64
61
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -66,7 +63,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
63
  requirements:
67
64
  - - ">="
68
65
  - !ruby/object:Gem::Version
69
- hash: 3
70
66
  segments:
71
67
  - 0
72
68
  version: "0"
@@ -75,7 +71,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
71
  requirements:
76
72
  - - ">="
77
73
  - !ruby/object:Gem::Version
78
- hash: 3
79
74
  segments:
80
75
  - 0
81
76
  version: "0"