activerecord-postgres-hstore 0.4.0 → 0.4.1

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.
data/Gemfile CHANGED
@@ -12,5 +12,4 @@ group :development, :test do
12
12
  gem "jeweler", "~> 1.8.3"
13
13
  gem "rdoc"
14
14
  gem "rspec"
15
- gem "rcov"
16
15
  end
data/Gemfile.lock CHANGED
@@ -1,54 +1,54 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionmailer (3.2.3)
5
- actionpack (= 3.2.3)
4
+ actionmailer (3.2.8)
5
+ actionpack (= 3.2.8)
6
6
  mail (~> 2.4.4)
7
- actionpack (3.2.3)
8
- activemodel (= 3.2.3)
9
- activesupport (= 3.2.3)
7
+ actionpack (3.2.8)
8
+ activemodel (= 3.2.8)
9
+ activesupport (= 3.2.8)
10
10
  builder (~> 3.0.0)
11
11
  erubis (~> 2.7.0)
12
- journey (~> 1.0.1)
12
+ journey (~> 1.0.4)
13
13
  rack (~> 1.4.0)
14
14
  rack-cache (~> 1.2)
15
15
  rack-test (~> 0.6.1)
16
- sprockets (~> 2.1.2)
17
- activemodel (3.2.3)
18
- activesupport (= 3.2.3)
16
+ sprockets (~> 2.1.3)
17
+ activemodel (3.2.8)
18
+ activesupport (= 3.2.8)
19
19
  builder (~> 3.0.0)
20
- activerecord (3.2.3)
21
- activemodel (= 3.2.3)
22
- activesupport (= 3.2.3)
20
+ activerecord (3.2.8)
21
+ activemodel (= 3.2.8)
22
+ activesupport (= 3.2.8)
23
23
  arel (~> 3.0.2)
24
24
  tzinfo (~> 0.3.29)
25
- activeresource (3.2.3)
26
- activemodel (= 3.2.3)
27
- activesupport (= 3.2.3)
28
- activesupport (3.2.3)
25
+ activeresource (3.2.8)
26
+ activemodel (= 3.2.8)
27
+ activesupport (= 3.2.8)
28
+ activesupport (3.2.8)
29
29
  i18n (~> 0.6)
30
30
  multi_json (~> 1.0)
31
31
  arel (3.0.2)
32
- builder (3.0.0)
32
+ builder (3.0.3)
33
33
  diff-lcs (1.1.3)
34
34
  erubis (2.7.0)
35
35
  git (1.2.5)
36
36
  hike (1.2.1)
37
- i18n (0.6.0)
38
- jeweler (1.8.3)
37
+ i18n (0.6.1)
38
+ jeweler (1.8.4)
39
39
  bundler (~> 1.0)
40
40
  git (>= 1.2.5)
41
41
  rake
42
42
  rdoc
43
- journey (1.0.3)
44
- json (1.7.3)
43
+ journey (1.0.4)
44
+ json (1.7.5)
45
45
  mail (2.4.4)
46
46
  i18n (>= 0.4.0)
47
47
  mime-types (~> 1.16)
48
48
  treetop (~> 1.4.8)
49
- mime-types (1.18)
50
- multi_json (1.3.5)
51
- pg (0.13.2)
49
+ mime-types (1.19)
50
+ multi_json (1.3.6)
51
+ pg (0.14.1)
52
52
  polyglot (0.3.3)
53
53
  rack (1.4.1)
54
54
  rack-cache (1.2)
@@ -57,43 +57,43 @@ GEM
57
57
  rack
58
58
  rack-test (0.6.1)
59
59
  rack (>= 1.0)
60
- rails (3.2.3)
61
- actionmailer (= 3.2.3)
62
- actionpack (= 3.2.3)
63
- activerecord (= 3.2.3)
64
- activeresource (= 3.2.3)
65
- activesupport (= 3.2.3)
60
+ rails (3.2.8)
61
+ actionmailer (= 3.2.8)
62
+ actionpack (= 3.2.8)
63
+ activerecord (= 3.2.8)
64
+ activeresource (= 3.2.8)
65
+ activesupport (= 3.2.8)
66
66
  bundler (~> 1.0)
67
- railties (= 3.2.3)
68
- railties (3.2.3)
69
- actionpack (= 3.2.3)
70
- activesupport (= 3.2.3)
67
+ railties (= 3.2.8)
68
+ railties (3.2.8)
69
+ actionpack (= 3.2.8)
70
+ activesupport (= 3.2.8)
71
71
  rack-ssl (~> 1.3.2)
72
72
  rake (>= 0.8.7)
73
73
  rdoc (~> 3.4)
74
- thor (~> 0.14.6)
74
+ thor (>= 0.14.6, < 2.0)
75
75
  rake (0.9.2.2)
76
- rcov (0.9.11)
77
76
  rdoc (3.12)
78
77
  json (~> 1.4)
79
- rspec (2.10.0)
80
- rspec-core (~> 2.10.0)
81
- rspec-expectations (~> 2.10.0)
82
- rspec-mocks (~> 2.10.0)
83
- rspec-core (2.10.1)
84
- rspec-expectations (2.10.0)
78
+ rspec (2.11.0)
79
+ rspec-core (~> 2.11.0)
80
+ rspec-expectations (~> 2.11.0)
81
+ rspec-mocks (~> 2.11.0)
82
+ rspec-core (2.11.1)
83
+ rspec-expectations (2.11.3)
85
84
  diff-lcs (~> 1.1.3)
86
- rspec-mocks (2.10.1)
87
- shoulda (3.0.1)
88
- shoulda-context (~> 1.0.0)
89
- shoulda-matchers (~> 1.0.0)
85
+ rspec-mocks (2.11.2)
86
+ shoulda (3.1.1)
87
+ shoulda-context (~> 1.0)
88
+ shoulda-matchers (~> 1.2)
90
89
  shoulda-context (1.0.0)
91
- shoulda-matchers (1.0.0)
90
+ shoulda-matchers (1.3.0)
91
+ activesupport (>= 3.0.0)
92
92
  sprockets (2.1.3)
93
93
  hike (~> 1.2)
94
94
  rack (~> 1.0)
95
95
  tilt (~> 1.1, != 1.3.0)
96
- thor (0.14.6)
96
+ thor (0.16.0)
97
97
  tilt (1.3.3)
98
98
  treetop (1.4.10)
99
99
  polyglot
@@ -109,7 +109,6 @@ DEPENDENCIES
109
109
  pg
110
110
  rails
111
111
  rake
112
- rcov
113
112
  rdoc
114
113
  rspec
115
114
  shoulda
data/README.md CHANGED
@@ -13,22 +13,22 @@ Requirements
13
13
  ------------
14
14
 
15
15
  Postgresql 8.4+ (also tested with 9.0) with contrib and Rails 3. (It
16
- might work on 2.3.x with minor patches…)
16
+ might work on 2.3.x with minor patches…)
17
17
  On Ubuntu, this is easy: `sudo apt-get install postgresql-contrib-9.0`
18
18
 
19
- On Mac <del> …you are screwed. Use a VM. </del> you should use [the binary package kindly provided by EnterpriseDB](http://www.enterprisedb.com/products-services-training/pgdownload#osx)
19
+ On Mac <del> …you are screwed. Use a VM. </del> you should use [the binary package kindly provided by EnterpriseDB](http://www.enterprisedb.com/products-services-training/pgdownload#osx)
20
20
  [Homebrew’s](https://github.com/mxcl/homebrew) Postgres installation also includes the contrib packages: `brew install postgres`
21
21
 
22
22
  Notes for Rails 3.1 and above
23
23
  -----------------------------
24
24
 
25
- The master branch already support a custom serialization coder.
25
+ The master branch already support a custom serialization coder.
26
26
  If you want to use it just put in your Gemfile:
27
27
 
28
28
  gem 'activerecord-postgres-hstore', git: 'git://github.com/softa/activerecord-postgres-hstore.git'
29
29
 
30
30
  If you install them gem from the master branch you also have to insert a
31
- line in each model that uses hstore.
31
+ line in each model that uses hstore.
32
32
  Assuming a model called **Person**, with a **data** field on it, the
33
33
  code should look like:
34
34
 
@@ -63,7 +63,7 @@ e.g.:
63
63
  database: hstorage_dev
64
64
  encoding: unicode
65
65
  username: postgres
66
- password:
66
+ password:
67
67
  pool: 5
68
68
 
69
69
  Now you need to create a migration that adds hstore support for your
@@ -80,11 +80,11 @@ Finally you can create your own tables using hstore type. It’s easy:
80
80
  rails g model Person name:string data:hstore
81
81
  rake db:migrate
82
82
 
83
- You’re done.
83
+ You’re done.
84
84
  Well, not yet. Don’t forget to add indexes. Like this:
85
85
 
86
- `CREATE INDEX people_gist_data ON people USING GIST(data);`
87
- or
86
+ `CREATE INDEX people_gist_data ON people USING GIST(data);`
87
+ or
88
88
  `CREATE INDEX people_gin_data ON people USING GIN(data);`
89
89
 
90
90
  To understand the difference between the two types of indexes take a
@@ -94,7 +94,7 @@ Usage
94
94
  -----
95
95
 
96
96
  Once you have it installed, you just need to learn a little bit of new
97
- sqls for selecting stuff (creating and updating is transparent).
97
+ sqls for selecting stuff (creating and updating is transparent).
98
98
  Find records that contains a key named 'foo’:
99
99
 
100
100
  Person.where("data ? 'foo'")
@@ -106,10 +106,10 @@ Find records where 'foo’ is equal to 'bar’:
106
106
  This same sql is at least twice as fast (using indexes) if you do it
107
107
  that way:
108
108
 
109
- Person.where("data > 'foo=>bar")
110
-
109
+ Person.where("data @> 'foo=>bar'")
110
+
111
111
  Find records where 'foo’ is not equal to 'bar’:
112
-
112
+
113
113
  Person.where("data -> 'foo' <> 'bar'")
114
114
 
115
115
  Find records where 'foo’ is like 'bar’:
@@ -128,7 +128,7 @@ The destroy\_key method returns 'self’, so you can chain it:
128
128
 
129
129
  person.destroy_key(:data, :foo).destroy_key(:data, :bar).save
130
130
 
131
- But there is a shortcuts for that:
131
+ But there is a shortcuts for that:
132
132
 
133
133
  person.destroy_keys(:data, :foo, :bar)
134
134
 
@@ -140,6 +140,20 @@ and with many keys:
140
140
 
141
141
  Person.delete_keys(:data, :foo, :bar)
142
142
 
143
+ Caveats
144
+ -------
145
+
146
+ hstore keys and values have to be strings. This means `true` will become `"true"` and `42` will become `"42"` after you save the record. Only `nil` values are preserved.
147
+
148
+ It is also confusing when querying:
149
+
150
+ Person.where("data -> 'foo' = :value", value: true).to_sql
151
+ #=> SELECT "people".* FROM "people" WHERE ("data -> 'foo' = 't'") # notice 't'
152
+
153
+ To avoid the above, make sure all named parameters are strings:
154
+
155
+ Person.where("data -> 'foo' = :value", value: some_var.to_s)
156
+
143
157
  Have fun.
144
158
 
145
159
  Help
@@ -151,10 +165,10 @@ twitter: [@dbiazus](https://twitter.com/#!/dbiazus) or [@joaomilho](https://twit
151
165
  Note on Patches/Pull Requests
152
166
  -----------------------------
153
167
 
154
- * Fork the project.
155
- * Make your feature addition or bug fix.
156
- * Add tests for it. This is important so I don’t break it in a future version unintentionally.
157
- * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
168
+ * Fork the project.
169
+ * Make your feature addition or bug fix.
170
+ * Add tests for it. This is important so I don’t break it in a future version unintentionally.
171
+ * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
158
172
  * Send me a pull request. Bonus points for topic branches.
159
173
 
160
174
  Copyright
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.4.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "activerecord-postgres-hstore"
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Juan Maiz", "Diogo Biazus"]
12
- s.date = "2012-06-14"
12
+ s.date = "2012-09-14"
13
13
  s.description = "This gem adds support for the postgres hstore type. It is the _just right_ alternative for storing hashes instead of using seralization or dynamic tables."
14
14
  s.email = "juanmaiz@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -110,7 +110,6 @@ Gem::Specification.new do |s|
110
110
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
111
111
  s.add_development_dependency(%q<rdoc>, [">= 0"])
112
112
  s.add_development_dependency(%q<rspec>, [">= 0"])
113
- s.add_development_dependency(%q<rcov>, [">= 0"])
114
113
  else
115
114
  s.add_dependency(%q<rails>, [">= 0"])
116
115
  s.add_dependency(%q<rake>, [">= 0"])
@@ -120,7 +119,6 @@ Gem::Specification.new do |s|
120
119
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
121
120
  s.add_dependency(%q<rdoc>, [">= 0"])
122
121
  s.add_dependency(%q<rspec>, [">= 0"])
123
- s.add_dependency(%q<rcov>, [">= 0"])
124
122
  end
125
123
  else
126
124
  s.add_dependency(%q<rails>, [">= 0"])
@@ -131,7 +129,6 @@ Gem::Specification.new do |s|
131
129
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
132
130
  s.add_dependency(%q<rdoc>, [">= 0"])
133
131
  s.add_dependency(%q<rspec>, [">= 0"])
134
- s.add_dependency(%q<rcov>, [">= 0"])
135
132
  end
136
133
  end
137
134
 
@@ -66,7 +66,7 @@ module ActiveRecord
66
66
  destroy_keys(attribute, *keys).save
67
67
  end
68
68
 
69
- if Rails.version < '3.1.0'
69
+ if defined?(Rails) && Rails.version < '3.1.0'
70
70
  # This method is replaced for Rails 3 compatibility.
71
71
  # All I do is add the condition when the field is a hash that converts the value
72
72
  # to hstore format.
@@ -117,6 +117,22 @@ module ActiveRecord
117
117
 
118
118
  end
119
119
 
120
+ class Table
121
+
122
+ # Adds hstore type for migrations. So you can add columns to a table like:
123
+ # change_table :people do |t|
124
+ # ...
125
+ # t.hstore :info
126
+ # ...
127
+ # end
128
+ def hstore(*args)
129
+ options = args.extract_options!
130
+ column_names = args
131
+ column_names.each { |name| column(name, 'hstore', options) }
132
+ end
133
+
134
+ end
135
+
120
136
  class PostgreSQLColumn < Column
121
137
  # Does the type casting from hstore columns using String#from_hstore or Hash#from_hstore.
122
138
  def type_cast_code_with_hstore(var_name)
@@ -127,7 +143,7 @@ module ActiveRecord
127
143
  def simplified_type_with_hstore(field_type)
128
144
  field_type == 'hstore' ? :hstore : simplified_type_without_hstore(field_type)
129
145
  end
130
-
146
+
131
147
  alias_method_chain :type_cast_code, :hstore
132
148
  alias_method_chain :simplified_type, :hstore
133
149
  end
@@ -140,14 +156,14 @@ module ActiveRecord
140
156
  # Quotes correctly a hstore column value.
141
157
  def quote_with_hstore(value, column = nil)
142
158
  if value && column && column.sql_type == 'hstore'
143
- raise HstoreTypeMismatch, "#{column.name} must have a Hash or a valid hstore value (#{value})" unless value.kind_of?(Hash) || value.valid_hstore?
159
+ raise HstoreTypeMismatch, "#{column.name} must have a Hash or a valid hstore value (#{value})" unless value.kind_of?(Hash) || value.valid_hstore?
144
160
  return quote_without_hstore(value.to_hstore, column)
145
161
  end
146
162
  quote_without_hstore(value,column)
147
163
  end
148
-
164
+
149
165
  alias_method_chain :quote, :hstore
150
- alias_method_chain :native_database_types, :hstore
166
+ alias_method_chain :native_database_types, :hstore
151
167
  end
152
168
  end
153
169
  end
@@ -1,24 +1,34 @@
1
1
  class Hash
2
+ HSTORE_ESCAPED = /[,\s=>\\]/
3
+
4
+ # Escapes values such that they will work in an hstore string
5
+ def hstore_escape(str)
6
+ if str.nil?
7
+ return 'NULL'
8
+ end
9
+
10
+ str = str.to_s.dup
11
+ # backslash is an escape character for strings, and an escape character for gsub, so you need 6 backslashes to get 2 in the output.
12
+ # see http://stackoverflow.com/questions/1542214/weird-backslash-substitution-in-ruby for the gory details
13
+ str.gsub!(/\\/, '\\\\\\')
14
+ # escape backslashes before injecting more backslashes
15
+ str.gsub!(/"/, '\"')
16
+
17
+ if str =~ HSTORE_ESCAPED or str.empty?
18
+ str = '"%s"' % str
19
+ end
20
+
21
+ return str
22
+ end
2
23
 
3
24
  # Generates an hstore string format. This is the format used
4
25
  # to insert or update stuff in the database.
5
26
  def to_hstore
6
27
  return "" if empty?
7
28
 
8
- map { |idx, val|
9
- iv = [idx,val].map { |_|
10
- e = _.to_s.gsub(/"/, '\"')
11
- if _.nil?
12
- 'NULL'
13
- elsif e =~ /[,\s=>]/ || e.blank?
14
- '"%s"' % e
15
- else
16
- e
17
- end
18
- }
19
-
20
- "%s=>%s" % iv
21
- } * ","
29
+ map do |idx, val|
30
+ "%s=>%s" % [hstore_escape(idx), hstore_escape(val)]
31
+ end * ","
22
32
  end
23
33
 
24
34
  # If the method from_hstore is called in a Hash, it just returns self.
@@ -24,7 +24,7 @@ class String
24
24
  [k,v].map { |t|
25
25
  case t
26
26
  when nil then t
27
- when /^"(.*)"$/ then $1.gsub(/\\(.)/, '\1')
27
+ when /\A"(.*)"\Z/m then $1.gsub(/\\(.)/, '\1')
28
28
  else t.gsub(/\\(.)/, '\1')
29
29
  end
30
30
  }
@@ -63,13 +63,29 @@ describe "ActiverecordPostgresHstore" do
63
63
  end
64
64
 
65
65
  it "should quote keys and values correctly with combinations of single and double quotes" do
66
- { %q("a') => %q(b "a' b) }.to_hstore.should eq(%q(\"a'=>"b \"a' b"))
66
+ { %q("a') => %q(b "a' b) }.to_hstore.should eq(%q("\"a'"=>"b \"a' b"))
67
67
  end
68
68
 
69
69
  it "should unquote keys and values correctly with combinations of single and double quotes" do
70
70
  %q("\"a'"=>"b \"a' b").from_hstore.should eq({%q("a') => %q(b "a' b)})
71
71
  end
72
72
 
73
+ it "should quote keys and values correctly with backslashes" do
74
+ { %q(\\) => %q(\\) }.to_hstore.should eq(%q("\\\\"=>"\\\\"))
75
+ end
76
+
77
+ it "should unquote keys and values correctly with backslashes" do
78
+ %q("\\\\"=>"\\\\").from_hstore.should eq({ %q(\\) => %q(\\) })
79
+ end
80
+
81
+ it "should quote keys and values correctly with combinations of backslashes and quotes" do
82
+ { %q(' \\ ") => %q(" \\ ') }.to_hstore.should eq(%q("' \\\\ \""=>"\" \\\\ '"))
83
+ end
84
+
85
+ it "should unquote keys and values correctly with combinations of backslashes and quotes" do
86
+ %q("' \\\\ \""=>"\" \\\\ '").from_hstore.should eq({ %q(' \\ ") => %q(" \\ ') })
87
+ end
88
+
73
89
  it "should convert empty hash" do
74
90
  {}.to_hstore.should eq("")
75
91
  end
@@ -78,5 +94,11 @@ describe "ActiverecordPostgresHstore" do
78
94
  ''.from_hstore.should eq({})
79
95
  ' '.from_hstore.should eq({})
80
96
  end
97
+
98
+ it "should not change values with line breaks" do
99
+ input = { "a" => "foo\n\nbar" }
100
+ output = input.to_hstore
101
+ output.from_hstore.should eq(input)
102
+ end
81
103
 
82
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-postgres-hstore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-14 00:00:00.000000000Z
13
+ date: 2012-09-14 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2159228940 !ruby/object:Gem::Requirement
17
+ requirement: &2157171100 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2159228940
25
+ version_requirements: *2157171100
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &2159228300 !ruby/object:Gem::Requirement
28
+ requirement: &2157170000 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2159228300
36
+ version_requirements: *2157170000
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: pg
39
- requirement: &2159227720 !ruby/object:Gem::Requirement
39
+ requirement: &2157169120 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2159227720
47
+ version_requirements: *2157169120
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: shoulda
50
- requirement: &2159227100 !ruby/object:Gem::Requirement
50
+ requirement: &2157168140 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2159227100
58
+ version_requirements: *2157168140
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: bundler
61
- requirement: &2159226380 !ruby/object:Gem::Requirement
61
+ requirement: &2157166860 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 1.1.3
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2159226380
69
+ version_requirements: *2157166860
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: jeweler
72
- requirement: &2159225720 !ruby/object:Gem::Requirement
72
+ requirement: &2157165660 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 1.8.3
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2159225720
80
+ version_requirements: *2157165660
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rdoc
83
- requirement: &2159224880 !ruby/object:Gem::Requirement
83
+ requirement: &2157164420 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2159224880
91
+ version_requirements: *2157164420
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rspec
94
- requirement: &2159223860 !ruby/object:Gem::Requirement
94
+ requirement: &2157163540 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,18 +99,7 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2159223860
103
- - !ruby/object:Gem::Dependency
104
- name: rcov
105
- requirement: &2159223260 !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :development
112
- prerelease: false
113
- version_requirements: *2159223260
102
+ version_requirements: *2157163540
114
103
  description: This gem adds support for the postgres hstore type. It is the _just right_
115
104
  alternative for storing hashes instead of using seralization or dynamic tables.
116
105
  email: juanmaiz@gmail.com
@@ -209,7 +198,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
198
  version: '0'
210
199
  segments:
211
200
  - 0
212
- hash: -2838359693870553945
201
+ hash: 3203326444745733758
213
202
  required_rubygems_version: !ruby/object:Gem::Requirement
214
203
  none: false
215
204
  requirements: