legacy_migrations 0.2.4 → 0.3.0

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.
data/README CHANGED
@@ -40,8 +40,5 @@ OR, copy all columns with the same name
40
40
  match_same_name_attributes
41
41
  end
42
42
 
43
- Here's a slightly more thorough blog post about it:
44
-
45
- http://frontended.com/?p=89
46
43
 
47
44
  Copyright (c) 2010 Bernie Telles, released under the MIT license
data/VERSION CHANGED
@@ -1,5 +1 @@
1
- <<<<<<< HEAD
2
- 0.2.4
3
- =======
4
- 0.3.5
5
- >>>>>>> 55c756bc1f14cf99fb577c11c32db7fb293dc12e
1
+ 0.3.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{legacy_migrations}
8
- s.version = "0.2.4"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bernie Telles"]
12
- s.date = %q{2010-08-25}
12
+ s.date = %q{2010-05-30}
13
13
  s.description = %q{Rails plugin for transferring or updating data between two db structures.}
14
14
  s.email = %q{bernardo.telles@dms.myflorida.com}
15
15
  s.extra_rdoc_files = [
@@ -47,21 +47,21 @@ Gem::Specification.new do |s|
47
47
  s.homepage = %q{http://github.com/btelles/legacy_migrations}
48
48
  s.rdoc_options = ["--charset=UTF-8"]
49
49
  s.require_paths = ["lib"]
50
- s.rubygems_version = %q{1.3.7}
50
+ s.rubygems_version = %q{1.3.6}
51
51
  s.summary = %q{Rails plugin for transferring or updating data between two db structures.}
52
52
  s.test_files = [
53
- "spec/legacy_migrations_spec.rb",
54
- "spec/lib/transformations_spec.rb",
53
+ "spec/lib/transformations_spec.rb",
54
+ "spec/db/schema.rb",
55
55
  "spec/models.rb",
56
- "spec/spec_helper.rb",
57
- "spec/db/schema.rb"
56
+ "spec/legacy_migrations_spec.rb",
57
+ "spec/spec_helper.rb"
58
58
  ]
59
59
 
60
60
  if s.respond_to? :specification_version then
61
61
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
62
62
  s.specification_version = 3
63
63
 
64
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
65
65
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
66
66
  else
67
67
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
@@ -1,8 +1,6 @@
1
1
  require 'legacy_migrations/transformations'
2
2
  require 'legacy_migrations/future_storage'
3
3
  require 'legacy_migrations/squirrel'
4
- require 'legacy_migrations/source_iterators'
5
- require 'legacy_migrations/row_matchers'
6
4
  module LegacyMigrations
7
5
 
8
6
  # Define a source and destination table to transfer data
@@ -14,31 +12,27 @@ module LegacyMigrations
14
12
  # This is useful when you're trying to find faulty data in the source
15
13
  # table, and don't want to run the entire dataset.
16
14
  # * <tt>:validate</tt> - Default = true. Use ActiveRecord validations
17
- # when saving the destination rows.
15
+ # when saving destination data.
18
16
  # * <tt>:source_type</tt> - Default = :active_record. Sets the source
19
17
  # destination type.
20
18
  # Options:
21
- # _:active\_record_: Assumes the From option is a class that inherits
19
+ # _:active_record_: Assumes the From option is a class that inherits
22
20
  # from ActiveRecord::Base, then iterates through each record of From
23
21
  # table by using *From*.all.each...
24
22
  # _:other_: Assumes the From option is an iterable 'collection' whose
25
- # elements/items can respond to all source methods speficied in the given block.
23
+ # elements/items can respond to all columns speficied in the given block.
26
24
  # * <tt>:store_as</tt> - Stores the generated destination record as a key
27
- # that is retrievable in other transformations. Note that for this to work, the
28
- # source object must respond to the method <tt>id</tt> which returns
29
- # a value that is unique for all rows within the table (usually
30
- # this is just a primary key).
25
+ # that is retrievable in other transformations
31
26
  #
32
27
  # _Example_
33
- # <tt>
34
- # transfer_from Mammal, :to => Species, :store_as => 'new_animal' do
35
- # match_same_name_attributes
36
- # end
37
28
  #
38
- # transfer_from Person, :to => Animal do
39
- # stored 'new_animal', :to => :species
40
- # end
41
- # </tt>
29
+ # transfer_from Mammal, :to => Species, :store_as => 'new_animal' do
30
+ # match_same_name_attributes
31
+ # end
32
+ #
33
+ # transfer_from Person, :to => Animal do
34
+ # stored 'new_animal', :to => :species
35
+ # end
42
36
  #
43
37
  def transfer_from(from_table, *args, &block)
44
38
 
@@ -55,52 +49,6 @@ module LegacyMigrations
55
49
  @status_report
56
50
  end
57
51
 
58
- # Define a source and destination table with which to update data
59
- #
60
- # This method accepts all of the same options as <tt>transfer_from</tt>.
61
- #
62
- # In addition, you'll need to use a series of columns that match data
63
- # from the source to the destination. For example, if your source and
64
- # destination data have a social security number, then you'd use the
65
- # social security number to match records from the two rows. The following
66
- # is how you would do that.
67
- #
68
- # <tt>
69
- # update_from SourceTable, :to => DestinationTable do
70
- # based_on do
71
- # ssn == from.social_security_number
72
- # end
73
- #
74
- # from :last_name, :to => :last_name
75
- # end
76
- # </tt>
77
- #
78
- # Note that when using the 'based_on' method, the left-hannd item always
79
- # corresponds to a column method on the destination table.
80
- #
81
- # The methods available in the based_on block correspond to the well-known
82
- # squirrel plugin's syntax. Here's a quick review of the possible operators:
83
- #
84
- # Handles comparisons in the query. This class is analagous to the columns in the database.
85
- # When comparing the Condition to a value, the operators are used as follows:
86
- # * ==, === : Straight-up Equals. Can also be used as the "IN" operator if the operand is an Array.
87
- # Additionally, when the oprand is +nil+, the comparison is correctly generates as "IS NULL"."
88
- # * =~ : The LIKE and REGEXP operators. If the operand is a String, it will generate a LIKE
89
- # comparison. If it is a Regexp, the REGEXP operator will be used. NOTE: MySQL regular expressions
90
- # are NOT the same as Ruby regular expressions. Also NOTE: No wildcards are inserted into the LIKE
91
- # comparison, so you may add them where you wish.
92
- # * <=> : Performs a BETWEEN comparison, as long as the operand responds to both #first and #last,
93
- # which both Ranges and Arrays do.
94
- # * > : A simple greater-than comparison.
95
- # * >= : Greater-than or equal-to.
96
- # * < : A simple less-than comparison.
97
- # * <= : Less-than or equal-to.
98
- # * contains? : Like =~, except automatically surrounds the operand in %s, which =~ does not do.
99
- # * nil? : Works exactly like "column == nil", but in a nicer syntax, which is what Squirrel is all about.
100
- #
101
- # ==== Options
102
- #
103
- #
104
52
  def update_from(from_table, *args, &block)
105
53
 
106
54
  configure_transfer(from_table, *args) { yield }
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legacy_migrations
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Bernie Telles
@@ -15,18 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-25 00:00:00 -04:00
17
+ date: 2010-05-30 00:00:00 -04:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rspec
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ">="
28
26
  - !ruby/object:Gem::Version
29
- hash: 13
30
27
  segments:
31
28
  - 1
32
29
  - 2
@@ -80,33 +77,29 @@ rdoc_options:
80
77
  require_paths:
81
78
  - lib
82
79
  required_ruby_version: !ruby/object:Gem::Requirement
83
- none: false
84
80
  requirements:
85
81
  - - ">="
86
82
  - !ruby/object:Gem::Version
87
- hash: 3
88
83
  segments:
89
84
  - 0
90
85
  version: "0"
91
86
  required_rubygems_version: !ruby/object:Gem::Requirement
92
- none: false
93
87
  requirements:
94
88
  - - ">="
95
89
  - !ruby/object:Gem::Version
96
- hash: 3
97
90
  segments:
98
91
  - 0
99
92
  version: "0"
100
93
  requirements: []
101
94
 
102
95
  rubyforge_project:
103
- rubygems_version: 1.3.7
96
+ rubygems_version: 1.3.6
104
97
  signing_key:
105
98
  specification_version: 3
106
99
  summary: Rails plugin for transferring or updating data between two db structures.
107
100
  test_files:
108
- - spec/legacy_migrations_spec.rb
109
101
  - spec/lib/transformations_spec.rb
102
+ - spec/db/schema.rb
110
103
  - spec/models.rb
104
+ - spec/legacy_migrations_spec.rb
111
105
  - spec/spec_helper.rb
112
- - spec/db/schema.rb