activerecord-postgres-hstore 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.gitignore +25 -0
  2. data/.travis.yml +1 -1
  3. data/Gemfile +4 -10
  4. data/README.md +33 -6
  5. data/Rakefile +3 -18
  6. data/VERSION +1 -1
  7. data/activerecord-postgres-hstore.gemspec +22 -128
  8. data/lib/activerecord-postgres-hstore/coder.rb +1 -1
  9. data/spec/{activerecord-coders-hstore.rb → activerecord-coders-hstore_spec.rb} +4 -0
  10. metadata +14 -120
  11. data/Gemfile.lock +0 -121
  12. data/app/.gitignore +0 -4
  13. data/app/Gemfile +0 -28
  14. data/app/Gemfile.lock +0 -81
  15. data/app/README +0 -256
  16. data/app/Rakefile +0 -7
  17. data/app/app/controllers/application_controller.rb +0 -3
  18. data/app/app/helpers/application_helper.rb +0 -2
  19. data/app/app/models/bar.rb +0 -3
  20. data/app/app/models/foo.rb +0 -3
  21. data/app/app/views/layouts/application.html.erb +0 -14
  22. data/app/bench.rb +0 -76
  23. data/app/bench_results.txt +0 -13
  24. data/app/config.ru +0 -4
  25. data/app/config/application.rb +0 -43
  26. data/app/config/boot.rb +0 -13
  27. data/app/config/database.yml +0 -51
  28. data/app/config/environment.rb +0 -5
  29. data/app/config/environments/development.rb +0 -22
  30. data/app/config/environments/production.rb +0 -49
  31. data/app/config/environments/test.rb +0 -35
  32. data/app/config/initializers/activerecord_postgres_hstore.rb +0 -0
  33. data/app/config/initializers/backtrace_silencers.rb +0 -7
  34. data/app/config/initializers/inflections.rb +0 -10
  35. data/app/config/initializers/mime_types.rb +0 -5
  36. data/app/config/initializers/secret_token.rb +0 -7
  37. data/app/config/initializers/session_store.rb +0 -8
  38. data/app/config/locales/en.yml +0 -5
  39. data/app/config/routes.rb +0 -58
  40. data/app/db/development_structure.sql +0 -580
  41. data/app/db/migrate/20100906191151_add_hstore.rb +0 -276
  42. data/app/db/migrate/20100906191457_create_foos.rb +0 -13
  43. data/app/db/migrate/20100906191506_create_bars.rb +0 -12
  44. data/app/db/schema.rb +0 -27
  45. data/app/db/seeds.rb +0 -7
  46. data/app/doc/README_FOR_APP +0 -2
  47. data/app/generate_copy_files.rb +0 -47
  48. data/app/lib/tasks/.gitkeep +0 -0
  49. data/app/public/404.html +0 -26
  50. data/app/public/422.html +0 -26
  51. data/app/public/500.html +0 -26
  52. data/app/public/favicon.ico +0 -0
  53. data/app/public/images/rails.png +0 -0
  54. data/app/public/index.html +0 -262
  55. data/app/public/javascripts/.gitkeep +0 -0
  56. data/app/public/javascripts/application.js +0 -0
  57. data/app/public/robots.txt +0 -5
  58. data/app/public/stylesheets/.gitkeep +0 -0
  59. data/app/script/rails +0 -6
  60. data/app/test/performance/browsing_test.rb +0 -9
  61. data/app/test/test_helper.rb +0 -6
  62. data/app/test/unit/bar_test.rb +0 -133
  63. data/app/test/unit/foo_test.rb +0 -8
  64. data/app/vendor/plugins/.gitkeep +0 -0
data/app/public/500.html DELETED
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>We're sorry, but something went wrong (500)</title>
5
- <style type="text/css">
6
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
- div.dialog {
8
- width: 25em;
9
- padding: 0 4em;
10
- margin: 4em auto 0 auto;
11
- border: 1px solid #ccc;
12
- border-right-color: #999;
13
- border-bottom-color: #999;
14
- }
15
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <!-- This file lives in public/500.html -->
21
- <div class="dialog">
22
- <h1>We're sorry, but something went wrong.</h1>
23
- <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
- </div>
25
- </body>
26
- </html>
File without changes
Binary file
@@ -1,262 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Ruby on Rails: Welcome aboard</title>
5
- <style type="text/css" media="screen">
6
- body {
7
- margin: 0;
8
- margin-bottom: 25px;
9
- padding: 0;
10
- background-color: #f0f0f0;
11
- font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
12
- font-size: 13px;
13
- color: #333;
14
- }
15
-
16
- h1 {
17
- font-size: 28px;
18
- color: #000;
19
- }
20
-
21
- a {color: #03c}
22
- a:hover {
23
- background-color: #03c;
24
- color: white;
25
- text-decoration: none;
26
- }
27
-
28
-
29
- #page {
30
- background-color: #f0f0f0;
31
- width: 750px;
32
- margin: 0;
33
- margin-left: auto;
34
- margin-right: auto;
35
- }
36
-
37
- #content {
38
- float: left;
39
- background-color: white;
40
- border: 3px solid #aaa;
41
- border-top: none;
42
- padding: 25px;
43
- width: 500px;
44
- }
45
-
46
- #sidebar {
47
- float: right;
48
- width: 175px;
49
- }
50
-
51
- #footer {
52
- clear: both;
53
- }
54
-
55
-
56
- #header, #about, #getting-started {
57
- padding-left: 75px;
58
- padding-right: 30px;
59
- }
60
-
61
-
62
- #header {
63
- background-image: url("images/rails.png");
64
- background-repeat: no-repeat;
65
- background-position: top left;
66
- height: 64px;
67
- }
68
- #header h1, #header h2 {margin: 0}
69
- #header h2 {
70
- color: #888;
71
- font-weight: normal;
72
- font-size: 16px;
73
- }
74
-
75
-
76
- #about h3 {
77
- margin: 0;
78
- margin-bottom: 10px;
79
- font-size: 14px;
80
- }
81
-
82
- #about-content {
83
- background-color: #ffd;
84
- border: 1px solid #fc0;
85
- margin-left: -55px;
86
- margin-right: -10px;
87
- }
88
- #about-content table {
89
- margin-top: 10px;
90
- margin-bottom: 10px;
91
- font-size: 11px;
92
- border-collapse: collapse;
93
- }
94
- #about-content td {
95
- padding: 10px;
96
- padding-top: 3px;
97
- padding-bottom: 3px;
98
- }
99
- #about-content td.name {color: #555}
100
- #about-content td.value {color: #000}
101
-
102
- #about-content ul {
103
- padding: 0;
104
- list-style-type: none;
105
- }
106
-
107
- #about-content.failure {
108
- background-color: #fcc;
109
- border: 1px solid #f00;
110
- }
111
- #about-content.failure p {
112
- margin: 0;
113
- padding: 10px;
114
- }
115
-
116
-
117
- #getting-started {
118
- border-top: 1px solid #ccc;
119
- margin-top: 25px;
120
- padding-top: 15px;
121
- }
122
- #getting-started h1 {
123
- margin: 0;
124
- font-size: 20px;
125
- }
126
- #getting-started h2 {
127
- margin: 0;
128
- font-size: 14px;
129
- font-weight: normal;
130
- color: #333;
131
- margin-bottom: 25px;
132
- }
133
- #getting-started ol {
134
- margin-left: 0;
135
- padding-left: 0;
136
- }
137
- #getting-started li {
138
- font-size: 18px;
139
- color: #888;
140
- margin-bottom: 25px;
141
- }
142
- #getting-started li h2 {
143
- margin: 0;
144
- font-weight: normal;
145
- font-size: 18px;
146
- color: #333;
147
- }
148
- #getting-started li p {
149
- color: #555;
150
- font-size: 13px;
151
- }
152
-
153
-
154
- #search {
155
- margin: 0;
156
- padding-top: 10px;
157
- padding-bottom: 10px;
158
- font-size: 11px;
159
- }
160
- #search input {
161
- font-size: 11px;
162
- margin: 2px;
163
- }
164
- #search-text {width: 170px}
165
-
166
-
167
- #sidebar ul {
168
- margin-left: 0;
169
- padding-left: 0;
170
- }
171
- #sidebar ul h3 {
172
- margin-top: 25px;
173
- font-size: 16px;
174
- padding-bottom: 10px;
175
- border-bottom: 1px solid #ccc;
176
- }
177
- #sidebar li {
178
- list-style-type: none;
179
- }
180
- #sidebar ul.links li {
181
- margin-bottom: 5px;
182
- }
183
-
184
- </style>
185
- <script type="text/javascript">
186
- function about() {
187
- info = document.getElementById('about-content');
188
- if (window.XMLHttpRequest)
189
- { xhr = new XMLHttpRequest(); }
190
- else
191
- { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
192
- xhr.open("GET","rails/info/properties",false);
193
- xhr.send("");
194
- info.innerHTML = xhr.responseText;
195
- info.style.display = 'block'
196
- }
197
-
198
- function prepend() {
199
- search = document.getElementById('search-text');
200
- text = search.value;
201
- search.value = 'site:rubyonrails.org ' + text;
202
- }
203
-
204
- window.onload = function() {
205
- document.getElementById('search-text').value = '';
206
- }
207
- </script>
208
- </head>
209
- <body>
210
- <div id="page">
211
- <div id="sidebar">
212
- <ul id="sidebar-items">
213
- <li>
214
- <h3>Browse the documentation</h3>
215
- <ul class="links">
216
- <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
217
- <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
218
- <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
219
- <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
220
- </ul>
221
- </li>
222
- </ul>
223
- </div>
224
-
225
- <div id="content">
226
- <div id="header">
227
- <h1>Welcome aboard</h1>
228
- <h2>You&rsquo;re riding Ruby on Rails!</h2>
229
- </div>
230
-
231
- <div id="about">
232
- <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
233
- <div id="about-content" style="display: none"></div>
234
- </div>
235
-
236
- <div id="getting-started">
237
- <h1>Getting started</h1>
238
- <h2>Here&rsquo;s how to get rolling:</h2>
239
-
240
- <ol>
241
- <li>
242
- <h2>Use <code>rails generate</code> to create your models and controllers</h2>
243
- <p>To see all available options, run it without parameters.</p>
244
- </li>
245
-
246
- <li>
247
- <h2>Set up a default route and remove or rename this file</h2>
248
- <p>Routes are set up in config/routes.rb.</p>
249
- </li>
250
-
251
- <li>
252
- <h2>Create your database</h2>
253
- <p>Run <code>rake db:migrate</code> to create your database. If you're not using SQLite (the default), edit <code>config/database.yml</code> with your username and password.</p>
254
- </li>
255
- </ol>
256
- </div>
257
- </div>
258
-
259
- <div id="footer">&nbsp;</div>
260
- </div>
261
- </body>
262
- </html>
File without changes
File without changes
@@ -1,5 +0,0 @@
1
- # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
- #
3
- # To ban all spiders from the entire site uncomment the next two lines:
4
- # User-Agent: *
5
- # Disallow: /
File without changes
data/app/script/rails DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby1.8
2
- # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
-
4
- APP_PATH = File.expand_path('../../config/application', __FILE__)
5
- require File.expand_path('../../config/boot', __FILE__)
6
- require 'rails/commands'
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
- require 'rails/performance_test_help'
3
-
4
- # Profiling results for each test method are written to tmp/performance.
5
- class BrowsingTest < ActionDispatch::PerformanceTest
6
- def test_homepage
7
- get '/'
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- ENV["RAILS_ENV"] = "test"
2
- require File.expand_path('../../config/environment', __FILE__)
3
- require 'rails/test_help'
4
-
5
- class ActiveSupport::TestCase
6
- end
@@ -1,133 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
-
4
- class BarTest < ActiveSupport::TestCase
5
-
6
- test "should create contact" do
7
- assert Bar.create :data => {:a => 1, :b => 2}
8
- end
9
-
10
- test "should raise HstoreTypeMismatch" do
11
- assert_raises ActiveRecord::HstoreTypeMismatch do
12
- assert Bar.create :data => "bug"
13
- end
14
- end
15
-
16
- test "should read values from contact" do
17
- bar = Bar.create :data => {:a => 1, :b => "Lorem ipsum", 'other stuff' => "'''a'''"}
18
- assert_equal({'a' => '1', 'b' => 'Lorem ipsum', 'other stuff' => "'''a'''"}, Bar.find(bar.id).data)
19
- end
20
-
21
- test "should search" do
22
- Array.new(10){|i|
23
- Bar.create :data => {:a => "value#{i}"}
24
- }
25
- assert_equal 10, Bar.where("data ? 'a'").count
26
- assert_equal 1, Bar.where("data -> 'a' = 'value5'").count
27
- assert_equal 9, Bar.where("data -> 'a' <> 'value5'").count
28
- assert_equal 1, Bar.where("data @> 'a=>value5'").count
29
- assert_equal 9, Bar.where("not data @> 'a=>value5'").count
30
- assert_equal 10, Bar.where("data -> 'a' LIKE '%value%'").count
31
- assert_equal 0, Bar.where("data -> 'a' LIKE '%VALUE%'").count
32
- assert_equal 10, Bar.where("data -> 'a' ILIKE '%VALUE%'").count
33
- end
34
-
35
- test "should delete with workaround" do
36
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
37
- bar.reload
38
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
39
- data = bar.data
40
- data.delete('a')
41
- bar.data = data
42
- bar.save
43
- bar.reload
44
- assert_equal({"b"=>"2", "c"=>"3"}, bar.data)
45
- end
46
-
47
- test "should delete in a cool way" do
48
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
49
- bar.reload
50
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
51
- bar.destroy_key(:data, :a)
52
- bar.save
53
- bar.reload
54
- assert_equal({"b"=>"2", "c"=>"3"}, bar.data)
55
- end
56
-
57
- test "should delete in a cool way - bang version" do
58
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
59
- bar.reload
60
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
61
- assert bar.destroy_key!(:data, :a)
62
- bar.reload
63
- assert_equal({"b"=>"2", "c"=>"3"}, bar.data)
64
- end
65
-
66
- test "should delete many keys" do
67
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
68
- bar.reload
69
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
70
- bar.destroy_keys(:data, :a, :b)
71
- bar.save
72
- bar.reload
73
- assert_equal({"c"=>"3"}, bar.data)
74
- end
75
-
76
- test "should delete many keys - bang version" do
77
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
78
- bar.reload
79
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
80
- assert bar.destroy_keys!(:data, :a, :b)
81
- bar.reload
82
- assert_equal({"c"=>"3"}, bar.data)
83
- end
84
-
85
- test "should delete using method chaining" do
86
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
87
- bar.reload
88
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
89
- bar.destroy_key(:data, :a).destroy_key(:data, :b).destroy_key(:data, :c).save
90
- bar.reload
91
- assert_equal({}, bar.data)
92
- end
93
-
94
- test "should delete from the model" do
95
- bars = Array.new(5){ Bar.create :data => {:a => 1, :b => 2, :c => 3} }
96
- bars.map(&:reload)
97
- for bar in bars
98
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
99
- end
100
- Bar.delete_key(:data, :a)
101
- bars.map(&:reload)
102
- for bar in bars
103
- assert_equal({"b"=>"2", "c"=>"3"}, bar.data)
104
- end
105
- end
106
-
107
- test "should delete many keys from the model" do
108
- bars = Array.new(5){ Bar.create :data => {:a => 1, :b => 2, :c => 3} }
109
- bars.map(&:reload)
110
- for bar in bars
111
- assert_equal({"a"=>"1", "b"=>"2", "c"=>"3"}, bar.data)
112
- end
113
- Bar.delete_keys(:data, :a, :b)
114
- bars.map(&:reload)
115
- for bar in bars
116
- assert_equal({"c"=>"3"}, bar.data)
117
- end
118
- end
119
-
120
- test "should explode if there is not column trying to delete from the record" do
121
- bar = Bar.create :data => {:a => 1, :b => 2, :c => 3}
122
- assert_raise RuntimeError do
123
- bar.destroy_key(:foo, :a)
124
- end
125
- end
126
-
127
-
128
- test "should explode if there is not column trying to delete from the model" do
129
- assert_raise RuntimeError do
130
- Bar.delete_key(:foo, :a)
131
- end
132
- end
133
- end