activerecord-postgis-array 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/.gitignore +21 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +18 -0
  4. data/CHANGELOG.md +99 -0
  5. data/CONTRIBUTING.md +35 -0
  6. data/Gemfile +12 -0
  7. data/LICENSE +22 -0
  8. data/README.md +87 -0
  9. data/Rakefile +33 -0
  10. data/activerecord-postgis-array.gemspec +30 -0
  11. data/docs/indexes.md +28 -0
  12. data/docs/migrations.md +92 -0
  13. data/docs/querying.md +170 -0
  14. data/docs/type_casting.md +51 -0
  15. data/lib/activerecord-postgis-array.rb +3 -0
  16. data/lib/activerecord-postgis-array/active_record.rb +4 -0
  17. data/lib/activerecord-postgis-array/active_record/connection_adapters.rb +1 -0
  18. data/lib/activerecord-postgis-array/active_record/connection_adapters/postgres_adapter.rb +346 -0
  19. data/lib/activerecord-postgis-array/active_record/relation.rb +2 -0
  20. data/lib/activerecord-postgis-array/active_record/relation/predicate_builder.rb +71 -0
  21. data/lib/activerecord-postgis-array/active_record/relation/query_methods.rb +84 -0
  22. data/lib/activerecord-postgis-array/active_record/sanitization.rb +30 -0
  23. data/lib/activerecord-postgis-array/active_record/schema_dumper.rb +157 -0
  24. data/lib/activerecord-postgis-array/arel.rb +3 -0
  25. data/lib/activerecord-postgis-array/arel/nodes.rb +2 -0
  26. data/lib/activerecord-postgis-array/arel/nodes/array_nodes.rb +9 -0
  27. data/lib/activerecord-postgis-array/arel/nodes/contained_within.rb +20 -0
  28. data/lib/activerecord-postgis-array/arel/predications.rb +25 -0
  29. data/lib/activerecord-postgis-array/arel/visitors.rb +2 -0
  30. data/lib/activerecord-postgis-array/arel/visitors/to_sql.rb +15 -0
  31. data/lib/activerecord-postgis-array/arel/visitors/visitor.rb +38 -0
  32. data/lib/activerecord-postgis-array/version.rb +3 -0
  33. data/spec/arel/arel_spec.rb +30 -0
  34. data/spec/arel/array_spec.rb +77 -0
  35. data/spec/columns/array_spec.rb +120 -0
  36. data/spec/dummy/.gitignore +15 -0
  37. data/spec/dummy/README.rdoc +261 -0
  38. data/spec/dummy/Rakefile +7 -0
  39. data/spec/dummy/app/assets/images/rails.png +0 -0
  40. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  41. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  42. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  43. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  44. data/spec/dummy/app/mailers/.gitkeep +0 -0
  45. data/spec/dummy/app/models/.gitkeep +0 -0
  46. data/spec/dummy/app/models/person.rb +3 -0
  47. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  48. data/spec/dummy/config.ru +4 -0
  49. data/spec/dummy/config/application.rb +59 -0
  50. data/spec/dummy/config/boot.rb +6 -0
  51. data/spec/dummy/config/database.yml.example +14 -0
  52. data/spec/dummy/config/environment.rb +5 -0
  53. data/spec/dummy/config/environments/development.rb +38 -0
  54. data/spec/dummy/config/environments/production.rb +67 -0
  55. data/spec/dummy/config/environments/test.rb +37 -0
  56. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  57. data/spec/dummy/config/initializers/inflections.rb +15 -0
  58. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  59. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  60. data/spec/dummy/config/initializers/session_store.rb +8 -0
  61. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  62. data/spec/dummy/config/locales/en.yml +5 -0
  63. data/spec/dummy/config/routes.rb +58 -0
  64. data/spec/dummy/db/migrate/20120501163758_create_people.rb +12 -0
  65. data/spec/dummy/db/schema.rb +25 -0
  66. data/spec/dummy/db/seeds.rb +7 -0
  67. data/spec/dummy/lib/assets/.gitkeep +0 -0
  68. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  69. data/spec/dummy/log/.gitkeep +0 -0
  70. data/spec/dummy/public/404.html +26 -0
  71. data/spec/dummy/public/422.html +26 -0
  72. data/spec/dummy/public/500.html +25 -0
  73. data/spec/dummy/public/favicon.ico +0 -0
  74. data/spec/dummy/public/index.html +241 -0
  75. data/spec/dummy/public/robots.txt +5 -0
  76. data/spec/dummy/script/rails +6 -0
  77. data/spec/dummy/spec/factories/people.rb +7 -0
  78. data/spec/dummy/test/fixtures/.gitkeep +0 -0
  79. data/spec/dummy/test/functional/.gitkeep +0 -0
  80. data/spec/dummy/test/integration/.gitkeep +0 -0
  81. data/spec/dummy/test/performance/browsing_test.rb +12 -0
  82. data/spec/dummy/test/test_helper.rb +13 -0
  83. data/spec/dummy/test/unit/.gitkeep +0 -0
  84. data/spec/dummy/vendor/assets/javascripts/.gitkeep +0 -0
  85. data/spec/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
  86. data/spec/dummy/vendor/plugins/.gitkeep +0 -0
  87. data/spec/migrations/active_record_migration_spec.rb +29 -0
  88. data/spec/migrations/array_spec.rb +136 -0
  89. data/spec/migrations/index_spec.rb +67 -0
  90. data/spec/models/array_spec.rb +285 -0
  91. data/spec/queries/array_queries_spec.rb +72 -0
  92. data/spec/queries/sanity_spec.rb +16 -0
  93. data/spec/schema_dumper/array_spec.rb +17 -0
  94. data/spec/schema_dumper/extension_spec.rb +14 -0
  95. data/spec/schema_dumper/index_spec.rb +46 -0
  96. data/spec/spec_helper.rb +29 -0
  97. metadata +318 -0
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Array queries' do
4
+ let(:equality_regex) { %r{\"people\"\.\"tags\" = '\{\"working\"\}'} }
5
+ let(:overlap_regex) { %r{\"people\"\.\"tag_ids\" && '\{1,2\}'} }
6
+ let(:contains_regex) { %r{\"people\"\.\"tag_ids\" @> '\{1,2\}'} }
7
+ let(:any_regex) { %r{2 = ANY\(\"people\"\.\"tag_ids\"\)} }
8
+ let(:all_regex) { %r{2 = ALL\(\"people\"\.\"tag_ids\"\)} }
9
+
10
+ describe '.where(:array_column => [])' do
11
+ it 'returns an array string instead of IN ()' do
12
+ query = Person.where(:tags => ['working']).to_sql
13
+ query.should match equality_regex
14
+ end
15
+ end
16
+
17
+ describe '.where.overlap(:column => value)' do
18
+ it 'generates the appropriate where clause' do
19
+ query = Person.where.overlap(:tag_ids => [1,2])
20
+ query.to_sql.should match overlap_regex
21
+ end
22
+
23
+ it 'allows chaining' do
24
+ query = Person.where.overlap(:tag_ids => [1,2]).where(:tags => ['working']).to_sql
25
+
26
+ query.should match overlap_regex
27
+ query.should match equality_regex
28
+ end
29
+ end
30
+
31
+ describe '.where.contains(:column => value)' do
32
+ it 'generates the appropriate where clause' do
33
+ query = Person.where.contains(:tag_ids => [1,2])
34
+ query.to_sql.should match contains_regex
35
+ end
36
+
37
+ it 'allows chaining' do
38
+ query = Person.where.contains(:tag_ids => [1,2]).where(:tags => ['working']).to_sql
39
+
40
+ query.should match contains_regex
41
+ query.should match equality_regex
42
+ end
43
+ end
44
+
45
+ describe '.where.any(:column => value)' do
46
+ it 'generates the appropriate where clause' do
47
+ query = Person.where.any(:tag_ids => 2)
48
+ query.to_sql.should match any_regex
49
+ end
50
+
51
+ it 'allows chaining' do
52
+ query = Person.where.any(:tag_ids => 2).where(:tags => ['working']).to_sql
53
+
54
+ query.should match any_regex
55
+ query.should match equality_regex
56
+ end
57
+ end
58
+
59
+ describe '.where.all(:column => value)' do
60
+ it 'generates the appropriate where clause' do
61
+ query = Person.where.all(:tag_ids => 2)
62
+ query.to_sql.should match all_regex
63
+ end
64
+
65
+ it 'allows chaining' do
66
+ query = Person.where.all(:tag_ids => 2).where(:tags => ['working']).to_sql
67
+
68
+ query.should match all_regex
69
+ query.should match equality_regex
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Ensure that we don\'t stomp on Active Record\'s queries' do
4
+ describe '.where' do
5
+ it 'generates IN clauses for non array columns' do
6
+ query = Person.where(:id => [1,2,3]).to_sql
7
+
8
+ query.should match /IN \(1, 2, 3\)/
9
+ end
10
+ it 'generates IN clauses for non array columns' do
11
+ query = Person.where(:id => []).to_sql
12
+
13
+ query.should match /IN \(NULL\)/
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'array schema dump' do
4
+ let!(:connection) { ActiveRecord::Base.connection }
5
+ after { connection.drop_table :testings }
6
+ it 'correctly generates cidr column statements' do
7
+ stream = StringIO.new
8
+ connection.create_table :testings do |t|
9
+ t.integer :network_column, :array => true
10
+ end
11
+
12
+ ActiveRecord::SchemaDumper.dump(connection, stream)
13
+ output = stream.string
14
+
15
+ output.should match /t\.integer "network_column".*?:array => true/
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'extension schema dump', :if => ActiveRecord::Base.connection.supports_extensions? do
4
+ let!(:connection) { ActiveRecord::Base.connection }
5
+ it 'correctly creates and exports database extensions' do
6
+ stream = StringIO.new
7
+ connection.add_extension 'hstore'
8
+
9
+ ActiveRecord::SchemaDumper.dump(connection, stream)
10
+ output = stream.string
11
+
12
+ output.should match /add_extension "hstore"/
13
+ end
14
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Index schema dumper' do
4
+ let!(:connection) { ActiveRecord::Base.connection }
5
+
6
+ after do
7
+ [:tag_ids, :lucky_number, :biography].each do |column|
8
+ begin
9
+ connection.remove_index :people, column
10
+ rescue ArgumentError
11
+ end
12
+ end
13
+ end
14
+
15
+ it 'handles index type parameters' do
16
+ connection.add_index(:people, :tag_ids, :using => :gin)
17
+
18
+ stream = StringIO.new
19
+ ActiveRecord::SchemaDumper.dump(connection, stream)
20
+ output = stream.string
21
+
22
+ output.should match /:using => :gin/
23
+ output.should_not match /:using => :btree/
24
+ output.should_not match /:index_opclass =>/
25
+ end
26
+
27
+ it 'handles index where clauses' do
28
+ connection.add_index(:people, :lucky_number, :where => '(lucky_number > 50)')
29
+
30
+ stream = StringIO.new
31
+ ActiveRecord::SchemaDumper.dump(connection, stream)
32
+ output = stream.string
33
+
34
+ output.should match /:where => "\(lucky_number > 50\)"/
35
+ end
36
+
37
+ it 'dumps index operator classes', :if => ActiveRecord::Base.connection.supports_extensions? do
38
+ connection.add_index(:people, :biography, :using => :gin, :index_opclass => :gin_trgm_ops)
39
+
40
+ stream = StringIO.new
41
+ ActiveRecord::SchemaDumper.dump(connection, stream)
42
+ output = stream.string
43
+
44
+ output.should match /:using => :gin,\s+:index_opclass => :gin_trgm_ops/
45
+ end
46
+ end
@@ -0,0 +1,29 @@
1
+ # Configure Rails Envinronment
2
+ ENV['RAILS_ENV'] = 'test'
3
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
4
+
5
+ require 'rspec/rails'
6
+ require 'rspec/autorun'
7
+ require 'bourne'
8
+ #require 'debugger' unless ENV['CI'] || (RUBY_PLATFORM =~ /java/)
9
+
10
+ ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
11
+
12
+ # Requires supporting ruby files with custom matchers and macros, etc,
13
+ # in spec/support/ and its subdirectories.
14
+ Dir[File.join(ENGINE_RAILS_ROOT, 'spec/support/**/*.rb')].each { |f| require f }
15
+ require 'activerecord-postgis-array'
16
+
17
+ RSpec.configure do |config|
18
+ config.before(:suite) { ActiveRecord::Base.connection.add_extension('pg_trgm') if ActiveRecord::Base.connection.supports_extensions?}
19
+ config.use_transactional_fixtures = false
20
+ config.treat_symbols_as_metadata_keys_with_true_values = true
21
+ config.mock_with :mocha
22
+ config.backtrace_clean_patterns = [
23
+ #/\/lib\d*\/ruby\//,
24
+ #/bin\//,
25
+ #/gems/,
26
+ #/spec\/spec_helper\.rb/,
27
+ /lib\/rspec\/(core|expectations|matchers|mocks)/
28
+ ]
29
+ end
metadata ADDED
@@ -0,0 +1,318 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activerecord-postgis-array
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.3.4
6
+ platform: ruby
7
+ authors:
8
+ - Hannah Howard
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ prerelease: false
16
+ type: :runtime
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.0
23
+ name: activerecord
24
+ requirement: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ prerelease: false
32
+ type: :runtime
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 0.0.8
39
+ name: pg_array_parser
40
+ requirement: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.8
46
+ - !ruby/object:Gem::Dependency
47
+ prerelease: false
48
+ type: :runtime
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ name: activerecord-postgis-adapter
56
+ requirement: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ prerelease: false
64
+ type: :development
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 3.2.0
71
+ name: rails
72
+ requirement: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 3.2.0
78
+ - !ruby/object:Gem::Dependency
79
+ prerelease: false
80
+ type: :development
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 2.12.0
87
+ name: rspec-rails
88
+ requirement: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.12.0
94
+ - !ruby/object:Gem::Dependency
95
+ prerelease: false
96
+ type: :development
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.0
103
+ name: bourne
104
+ requirement: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.0
110
+ - !ruby/object:Gem::Dependency
111
+ prerelease: false
112
+ type: :development
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 0.13.2
119
+ name: pg
120
+ requirement: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.13.2
126
+ description: Adds missing native PostgreSQL array types to ActiveRecord
127
+ email:
128
+ - hannah@techgirlwonder.com
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - .rspec
135
+ - .travis.yml
136
+ - CHANGELOG.md
137
+ - CONTRIBUTING.md
138
+ - Gemfile
139
+ - LICENSE
140
+ - README.md
141
+ - Rakefile
142
+ - activerecord-postgis-array.gemspec
143
+ - docs/indexes.md
144
+ - docs/migrations.md
145
+ - docs/querying.md
146
+ - docs/type_casting.md
147
+ - lib/activerecord-postgis-array.rb
148
+ - lib/activerecord-postgis-array/active_record.rb
149
+ - lib/activerecord-postgis-array/active_record/connection_adapters.rb
150
+ - lib/activerecord-postgis-array/active_record/connection_adapters/postgres_adapter.rb
151
+ - lib/activerecord-postgis-array/active_record/relation.rb
152
+ - lib/activerecord-postgis-array/active_record/relation/predicate_builder.rb
153
+ - lib/activerecord-postgis-array/active_record/relation/query_methods.rb
154
+ - lib/activerecord-postgis-array/active_record/sanitization.rb
155
+ - lib/activerecord-postgis-array/active_record/schema_dumper.rb
156
+ - lib/activerecord-postgis-array/arel.rb
157
+ - lib/activerecord-postgis-array/arel/nodes.rb
158
+ - lib/activerecord-postgis-array/arel/nodes/array_nodes.rb
159
+ - lib/activerecord-postgis-array/arel/nodes/contained_within.rb
160
+ - lib/activerecord-postgis-array/arel/predications.rb
161
+ - lib/activerecord-postgis-array/arel/visitors.rb
162
+ - lib/activerecord-postgis-array/arel/visitors/to_sql.rb
163
+ - lib/activerecord-postgis-array/arel/visitors/visitor.rb
164
+ - lib/activerecord-postgis-array/version.rb
165
+ - spec/arel/arel_spec.rb
166
+ - spec/arel/array_spec.rb
167
+ - spec/columns/array_spec.rb
168
+ - spec/dummy/.gitignore
169
+ - spec/dummy/README.rdoc
170
+ - spec/dummy/Rakefile
171
+ - spec/dummy/app/assets/images/rails.png
172
+ - spec/dummy/app/assets/javascripts/application.js
173
+ - spec/dummy/app/assets/stylesheets/application.css
174
+ - spec/dummy/app/controllers/application_controller.rb
175
+ - spec/dummy/app/helpers/application_helper.rb
176
+ - spec/dummy/app/mailers/.gitkeep
177
+ - spec/dummy/app/models/.gitkeep
178
+ - spec/dummy/app/models/person.rb
179
+ - spec/dummy/app/views/layouts/application.html.erb
180
+ - spec/dummy/config.ru
181
+ - spec/dummy/config/application.rb
182
+ - spec/dummy/config/boot.rb
183
+ - spec/dummy/config/database.yml.example
184
+ - spec/dummy/config/environment.rb
185
+ - spec/dummy/config/environments/development.rb
186
+ - spec/dummy/config/environments/production.rb
187
+ - spec/dummy/config/environments/test.rb
188
+ - spec/dummy/config/initializers/backtrace_silencers.rb
189
+ - spec/dummy/config/initializers/inflections.rb
190
+ - spec/dummy/config/initializers/mime_types.rb
191
+ - spec/dummy/config/initializers/secret_token.rb
192
+ - spec/dummy/config/initializers/session_store.rb
193
+ - spec/dummy/config/initializers/wrap_parameters.rb
194
+ - spec/dummy/config/locales/en.yml
195
+ - spec/dummy/config/routes.rb
196
+ - spec/dummy/db/migrate/20120501163758_create_people.rb
197
+ - spec/dummy/db/schema.rb
198
+ - spec/dummy/db/seeds.rb
199
+ - spec/dummy/lib/assets/.gitkeep
200
+ - spec/dummy/lib/tasks/.gitkeep
201
+ - spec/dummy/log/.gitkeep
202
+ - spec/dummy/public/404.html
203
+ - spec/dummy/public/422.html
204
+ - spec/dummy/public/500.html
205
+ - spec/dummy/public/favicon.ico
206
+ - spec/dummy/public/index.html
207
+ - spec/dummy/public/robots.txt
208
+ - spec/dummy/script/rails
209
+ - spec/dummy/spec/factories/people.rb
210
+ - spec/dummy/test/fixtures/.gitkeep
211
+ - spec/dummy/test/functional/.gitkeep
212
+ - spec/dummy/test/integration/.gitkeep
213
+ - spec/dummy/test/performance/browsing_test.rb
214
+ - spec/dummy/test/test_helper.rb
215
+ - spec/dummy/test/unit/.gitkeep
216
+ - spec/dummy/vendor/assets/javascripts/.gitkeep
217
+ - spec/dummy/vendor/assets/stylesheets/.gitkeep
218
+ - spec/dummy/vendor/plugins/.gitkeep
219
+ - spec/migrations/active_record_migration_spec.rb
220
+ - spec/migrations/array_spec.rb
221
+ - spec/migrations/index_spec.rb
222
+ - spec/models/array_spec.rb
223
+ - spec/queries/array_queries_spec.rb
224
+ - spec/queries/sanity_spec.rb
225
+ - spec/schema_dumper/array_spec.rb
226
+ - spec/schema_dumper/extension_spec.rb
227
+ - spec/schema_dumper/index_spec.rb
228
+ - spec/spec_helper.rb
229
+ homepage: ''
230
+ licenses: []
231
+ post_install_message:
232
+ rdoc_options: []
233
+ require_paths:
234
+ - lib
235
+ required_ruby_version: !ruby/object:Gem::Requirement
236
+ none: false
237
+ requirements:
238
+ - - ! '>='
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ requirements: []
248
+ rubyforge_project:
249
+ rubygems_version: 1.8.24
250
+ signing_key:
251
+ specification_version: 3
252
+ summary: Extends ActiveRecord to handle native PostgreSQL array types and is compatible
253
+ with postgis
254
+ test_files:
255
+ - spec/arel/arel_spec.rb
256
+ - spec/arel/array_spec.rb
257
+ - spec/columns/array_spec.rb
258
+ - spec/dummy/.gitignore
259
+ - spec/dummy/README.rdoc
260
+ - spec/dummy/Rakefile
261
+ - spec/dummy/app/assets/images/rails.png
262
+ - spec/dummy/app/assets/javascripts/application.js
263
+ - spec/dummy/app/assets/stylesheets/application.css
264
+ - spec/dummy/app/controllers/application_controller.rb
265
+ - spec/dummy/app/helpers/application_helper.rb
266
+ - spec/dummy/app/mailers/.gitkeep
267
+ - spec/dummy/app/models/.gitkeep
268
+ - spec/dummy/app/models/person.rb
269
+ - spec/dummy/app/views/layouts/application.html.erb
270
+ - spec/dummy/config.ru
271
+ - spec/dummy/config/application.rb
272
+ - spec/dummy/config/boot.rb
273
+ - spec/dummy/config/database.yml.example
274
+ - spec/dummy/config/environment.rb
275
+ - spec/dummy/config/environments/development.rb
276
+ - spec/dummy/config/environments/production.rb
277
+ - spec/dummy/config/environments/test.rb
278
+ - spec/dummy/config/initializers/backtrace_silencers.rb
279
+ - spec/dummy/config/initializers/inflections.rb
280
+ - spec/dummy/config/initializers/mime_types.rb
281
+ - spec/dummy/config/initializers/secret_token.rb
282
+ - spec/dummy/config/initializers/session_store.rb
283
+ - spec/dummy/config/initializers/wrap_parameters.rb
284
+ - spec/dummy/config/locales/en.yml
285
+ - spec/dummy/config/routes.rb
286
+ - spec/dummy/db/migrate/20120501163758_create_people.rb
287
+ - spec/dummy/db/schema.rb
288
+ - spec/dummy/db/seeds.rb
289
+ - spec/dummy/lib/assets/.gitkeep
290
+ - spec/dummy/lib/tasks/.gitkeep
291
+ - spec/dummy/log/.gitkeep
292
+ - spec/dummy/public/404.html
293
+ - spec/dummy/public/422.html
294
+ - spec/dummy/public/500.html
295
+ - spec/dummy/public/favicon.ico
296
+ - spec/dummy/public/index.html
297
+ - spec/dummy/public/robots.txt
298
+ - spec/dummy/script/rails
299
+ - spec/dummy/spec/factories/people.rb
300
+ - spec/dummy/test/fixtures/.gitkeep
301
+ - spec/dummy/test/functional/.gitkeep
302
+ - spec/dummy/test/integration/.gitkeep
303
+ - spec/dummy/test/performance/browsing_test.rb
304
+ - spec/dummy/test/test_helper.rb
305
+ - spec/dummy/test/unit/.gitkeep
306
+ - spec/dummy/vendor/assets/javascripts/.gitkeep
307
+ - spec/dummy/vendor/assets/stylesheets/.gitkeep
308
+ - spec/dummy/vendor/plugins/.gitkeep
309
+ - spec/migrations/active_record_migration_spec.rb
310
+ - spec/migrations/array_spec.rb
311
+ - spec/migrations/index_spec.rb
312
+ - spec/models/array_spec.rb
313
+ - spec/queries/array_queries_spec.rb
314
+ - spec/queries/sanity_spec.rb
315
+ - spec/schema_dumper/array_spec.rb
316
+ - spec/schema_dumper/extension_spec.rb
317
+ - spec/schema_dumper/index_spec.rb
318
+ - spec/spec_helper.rb