yaml_db 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"