active_git 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/active_git.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
16
  s.require_paths = ["lib"]
17
17
 
18
- s.add_dependency 'activerecord', '>= 3.0.0'
18
+ s.add_dependency 'activerecord', '~> 3.2'
19
19
  s.add_dependency 'git_wrapper', '~> 1.1'
20
20
  s.add_dependency 'activerecord-import'
21
21
  s.add_dependency 'easy_diff'
data/lib/active_git.rb CHANGED
@@ -3,6 +3,7 @@ require 'git_wrapper'
3
3
  require 'activerecord-import'
4
4
  require 'json'
5
5
  require 'easy_diff'
6
+ require 'set'
6
7
 
7
8
  require 'active_git/version'
8
9
  require 'active_git/synchronizer'
@@ -25,15 +26,15 @@ module ActiveGit
25
26
  extend Commands
26
27
 
27
28
  def self.configuration
28
- @@configuration ||= Configuration.new
29
+ @configuration ||= Configuration.new
29
30
  end
30
31
 
31
32
  def self.configure
32
- yield(configuration)
33
+ yield configuration
33
34
  end
34
35
 
35
36
  def self.models
36
- @@models ||= []
37
+ @models ||= Set.new
37
38
  end
38
39
 
39
40
  def self.repository
@@ -41,7 +42,31 @@ module ActiveGit
41
42
  @repository
42
43
  end
43
44
 
44
- end
45
+ def self.synchronize(*events)
46
+ if @batch_mode
47
+ enqueue events
48
+ else
49
+ Synchronizer.synchronize events
50
+ end
51
+ end
52
+
53
+ def self.batch(&block)
54
+ @batch_mode = true
55
+ begin
56
+ yield
57
+ Synchronizer.synchronize @events
58
+ ensure
59
+ @batch_mode = false
60
+ @events.clear
61
+ end
62
+ end
45
63
 
46
- ActiveRecord::Base.send :extend, ActiveGit::ActiveRecord::ClassMethods
64
+ private
65
+
66
+ def self.enqueue(*events)
67
+ @events = (@events || []) + events
68
+ end
69
+
70
+ end
47
71
 
72
+ ActiveRecord::Base.send :extend, ActiveGit::ActiveRecord::ClassMethods
@@ -7,11 +7,11 @@ module ActiveGit
7
7
  ActiveGit.models << self
8
8
 
9
9
  after_save do |record|
10
- Synchronizer.synchronize FileSave.new(record)
10
+ ActiveGit.synchronize FileSave.new(record)
11
11
  end
12
12
 
13
13
  after_destroy do |record|
14
- Synchronizer.synchronize FileDelete.new(record)
14
+ ActiveGit.synchronize FileDelete.new(record)
15
15
  end
16
16
 
17
17
  def from_json(json)
@@ -12,7 +12,7 @@ module ActiveGit
12
12
  end
13
13
 
14
14
  def run
15
- unless bulk_inserts.empty?
15
+ if bulk_inserts.any?
16
16
  define_job do
17
17
  bulk_inserts.each do |model, records|
18
18
  ActiveGit.configuration.logger.debug "[ActiveGit] Inserting #{model.model_name} models"
@@ -23,10 +23,9 @@ module ActiveGit
23
23
  end
24
24
 
25
25
  ::ActiveRecord::Base.transaction do
26
- jobs.each do |job|
27
- job.call
28
- end
26
+ jobs.each(&:call)
29
27
  end
28
+
30
29
  ActiveGit.add_all
31
30
  end
32
31
 
@@ -1,3 +1,3 @@
1
1
  module ActiveGit
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -18,7 +18,7 @@ describe ActiveGit::ActiveRecord do
18
18
  it 'Create' do
19
19
  language = Language.create! name: 'Spanish'
20
20
 
21
- File.exist?(git_filename(language)).should be_true
21
+ File.exist?(git_filename(language)).should be true
22
22
 
23
23
  json = JSON.parse(@file_helper.read_file(git_filename(language)))
24
24
 
@@ -41,11 +41,11 @@ describe ActiveGit::ActiveRecord do
41
41
  it 'Destroy' do
42
42
  language = Language.create! name: 'Spanish'
43
43
 
44
- File.exist?(git_filename(language)).should be_true
44
+ File.exist?(git_filename(language)).should be true
45
45
 
46
46
  language.destroy
47
47
 
48
- File.exist?(git_filename(language)).should be_false
48
+ File.exist?(git_filename(language)).should be false
49
49
  end
50
50
 
51
51
  it 'Load from json' do
@@ -0,0 +1,141 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveGit do
4
+
5
+ before :each do
6
+ @file_helper = FileHelper.new
7
+ end
8
+
9
+ after :each do
10
+ @file_helper.remove_temp_folders
11
+ end
12
+
13
+ context 'Manual synchornization' do
14
+
15
+ it 'Single model' do
16
+ argentina = Country.create! name: 'Argentina'
17
+ brasil = Country.create! name: 'Brasil'
18
+
19
+ working_path = @file_helper.create_temp_folder
20
+
21
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
22
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
23
+
24
+ ActiveGit.synchronize ActiveGit::FileSave.new(argentina, working_path)
25
+
26
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be true
27
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
28
+
29
+ ActiveGit.synchronize ActiveGit::FileSave.new(brasil, working_path)
30
+
31
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be true
32
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be true
33
+ end
34
+
35
+ it 'Batch mode' do
36
+ argentina = Country.create! name: 'Argentina'
37
+ brasil = Country.create! name: 'Brasil'
38
+
39
+ working_path = @file_helper.create_temp_folder
40
+
41
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
42
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
43
+
44
+ ActiveGit.batch do
45
+ ActiveGit.synchronize ActiveGit::FileSave.new(argentina, working_path)
46
+ ActiveGit.synchronize ActiveGit::FileSave.new(brasil, working_path)
47
+
48
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
49
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
50
+ end
51
+
52
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be true
53
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be true
54
+ end
55
+
56
+ it 'Handle exceptions' do
57
+ argentina = Country.create! name: 'Argentina'
58
+ brasil = Country.create! name: 'Brasil'
59
+
60
+ working_path = @file_helper.create_temp_folder
61
+
62
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
63
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
64
+
65
+ expect do
66
+ ActiveGit.batch do
67
+ ActiveGit.synchronize ActiveGit::FileSave.new(argentina, working_path)
68
+ ActiveGit.synchronize ActiveGit::FileSave.new(brasil, working_path)
69
+ raise 'Force error'
70
+ end
71
+ end.to raise_error
72
+
73
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
74
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
75
+
76
+ uruguay = Country.create! name: 'Uruguay'
77
+ ActiveGit.batch do
78
+ ActiveGit.synchronize ActiveGit::FileSave.new(uruguay, working_path)
79
+ end
80
+
81
+ File.exist?("#{working_path}/countries/#{argentina.id}.json").should be false
82
+ File.exist?("#{working_path}/countries/#{brasil.id}.json").should be false
83
+ File.exist?("#{working_path}/countries/#{uruguay.id}.json").should be true
84
+ end
85
+
86
+ end
87
+
88
+ context 'ActiveRecord synchornization' do
89
+
90
+ before :each do
91
+ ActiveGit.configuration.working_path = @file_helper.create_temp_folder
92
+ end
93
+
94
+ it 'Single model' do
95
+ language = Language.create! name: 'Spanish'
96
+
97
+ File.exist?(git_filename(language)).should be true
98
+ end
99
+
100
+ it 'Batch mode' do
101
+ spanish = nil
102
+ english = nil
103
+
104
+ ActiveGit.batch do
105
+ spanish = Language.create! name: 'Spanish'
106
+ english = Language.create! name: 'English'
107
+
108
+ File.exist?(git_filename(spanish)).should be false
109
+ File.exist?(git_filename(english)).should be false
110
+ end
111
+
112
+ File.exist?(git_filename(spanish)).should be true
113
+ File.exist?(git_filename(english)).should be true
114
+ end
115
+
116
+ it 'Handle exceptions' do
117
+ spanish = nil
118
+ english = nil
119
+ portuguese = nil
120
+
121
+ expect do
122
+ ActiveGit.batch do
123
+ spanish = Language.create! name: 'Spanish'
124
+ english = Language.create! name: 'English'
125
+
126
+ raise 'Force error'
127
+ end
128
+ end.to raise_error
129
+
130
+ ActiveGit.batch do
131
+ portuguese = Language.create! name: 'Portuguese'
132
+ end
133
+
134
+ File.exist?(git_filename(spanish)).should be false
135
+ File.exist?(git_filename(english)).should be false
136
+ File.exist?(git_filename(portuguese)).should be true
137
+ end
138
+
139
+ end
140
+
141
+ end
@@ -25,12 +25,12 @@ describe ActiveGit::Commands do
25
25
 
26
26
  ActiveGit.dump_db
27
27
 
28
- File.exist?("#{ActiveGit.configuration.working_path}/test.txt").should be_false
28
+ File.exist?("#{ActiveGit.configuration.working_path}/test.txt").should be false
29
29
 
30
30
  Dir.glob("#{git_dirname(Language)}/*.json").should have(2).items
31
31
 
32
32
  languages.each do |language|
33
- File.exist?(git_filename(language)).should be_true
33
+ File.exist?(git_filename(language)).should be true
34
34
  json = JSON.parse(@file_helper.read_file(git_filename(language)))
35
35
  json['id'].should eq language.id
36
36
  json['name'].should eq language.name
@@ -43,17 +43,17 @@ describe ActiveGit::Commands do
43
43
 
44
44
  Dir["#{ActiveGit.configuration.working_path}/*"].each { |f| FileUtils.rm_rf f }
45
45
 
46
- Dir.exists?("#{ActiveGit.configuration.working_path}/languages").should be_false
47
- File.exists?("#{ActiveGit.configuration.working_path}/languages/#{language.id}.json").should be_false
48
- Dir.exists?("#{ActiveGit.configuration.working_path}/countries").should be_false
49
- File.exists?("#{ActiveGit.configuration.working_path}/countries/#{country.id}.json").should be_false
46
+ Dir.exists?("#{ActiveGit.configuration.working_path}/languages").should be false
47
+ File.exists?("#{ActiveGit.configuration.working_path}/languages/#{language.id}.json").should be false
48
+ Dir.exists?("#{ActiveGit.configuration.working_path}/countries").should be false
49
+ File.exists?("#{ActiveGit.configuration.working_path}/countries/#{country.id}.json").should be false
50
50
 
51
51
  ActiveGit.dump_db Language
52
52
 
53
- Dir.exists?("#{ActiveGit.configuration.working_path}/languages").should be_true
54
- File.exists?("#{ActiveGit.configuration.working_path}/languages/#{language.id}.json").should be_true
55
- Dir.exists?("#{ActiveGit.configuration.working_path}/countries").should be_false
56
- File.exists?("#{ActiveGit.configuration.working_path}/countries/#{country.id}.json").should be_false
53
+ Dir.exists?("#{ActiveGit.configuration.working_path}/languages").should be true
54
+ File.exists?("#{ActiveGit.configuration.working_path}/languages/#{language.id}.json").should be true
55
+ Dir.exists?("#{ActiveGit.configuration.working_path}/countries").should be false
56
+ File.exists?("#{ActiveGit.configuration.working_path}/countries/#{country.id}.json").should be false
57
57
  end
58
58
 
59
59
  it 'Load all files to db' do
@@ -65,7 +65,7 @@ describe ActiveGit::Commands do
65
65
  Language.first.delete
66
66
 
67
67
  languages.each do |language|
68
- File.exist?(git_filename(language)).should be_true
68
+ File.exist?(git_filename(language)).should be true
69
69
  end
70
70
 
71
71
  ActiveGit.load_files
@@ -81,8 +81,8 @@ describe ActiveGit::Commands do
81
81
  language = Language.create! name: 'Spanish'
82
82
  brand = Brand.create! name: 'Coca Cola'
83
83
 
84
- File.exists?(git_filename(language)).should be_true
85
- File.exists?(git_filename(brand)).should be_true
84
+ File.exists?(git_filename(language)).should be true
85
+ File.exists?(git_filename(brand)).should be true
86
86
 
87
87
  language.delete
88
88
  brand.delete
@@ -138,12 +138,12 @@ describe ActiveGit::Commands do
138
138
 
139
139
  Language.count.should eq 2
140
140
 
141
- ActiveGit.pull('bare').should be_true
141
+ ActiveGit.pull('bare').should be true
142
142
 
143
143
  ActiveGit.log.first.subject.should eq 'Remote commit'
144
144
  Language.count.should eq 3
145
145
  ['Spanish 2', 'Portuguese', 'French'].each do |lang_name|
146
- File.exist?(git_filename(Language.find_by_name(lang_name))).should be_true
146
+ File.exist?(git_filename(Language.find_by_name(lang_name))).should be true
147
147
  end
148
148
  end
149
149
 
@@ -177,14 +177,14 @@ describe ActiveGit::Commands do
177
177
  ActiveGit.commit_all 'Commit 1'
178
178
 
179
179
  Language.count.should eq 2
180
- File.exist?(git_filename(spanish)).should be_true
181
- File.exist?(git_filename(english)).should be_true
180
+ File.exist?(git_filename(spanish)).should be true
181
+ File.exist?(git_filename(english)).should be true
182
182
 
183
183
  ActiveGit.reset ActiveGit.log.last.commit_hash
184
184
 
185
185
  Language.count.should eq 1
186
- File.exist?(git_filename(spanish)).should be_true
187
- File.exist?(git_filename(english)).should be_false
186
+ File.exist?(git_filename(spanish)).should be true
187
+ File.exist?(git_filename(english)).should be false
188
188
  end
189
189
 
190
190
  it 'Reset to HEAD' do
@@ -194,14 +194,14 @@ describe ActiveGit::Commands do
194
194
  english = Language.create! name: 'English'
195
195
 
196
196
  Language.count.should eq 2
197
- File.exist?(git_filename(spanish)).should be_true
198
- File.exist?(git_filename(english)).should be_true
197
+ File.exist?(git_filename(spanish)).should be true
198
+ File.exist?(git_filename(english)).should be true
199
199
 
200
200
  ActiveGit.reset
201
201
 
202
202
  Language.count.should eq 1
203
- File.exist?(git_filename(spanish)).should be_true
204
- File.exist?(git_filename(english)).should be_false
203
+ File.exist?(git_filename(spanish)).should be true
204
+ File.exist?(git_filename(english)).should be false
205
205
  end
206
206
 
207
207
  it 'Resolve version conflicts' do
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'ActiveGit::Synchronizers' do
3
+ describe ActiveGit::Synchronizer do
4
4
 
5
5
  before :each do
6
6
  @file_helper = FileHelper.new
@@ -17,11 +17,11 @@ describe 'ActiveGit::Synchronizers' do
17
17
 
18
18
  working_path = @file_helper.create_temp_folder
19
19
 
20
- File.exist?("#{working_path}/countries/#{country.id}.json").should be_false
20
+ File.exist?("#{working_path}/countries/#{country.id}.json").should be false
21
21
 
22
22
  ActiveGit::Synchronizer.synchronize ActiveGit::FileSave.new(country, working_path)
23
23
 
24
- File.exist?("#{working_path}/countries/#{country.id}.json").should be_true
24
+ File.exist?("#{working_path}/countries/#{country.id}.json").should be true
25
25
  end
26
26
 
27
27
  it 'Update' do
@@ -51,7 +51,7 @@ describe 'ActiveGit::Synchronizers' do
51
51
 
52
52
  ActiveGit::Synchronizer.synchronize ActiveGit::FileDelete.new(country, working_path)
53
53
 
54
- File.exist?("#{working_path}/countries/#{country.id}.json").should be_false
54
+ File.exist?("#{working_path}/countries/#{country.id}.json").should be false
55
55
  end
56
56
 
57
57
  end
metadata CHANGED
@@ -1,190 +1,176 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_git
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.5
4
+ version: 0.0.6
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Gabriel Naiman
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-02 00:00:00.000000000 Z
12
+ date: 2013-08-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- version_requirements: !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
- - - ! '>='
19
+ - - ~>
19
20
  - !ruby/object:Gem::Version
20
- version: 3.0.0
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
21
25
  none: false
22
- requirement: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ! '>='
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
- version: 3.0.0
27
- none: false
28
- prerelease: false
29
- type: :runtime
29
+ version: '3.2'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: git_wrapper
32
- version_requirements: !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
33
34
  requirements:
34
35
  - - ~>
35
36
  - !ruby/object:Gem::Version
36
37
  version: '1.1'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
37
41
  none: false
38
- requirement: !ruby/object:Gem::Requirement
39
42
  requirements:
40
43
  - - ~>
41
44
  - !ruby/object:Gem::Version
42
45
  version: '1.1'
43
- none: false
44
- prerelease: false
45
- type: :runtime
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: activerecord-import
48
- version_requirements: !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
49
50
  requirements:
50
51
  - - ! '>='
51
52
  - !ruby/object:Gem::Version
52
- version: !binary |-
53
- MA==
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
54
57
  none: false
55
- requirement: !ruby/object:Gem::Requirement
56
58
  requirements:
57
59
  - - ! '>='
58
60
  - !ruby/object:Gem::Version
59
- version: !binary |-
60
- MA==
61
- none: false
62
- prerelease: false
63
- type: :runtime
61
+ version: '0'
64
62
  - !ruby/object:Gem::Dependency
65
63
  name: easy_diff
66
- version_requirements: !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
67
66
  requirements:
68
67
  - - ! '>='
69
68
  - !ruby/object:Gem::Version
70
- version: !binary |-
71
- MA==
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
72
73
  none: false
73
- requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
- version: !binary |-
78
- MA==
79
- none: false
80
- prerelease: false
81
- type: :runtime
77
+ version: '0'
82
78
  - !ruby/object:Gem::Dependency
83
79
  name: bundler
84
- version_requirements: !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
85
82
  requirements:
86
83
  - - ~>
87
84
  - !ruby/object:Gem::Version
88
85
  version: '1.3'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
- requirement: !ruby/object:Gem::Requirement
91
90
  requirements:
92
91
  - - ~>
93
92
  - !ruby/object:Gem::Version
94
93
  version: '1.3'
95
- none: false
96
- prerelease: false
97
- type: :development
98
94
  - !ruby/object:Gem::Dependency
99
95
  name: rake
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ! '>='
103
- - !ruby/object:Gem::Version
104
- version: !binary |-
105
- MA==
106
- none: false
107
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
108
98
  requirements:
109
99
  - - ! '>='
110
100
  - !ruby/object:Gem::Version
111
- version: !binary |-
112
- MA==
113
- none: false
114
- prerelease: false
101
+ version: '0'
115
102
  type: :development
116
- - !ruby/object:Gem::Dependency
117
- name: rspec
103
+ prerelease: false
118
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
119
106
  requirements:
120
107
  - - ! '>='
121
108
  - !ruby/object:Gem::Version
122
- version: !binary |-
123
- MA==
124
- none: false
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec
125
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
126
114
  requirements:
127
115
  - - ! '>='
128
116
  - !ruby/object:Gem::Version
129
- version: !binary |-
130
- MA==
131
- none: false
132
- prerelease: false
117
+ version: '0'
133
118
  type: :development
134
- - !ruby/object:Gem::Dependency
135
- name: simplecov
119
+ prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
137
122
  requirements:
138
123
  - - ! '>='
139
124
  - !ruby/object:Gem::Version
140
- version: !binary |-
141
- MA==
142
- none: false
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: simplecov
143
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
144
130
  requirements:
145
131
  - - ! '>='
146
132
  - !ruby/object:Gem::Version
147
- version: !binary |-
148
- MA==
149
- none: false
150
- prerelease: false
133
+ version: '0'
151
134
  type: :development
152
- - !ruby/object:Gem::Dependency
153
- name: activerecord-jdbcsqlite3-adapter
135
+ prerelease: false
154
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
155
138
  requirements:
156
139
  - - ! '>='
157
140
  - !ruby/object:Gem::Version
158
- version: !binary |-
159
- MA==
160
- none: false
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: sqlite3
161
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
162
146
  requirements:
163
147
  - - ! '>='
164
148
  - !ruby/object:Gem::Version
165
- version: !binary |-
166
- MA==
167
- none: false
168
- prerelease: false
149
+ version: '0'
169
150
  type: :development
170
- - !ruby/object:Gem::Dependency
171
- name: activerecord-jdbcpostgresql-adapter
151
+ prerelease: false
172
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
173
154
  requirements:
174
155
  - - ! '>='
175
156
  - !ruby/object:Gem::Version
176
- version: !binary |-
177
- MA==
178
- none: false
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: pg
179
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
180
162
  requirements:
181
163
  - - ! '>='
182
164
  - !ruby/object:Gem::Version
183
- version: !binary |-
184
- MA==
185
- none: false
186
- prerelease: false
165
+ version: '0'
187
166
  type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
188
174
  description: DB and GIT synchronization via ActiveRecord and GitWrapper
189
175
  email:
190
176
  - gabynaiman@gmail.com
@@ -218,6 +204,7 @@ files:
218
204
  - lib/active_git/synchronizer.rb
219
205
  - lib/active_git/version.rb
220
206
  - spec/active_record_extension_spec.rb
207
+ - spec/batch_synchronization_spec.rb
221
208
  - spec/commands_spec.rb
222
209
  - spec/coverage_helper.rb
223
210
  - spec/inflector_spec.rb
@@ -234,38 +221,37 @@ files:
234
221
  - spec/synchronization_spec.rb
235
222
  homepage: https://github.com/gabynaiman/active_git
236
223
  licenses: []
237
- post_install_message:
224
+ post_install_message:
238
225
  rdoc_options: []
239
226
  require_paths:
240
227
  - lib
241
228
  required_ruby_version: !ruby/object:Gem::Requirement
229
+ none: false
242
230
  requirements:
243
231
  - - ! '>='
244
232
  - !ruby/object:Gem::Version
233
+ version: '0'
245
234
  segments:
246
235
  - 0
247
- hash: 2
248
- version: !binary |-
249
- MA==
250
- none: false
236
+ hash: -181325600156632224
251
237
  required_rubygems_version: !ruby/object:Gem::Requirement
238
+ none: false
252
239
  requirements:
253
240
  - - ! '>='
254
241
  - !ruby/object:Gem::Version
242
+ version: '0'
255
243
  segments:
256
244
  - 0
257
- hash: 2
258
- version: !binary |-
259
- MA==
260
- none: false
245
+ hash: -181325600156632224
261
246
  requirements: []
262
- rubyforge_project:
263
- rubygems_version: 1.8.24
264
- signing_key:
247
+ rubyforge_project:
248
+ rubygems_version: 1.8.25
249
+ signing_key:
265
250
  specification_version: 3
266
251
  summary: DB and GIT synchronization via ActiveRecord and GitWrapper
267
252
  test_files:
268
253
  - spec/active_record_extension_spec.rb
254
+ - spec/batch_synchronization_spec.rb
269
255
  - spec/commands_spec.rb
270
256
  - spec/coverage_helper.rb
271
257
  - spec/inflector_spec.rb