secondbase 0.6.0 → 1.0.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.
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: