secondbase 0.6.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +16 -0
  4. data/.yardopts +1 -0
  5. data/Appraisals +12 -0
  6. data/CHANGELOG.md +18 -6
  7. data/Gemfile +3 -12
  8. data/Guardfile +16 -0
  9. data/LICENSE.txt +2 -1
  10. data/README.md +144 -0
  11. data/Rakefile +18 -41
  12. data/VERSION +1 -1
  13. data/gemfiles/rails40.gemfile +8 -0
  14. data/gemfiles/rails41.gemfile +8 -0
  15. data/gemfiles/rails42.gemfile +8 -0
  16. data/lib/rails/second_base/generators/migration_generator.rb +25 -0
  17. data/lib/second_base.rb +20 -0
  18. data/lib/second_base/base.rb +8 -0
  19. data/lib/second_base/databases.rake +127 -0
  20. data/lib/second_base/forced.rb +21 -0
  21. data/lib/second_base/on_base.rb +36 -0
  22. data/lib/second_base/railtie.rb +40 -0
  23. data/lib/second_base/test_help.rb +11 -0
  24. data/lib/second_base/version.rb +3 -0
  25. data/lib/secondbase.rb +1 -46
  26. data/secondbase.gemspec +25 -75
  27. data/test/cases/dbtask_test.rb +225 -0
  28. data/test/cases/forced_test.rb +49 -0
  29. data/test/cases/generator_test.rb +41 -0
  30. data/test/cases/on_base_test.rb +35 -0
  31. data/test/cases/railtie_test.rb +31 -0
  32. data/test/dummy_app/Rakefile +2 -0
  33. data/test/dummy_app/app/controllers/application_controller.rb +7 -0
  34. data/test/dummy_app/app/helpers/application_helper.rb +3 -0
  35. data/test/dummy_app/app/models/comment.rb +6 -0
  36. data/test/dummy_app/app/models/comment_forced.rb +6 -0
  37. data/test/dummy_app/app/models/post.rb +7 -0
  38. data/test/dummy_app/app/models/user.rb +6 -0
  39. data/test/dummy_app/bin/rails +5 -0
  40. data/test/dummy_app/config/database.yml +14 -0
  41. data/test/dummy_app/config/routes.rb +3 -0
  42. data/test/dummy_app/db/migrate/20141209165002_create_users.rb +11 -0
  43. data/test/dummy_app/db/migrate/20141214142700_create_posts.rb +12 -0
  44. data/test/dummy_app/db/secondbase/migrate/20151202075826_create_comments.rb +11 -0
  45. data/test/dummy_app/init.rb +40 -0
  46. data/test/dummy_app/log/.keep +0 -0
  47. data/test/dummy_app/tmp/.keep +0 -0
  48. data/test/test_helper.rb +36 -0
  49. data/test/test_helpers/dummy_app_helpers.rb +90 -0
  50. data/test/test_helpers/rails_version_helpers.rb +29 -0
  51. data/test/test_helpers/stream_helpers.rb +40 -0
  52. metadata +220 -139
  53. data/.document +0 -5
  54. data/Gemfile.lock +0 -38
  55. data/README.rdoc +0 -143
  56. data/lib/generators/secondbase/USAGE +0 -19
  57. data/lib/generators/secondbase/migration_generator.rb +0 -36
  58. data/lib/generators/secondbase/templates/migration.rb +0 -13
  59. data/lib/secondbase/active_record/associations/has_and_belongs_to_many_association.rb +0 -66
  60. data/lib/secondbase/active_record/base.rb +0 -13
  61. data/lib/secondbase/active_record/fixtures.rb +0 -66
  62. data/lib/secondbase/active_record/patches.rb +0 -13
  63. data/lib/secondbase/active_record/test_fixtures.rb +0 -32
  64. data/lib/secondbase/model.rb +0 -11
  65. data/lib/secondbase/railtie.rb +0 -10
  66. data/lib/secondbase/rake_method_chain.rb +0 -22
  67. data/lib/secondbase/tasks.rb +0 -219
  68. data/rails_generators/secondbase/USAGE +0 -29
  69. data/rails_generators/secondbase/secondbase_migration_generator.rb +0 -20
  70. data/rails_generators/secondbase/templates/migration.rb +0 -15
  71. data/test/helper.rb +0 -18
  72. data/test/test_secondbase.rb +0 -7
@@ -0,0 +1,29 @@
1
+ module SecondBase
2
+ module RailsVersionHelpers
3
+
4
+ extend ActiveSupport::Concern
5
+
6
+ included { extend RailsVersionHelpers }
7
+
8
+ private
9
+
10
+ def rails_version
11
+ Rails.version.to(2)
12
+ end
13
+
14
+ ['4.0', '4.1', '4.2', '5.0'].each do |v|
15
+
16
+ vm = v.sub '.', ''
17
+
18
+ define_method :"rails_#{vm}?" do
19
+ rails_version == v
20
+ end
21
+
22
+ define_method :"rails_#{vm}_up?" do
23
+ rails_version >= v
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,40 @@
1
+ module SecondBase
2
+ module StreamHelpers
3
+
4
+ private
5
+
6
+ def silence_stream(stream)
7
+ old_stream = stream.dup
8
+ stream.reopen(IO::NULL)
9
+ stream.sync = true
10
+ yield
11
+ ensure
12
+ stream.reopen(old_stream)
13
+ old_stream.close
14
+ end
15
+
16
+ def quietly
17
+ silence_stream(STDOUT) do
18
+ silence_stream(STDERR) do
19
+ yield
20
+ end
21
+ end
22
+ end
23
+
24
+ def capture(stream)
25
+ stream = stream.to_s
26
+ captured_stream = Tempfile.new(stream)
27
+ stream_io = eval("$#{stream}")
28
+ origin_stream = stream_io.dup
29
+ stream_io.reopen(captured_stream)
30
+ yield
31
+ stream_io.rewind
32
+ return captured_stream.read
33
+ ensure
34
+ captured_stream.close
35
+ captured_stream.unlink
36
+ stream_io.reopen(origin_stream)
37
+ end
38
+
39
+ end
40
+ end
metadata CHANGED
@@ -1,171 +1,252 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: secondbase
3
- version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease:
6
- segments:
7
- - 0
8
- - 6
9
- - 0
10
- version: 0.6.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
11
5
  platform: ruby
12
- authors:
13
- - karledurante
6
+ authors:
7
+ - Karle Durante
8
+ - Hunter Madison
9
+ - Ken Collins
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2012-08-31 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2016-01-10 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rails
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '4.0'
22
+ type: :runtime
22
23
  prerelease: false
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- requirement: *id001
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '4.0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: appraisal
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: guard
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: guard-minitest
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: mysql
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
33
78
  type: :development
34
- name: shoulda
35
- - !ruby/object:Gem::Dependency
36
79
  prerelease: false
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 23
43
- segments:
44
- - 1
45
- - 0
46
- - 0
47
- version: 1.0.0
48
- requirement: *id002
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: pry
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
49
92
  type: :development
50
- name: bundler
51
- - !ruby/object:Gem::Dependency
52
93
  prerelease: false
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 51
59
- segments:
60
- - 1
61
- - 8
62
- - 2
63
- version: 1.8.2
64
- requirement: *id003
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rake
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
65
106
  type: :development
66
- name: jeweler
67
- - !ruby/object:Gem::Dependency
68
107
  prerelease: false
69
- version_requirements: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ~>
73
- - !ruby/object:Gem::Version
74
- hash: 7
75
- segments:
76
- - 3
77
- - 0
78
- - 0
79
- version: 3.0.0
80
- requirement: *id004
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: sqlite3
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
81
120
  type: :development
82
- name: activerecord
83
- - !ruby/object:Gem::Dependency
84
121
  prerelease: false
85
- version_requirements: &id005 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- hash: 7
91
- segments:
92
- - 3
93
- - 0
94
- - 0
95
- version: 3.0.0
96
- requirement: *id005
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: yard
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
97
134
  type: :development
98
- name: activerecord
99
- description: Secondbase provides support to Rails to create a homogeneous environment for a dual database project. Using the rake tasks already familiar to you, this gem enables Rails to work with two primary databases, instead of just one.
100
- email: kdurante@customink.com
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ description: SecondBase provides support for Rails to manage dual databases by focusing
142
+ on ActiveRecord tasks that create, migrate, and test your databases.
143
+ email:
144
+ - kdurante@customink.com
145
+ - hunterglenmadison@icloud.com
146
+ - ken@metaskills.net
101
147
  executables: []
102
-
103
148
  extensions: []
104
-
105
- extra_rdoc_files:
106
- - LICENSE.txt
107
- - README.rdoc
108
- files:
109
- - .document
149
+ extra_rdoc_files: []
150
+ files:
151
+ - ".gitignore"
152
+ - ".travis.yml"
153
+ - ".yardopts"
154
+ - Appraisals
110
155
  - CHANGELOG.md
111
156
  - Gemfile
112
- - Gemfile.lock
157
+ - Guardfile
113
158
  - LICENSE.txt
114
- - README.rdoc
159
+ - README.md
115
160
  - Rakefile
116
161
  - VERSION
117
- - lib/generators/secondbase/USAGE
118
- - lib/generators/secondbase/migration_generator.rb
119
- - lib/generators/secondbase/templates/migration.rb
162
+ - gemfiles/rails40.gemfile
163
+ - gemfiles/rails41.gemfile
164
+ - gemfiles/rails42.gemfile
165
+ - lib/rails/second_base/generators/migration_generator.rb
166
+ - lib/second_base.rb
167
+ - lib/second_base/base.rb
168
+ - lib/second_base/databases.rake
169
+ - lib/second_base/forced.rb
170
+ - lib/second_base/on_base.rb
171
+ - lib/second_base/railtie.rb
172
+ - lib/second_base/test_help.rb
173
+ - lib/second_base/version.rb
120
174
  - lib/secondbase.rb
121
- - lib/secondbase/active_record/associations/has_and_belongs_to_many_association.rb
122
- - lib/secondbase/active_record/base.rb
123
- - lib/secondbase/active_record/fixtures.rb
124
- - lib/secondbase/active_record/patches.rb
125
- - lib/secondbase/active_record/test_fixtures.rb
126
- - lib/secondbase/model.rb
127
- - lib/secondbase/railtie.rb
128
- - lib/secondbase/rake_method_chain.rb
129
- - lib/secondbase/tasks.rb
130
- - rails_generators/secondbase/USAGE
131
- - rails_generators/secondbase/secondbase_migration_generator.rb
132
- - rails_generators/secondbase/templates/migration.rb
133
175
  - secondbase.gemspec
134
- - test/helper.rb
135
- - test/test_secondbase.rb
136
- has_rdoc: true
137
- homepage: http://github.com/karledurante/secondbase
138
- licenses:
176
+ - test/cases/dbtask_test.rb
177
+ - test/cases/forced_test.rb
178
+ - test/cases/generator_test.rb
179
+ - test/cases/on_base_test.rb
180
+ - test/cases/railtie_test.rb
181
+ - test/dummy_app/Rakefile
182
+ - test/dummy_app/app/controllers/application_controller.rb
183
+ - test/dummy_app/app/helpers/application_helper.rb
184
+ - test/dummy_app/app/models/comment.rb
185
+ - test/dummy_app/app/models/comment_forced.rb
186
+ - test/dummy_app/app/models/post.rb
187
+ - test/dummy_app/app/models/user.rb
188
+ - test/dummy_app/bin/rails
189
+ - test/dummy_app/config/database.yml
190
+ - test/dummy_app/config/routes.rb
191
+ - test/dummy_app/db/migrate/20141209165002_create_users.rb
192
+ - test/dummy_app/db/migrate/20141214142700_create_posts.rb
193
+ - test/dummy_app/db/secondbase/migrate/20151202075826_create_comments.rb
194
+ - test/dummy_app/init.rb
195
+ - test/dummy_app/log/.keep
196
+ - test/dummy_app/tmp/.keep
197
+ - test/test_helper.rb
198
+ - test/test_helpers/dummy_app_helpers.rb
199
+ - test/test_helpers/rails_version_helpers.rb
200
+ - test/test_helpers/stream_helpers.rb
201
+ homepage: http://github.com/customink/secondbase
202
+ licenses:
139
203
  - MIT
204
+ metadata: {}
140
205
  post_install_message:
141
- rdoc_options: []
142
-
143
- require_paths:
206
+ rdoc_options:
207
+ - "--charset=UTF-8"
208
+ require_paths:
144
209
  - lib
145
- required_ruby_version: !ruby/object:Gem::Requirement
146
- none: false
147
- requirements:
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ requirements:
148
212
  - - ">="
149
- - !ruby/object:Gem::Version
150
- hash: 3
151
- segments:
152
- - 0
153
- version: "0"
154
- required_rubygems_version: !ruby/object:Gem::Requirement
155
- none: false
156
- requirements:
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
+ requirements:
157
217
  - - ">="
158
- - !ruby/object:Gem::Version
159
- hash: 3
160
- segments:
161
- - 0
162
- version: "0"
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
163
220
  requirements: []
164
-
165
221
  rubyforge_project:
166
- rubygems_version: 1.4.2
222
+ rubygems_version: 2.4.5.1
167
223
  signing_key:
168
- specification_version: 3
169
- summary: Allow Rails manage second database in your projects
170
- test_files: []
171
-
224
+ specification_version: 4
225
+ summary: Seamless second database integration for Rails.
226
+ test_files:
227
+ - test/cases/dbtask_test.rb
228
+ - test/cases/forced_test.rb
229
+ - test/cases/generator_test.rb
230
+ - test/cases/on_base_test.rb
231
+ - test/cases/railtie_test.rb
232
+ - test/dummy_app/Rakefile
233
+ - test/dummy_app/app/controllers/application_controller.rb
234
+ - test/dummy_app/app/helpers/application_helper.rb
235
+ - test/dummy_app/app/models/comment.rb
236
+ - test/dummy_app/app/models/comment_forced.rb
237
+ - test/dummy_app/app/models/post.rb
238
+ - test/dummy_app/app/models/user.rb
239
+ - test/dummy_app/bin/rails
240
+ - test/dummy_app/config/database.yml
241
+ - test/dummy_app/config/routes.rb
242
+ - test/dummy_app/db/migrate/20141209165002_create_users.rb
243
+ - test/dummy_app/db/migrate/20141214142700_create_posts.rb
244
+ - test/dummy_app/db/secondbase/migrate/20151202075826_create_comments.rb
245
+ - test/dummy_app/init.rb
246
+ - test/dummy_app/log/.keep
247
+ - test/dummy_app/tmp/.keep
248
+ - test/test_helper.rb
249
+ - test/test_helpers/dummy_app_helpers.rb
250
+ - test/test_helpers/rails_version_helpers.rb
251
+ - test/test_helpers/stream_helpers.rb
252
+ has_rdoc: