xbar 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. data/.gitignore +1 -0
  2. data/.rspec +2 -0
  3. data/README.mkdn +1 -1
  4. data/Rakefile +5 -2
  5. data/dummy/.gitignore +15 -0
  6. data/dummy/Gemfile +38 -0
  7. data/dummy/README.rdoc +261 -0
  8. data/dummy/Rakefile +7 -0
  9. data/dummy/app/assets/images/rails.png +0 -0
  10. data/dummy/app/assets/javascripts/application.js +15 -0
  11. data/dummy/app/assets/stylesheets/application.css +13 -0
  12. data/dummy/app/controllers/application_controller.rb +3 -0
  13. data/dummy/app/helpers/application_helper.rb +2 -0
  14. data/dummy/app/mailers/.gitkeep +0 -0
  15. data/dummy/app/models/.gitkeep +0 -0
  16. data/dummy/app/views/layouts/application.html.erb +14 -0
  17. data/dummy/config.ru +4 -0
  18. data/dummy/config/application.rb +59 -0
  19. data/dummy/config/boot.rb +6 -0
  20. data/dummy/config/database.yml +25 -0
  21. data/dummy/config/environment.rb +5 -0
  22. data/dummy/config/environments/development.rb +37 -0
  23. data/dummy/config/environments/production.rb +67 -0
  24. data/dummy/config/environments/test.rb +37 -0
  25. data/dummy/config/initializers/backtrace_silencers.rb +7 -0
  26. data/dummy/config/initializers/inflections.rb +15 -0
  27. data/dummy/config/initializers/mime_types.rb +5 -0
  28. data/dummy/config/initializers/secret_token.rb +7 -0
  29. data/dummy/config/initializers/session_store.rb +8 -0
  30. data/dummy/config/initializers/wrap_parameters.rb +14 -0
  31. data/dummy/config/locales/en.yml +5 -0
  32. data/dummy/config/routes.rb +58 -0
  33. data/dummy/db/schema.rb +16 -0
  34. data/dummy/db/seeds.rb +7 -0
  35. data/dummy/doc/README_FOR_APP +2 -0
  36. data/dummy/lib/assets/.gitkeep +0 -0
  37. data/dummy/lib/generators/initializer/USAGE +8 -0
  38. data/dummy/lib/generators/initializer/initializer_generator.rb +8 -0
  39. data/dummy/lib/generators/initializer/templates/initializer.rb +1 -0
  40. data/dummy/lib/tasks/.gitkeep +0 -0
  41. data/dummy/log/.gitkeep +0 -0
  42. data/dummy/public/404.html +26 -0
  43. data/dummy/public/422.html +26 -0
  44. data/dummy/public/500.html +25 -0
  45. data/dummy/public/favicon.ico +0 -0
  46. data/dummy/public/index.html +241 -0
  47. data/dummy/public/robots.txt +5 -0
  48. data/dummy/script/rails +6 -0
  49. data/dummy/test/fixtures/.gitkeep +0 -0
  50. data/dummy/test/functional/.gitkeep +0 -0
  51. data/dummy/test/integration/.gitkeep +0 -0
  52. data/dummy/test/performance/browsing_test.rb +12 -0
  53. data/dummy/test/test_helper.rb +13 -0
  54. data/dummy/test/unit/.gitkeep +0 -0
  55. data/dummy/vendor/assets/javascripts/.gitkeep +0 -0
  56. data/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
  57. data/dummy/vendor/plugins/.gitkeep +0 -0
  58. data/examples/README +3 -1
  59. data/examples/basic.rb +34 -0
  60. data/examples/config/canada.json +17 -0
  61. data/examples/config/canada2.json +17 -0
  62. data/examples/config/connection.rb +2 -0
  63. data/examples/config/simple.json +10 -10
  64. data/examples/lib/helpers.rb +90 -0
  65. data/examples/{setup.rb → lib/setup.rb} +14 -6
  66. data/examples/migrations/1_create_users.rb +1 -1
  67. data/examples/multithread.rb +47 -0
  68. data/examples/pause.rb +67 -0
  69. data/examples/pause_switch.rb +61 -0
  70. data/examples/switch.rb +42 -0
  71. data/gemfiles/rails32.gemfile.lock +3 -3
  72. data/lib/xbar.rb +1 -0
  73. data/lib/xbar/mapper.rb +61 -14
  74. data/lib/xbar/model.rb +1 -10
  75. data/lib/xbar/proxy.rb +104 -33
  76. data/lib/xbar/shard.rb +17 -1
  77. data/lib/xbar/version.rb +1 -1
  78. data/run +15 -7
  79. data/spec/console.rb +0 -1
  80. data/spec/spec_helper.rb +5 -2
  81. data/spec/xbar/association_spec.rb +1 -0
  82. data/spec/xbar/mapper_spec.rb +2 -4
  83. data/spec/xbar/model_spec.rb +11 -8
  84. data/spec/xbar/proxy_spec.rb +1 -1
  85. metadata +90 -28
  86. data/examples/example1.rb +0 -34
@@ -1,7 +1,7 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe XBar::Proxy do
4
- let(:proxy) { XBar::Proxy.new }
4
+ let(:proxy) { Thread.current[:connection_proxy] || XBar::Proxy.new }
5
5
 
6
6
  describe "creating a new instance" do
7
7
  before(:all) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-08 00:00:00.000000000 Z
12
+ date: 2012-02-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70184876580280 !ruby/object:Gem::Requirement
16
+ requirement: &70311996926320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70184876580280
24
+ version_requirements: *70311996926320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mysql2
27
- requirement: &70184876579860 !ruby/object:Gem::Requirement
27
+ requirement: &70311996925760 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70184876579860
35
+ version_requirements: *70311996925760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activerecord
38
- requirement: &70184876579440 !ruby/object:Gem::Requirement
38
+ requirement: &70311996924840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70184876579440
46
+ version_requirements: *70311996924840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70184876579000 !ruby/object:Gem::Requirement
49
+ requirement: &70311996923540 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70184876579000
57
+ version_requirements: *70311996923540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: actionpack
60
- requirement: &70184876578580 !ruby/object:Gem::Requirement
60
+ requirement: &70311996921340 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70184876578580
68
+ version_requirements: *70311996921340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: appraisal
71
- requirement: &70184876506720 !ruby/object:Gem::Requirement
71
+ requirement: &70311996920740 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70184876506720
79
+ version_requirements: *70311996920740
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &70184876506180 !ruby/object:Gem::Requirement
82
+ requirement: &70311996919880 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - =
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.8.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70184876506180
90
+ version_requirements: *70311996919880
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: mysql2
93
- requirement: &70184876505720 !ruby/object:Gem::Requirement
93
+ requirement: &70311996935780 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70184876505720
101
+ version_requirements: *70311996935780
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: pg
104
- requirement: &70184876505260 !ruby/object:Gem::Requirement
104
+ requirement: &70311996935300 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70184876505260
112
+ version_requirements: *70311996935300
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: sqlite3
115
- requirement: &70184876504820 !ruby/object:Gem::Requirement
115
+ requirement: &70311996934820 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70184876504820
123
+ version_requirements: *70311996934820
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: syntax
126
- requirement: &70184876504380 !ruby/object:Gem::Requirement
126
+ requirement: &70311996934380 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70184876504380
134
+ version_requirements: *70311996934380
135
135
  description: Supports MongoDB style sharding and mirroring
136
136
  email:
137
137
  - lydianblues@gmail.com
@@ -140,15 +140,77 @@ extensions: []
140
140
  extra_rdoc_files: []
141
141
  files:
142
142
  - .gitignore
143
+ - .rspec
143
144
  - Appraisals
144
145
  - Gemfile
145
146
  - README.mkdn
146
147
  - Rakefile
148
+ - dummy/.gitignore
149
+ - dummy/Gemfile
150
+ - dummy/README.rdoc
151
+ - dummy/Rakefile
152
+ - dummy/app/assets/images/rails.png
153
+ - dummy/app/assets/javascripts/application.js
154
+ - dummy/app/assets/stylesheets/application.css
155
+ - dummy/app/controllers/application_controller.rb
156
+ - dummy/app/helpers/application_helper.rb
157
+ - dummy/app/mailers/.gitkeep
158
+ - dummy/app/models/.gitkeep
159
+ - dummy/app/views/layouts/application.html.erb
160
+ - dummy/config.ru
161
+ - dummy/config/application.rb
162
+ - dummy/config/boot.rb
163
+ - dummy/config/database.yml
164
+ - dummy/config/environment.rb
165
+ - dummy/config/environments/development.rb
166
+ - dummy/config/environments/production.rb
167
+ - dummy/config/environments/test.rb
168
+ - dummy/config/initializers/backtrace_silencers.rb
169
+ - dummy/config/initializers/inflections.rb
170
+ - dummy/config/initializers/mime_types.rb
171
+ - dummy/config/initializers/secret_token.rb
172
+ - dummy/config/initializers/session_store.rb
173
+ - dummy/config/initializers/wrap_parameters.rb
174
+ - dummy/config/locales/en.yml
175
+ - dummy/config/routes.rb
176
+ - dummy/db/schema.rb
177
+ - dummy/db/seeds.rb
178
+ - dummy/doc/README_FOR_APP
179
+ - dummy/lib/assets/.gitkeep
180
+ - dummy/lib/generators/initializer/USAGE
181
+ - dummy/lib/generators/initializer/initializer_generator.rb
182
+ - dummy/lib/generators/initializer/templates/initializer.rb
183
+ - dummy/lib/tasks/.gitkeep
184
+ - dummy/log/.gitkeep
185
+ - dummy/public/404.html
186
+ - dummy/public/422.html
187
+ - dummy/public/500.html
188
+ - dummy/public/favicon.ico
189
+ - dummy/public/index.html
190
+ - dummy/public/robots.txt
191
+ - dummy/script/rails
192
+ - dummy/test/fixtures/.gitkeep
193
+ - dummy/test/functional/.gitkeep
194
+ - dummy/test/integration/.gitkeep
195
+ - dummy/test/performance/browsing_test.rb
196
+ - dummy/test/test_helper.rb
197
+ - dummy/test/unit/.gitkeep
198
+ - dummy/vendor/assets/javascripts/.gitkeep
199
+ - dummy/vendor/assets/stylesheets/.gitkeep
200
+ - dummy/vendor/plugins/.gitkeep
147
201
  - examples/README
202
+ - examples/basic.rb
203
+ - examples/config/canada.json
204
+ - examples/config/canada2.json
205
+ - examples/config/connection.rb
148
206
  - examples/config/simple.json
149
- - examples/example1.rb
207
+ - examples/lib/helpers.rb
208
+ - examples/lib/setup.rb
150
209
  - examples/migrations/1_create_users.rb
151
- - examples/setup.rb
210
+ - examples/multithread.rb
211
+ - examples/pause.rb
212
+ - examples/pause_switch.rb
213
+ - examples/switch.rb
152
214
  - gemfiles/rails3.gemfile
153
215
  - gemfiles/rails3.gemfile.lock
154
216
  - gemfiles/rails31.gemfile
@@ -227,7 +289,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
289
  version: '0'
228
290
  segments:
229
291
  - 0
230
- hash: 2639363329198087997
292
+ hash: -2452725631604641068
231
293
  required_rubygems_version: !ruby/object:Gem::Requirement
232
294
  none: false
233
295
  requirements:
@@ -236,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
298
  version: '0'
237
299
  segments:
238
300
  - 0
239
- hash: 2639363329198087997
301
+ hash: -2452725631604641068
240
302
  requirements: []
241
303
  rubyforge_project: xbar
242
304
  rubygems_version: 1.8.15
data/examples/example1.rb DELETED
@@ -1,34 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'setup'))
2
-
3
- module Examples
4
- Setup.start('simple', 'test', 1)
5
-
6
- # Define the model to let us access the 'users' table through ActiveRecord.
7
- class User < ActiveRecord::Base; end
8
-
9
- # Everything is now set up. Remember that the three french shards don't
10
- # really replicate. XBar is set up to *think* that they do. We know
11
- # better, and can check that reads and writes go to the shards that
12
- # we think that they should. They curious results below wouldn't happen
13
- # if replication is really taking place (modulo the eventual-consistency
14
- # problem).
15
-
16
- User.using(:france_central).create!([{name: "central1"}, {name: "central2"}])
17
- XBar.using(:france_sud) do
18
- User.create!([{name: "sud1"}, {name: "sud2"}, {name: "sud3"}])
19
- end
20
- User.using(:france).create!(name: "nord1")
21
-
22
- f1 = User.using(:france).all.size # 2
23
- f2 = User.using(:france).all.size # 3
24
- f3 = User.using(:france).all.size # 2
25
- f4 = User.using(:france).all.size # 3
26
- n1 = User.using(:france_nord).all.size # 1
27
- c1 = User.using(:france_central).all.size # 2
28
- s1 = User.using(:france_sud).all.size # 3
29
-
30
- puts [f1, f2, f3, f4, n1, c1, s1].to_s # [2, 3, 2, 3, 1, 2, 3]
31
-
32
- Setup.stop(1)
33
- end
34
-