active_record_hstore_serializer 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ Enable Postgres HStore column serialization for your ActiveRecord / Rails 3.1+ project.
2
+
3
+ Huge thanks and credit to https://github.com/softa/activerecord-postgres-hstore for code and inspiration.
4
+
5
+
6
+ Example
7
+ -------
8
+
9
+ ```ruby
10
+
11
+ class Car < ActiveRecord::Base
12
+ serialize :data, HstoreSerializer
13
+ end
14
+
15
+ toyota = Car.create(:data => {:doors => 2, :color => "grey"})
16
+
17
+ # Finding. Notice that all values get stored as strings, hence the typecasting
18
+ Car.where(["data -> 'doors' = ?", "2"])
19
+
20
+ # Updating / Inserting
21
+ car.data['make'] = "Toyota"
22
+ car.save
23
+ ```
24
+
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'active_record_hstore_serializer'
3
- s.version = '0.0.2'
3
+ s.version = '0.0.3'
4
4
  s.date = '2011-11-19'
5
5
  s.summary = "Serialize attributes using HStore in ActiveRecord / Rails 3.1+"
6
6
  s.description = "Leverage Postgres HStore for awesome attribute serialization."
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.files = [
12
12
  ".gitignore",
13
13
  "LICENSE",
14
- "README",
14
+ "README.md",
15
15
  "lib/active_record_hstore_serializer.rb",
16
16
  "lib/active_record_hstore_serializer/hash.rb",
17
17
  "lib/active_record_hstore_serializer/string.rb",
@@ -2,7 +2,21 @@ class Hash
2
2
 
3
3
  def to_hstore
4
4
  return "" if empty?
5
- map {|idx, val| %Q{"#{idx.to_s}"=>"#{val.to_s}"} }.join(', ')
5
+
6
+ map { |idx, val|
7
+ iv = [idx,val].map { |_|
8
+ e = _.to_s.gsub(/"/, '\"')
9
+ if _.nil?
10
+ 'NULL'
11
+ elsif e =~ /[,\s=>]/ || e.blank?
12
+ '"%s"' % e
13
+ else
14
+ e
15
+ end
16
+ }
17
+
18
+ "%s=>%s" % iv
19
+ } * ","
6
20
  end
7
21
 
8
22
  # If the method from_hstore is called in a Hash, it just returns self.
metadata CHANGED
@@ -1,52 +1,69 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: active_record_hstore_serializer
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 3
9
+ version: 0.0.3
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Cody Caughlan
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2011-11-19 00:00:00.000000000Z
16
+
17
+ date: 2011-11-19 00:00:00 -08:00
18
+ default_executable:
13
19
  dependencies: []
20
+
14
21
  description: Leverage Postgres HStore for awesome attribute serialization.
15
22
  email: toolbag@gmail.com
16
23
  executables: []
24
+
17
25
  extensions: []
26
+
18
27
  extra_rdoc_files: []
19
- files:
28
+
29
+ files:
20
30
  - .gitignore
21
31
  - LICENSE
22
- - README
32
+ - README.md
23
33
  - lib/active_record_hstore_serializer.rb
24
34
  - lib/active_record_hstore_serializer/hash.rb
25
35
  - lib/active_record_hstore_serializer/string.rb
26
36
  - lib/active_record_hstore_serializer/hstore_serializer.rb
27
37
  - active_record_hstore_serializer.gemspec
38
+ has_rdoc: true
28
39
  homepage: https://github.com/ruckus/active_record_hstore_serializer
29
40
  licenses: []
41
+
30
42
  post_install_message:
31
43
  rdoc_options: []
32
- require_paths:
44
+
45
+ require_paths:
33
46
  - lib
34
- required_ruby_version: !ruby/object:Gem::Requirement
35
- none: false
36
- requirements:
37
- - - ! '>='
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- required_rubygems_version: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
46
61
  requirements: []
62
+
47
63
  rubyforge_project:
48
- rubygems_version: 1.8.6
64
+ rubygems_version: 1.3.6
49
65
  signing_key:
50
66
  specification_version: 3
51
67
  summary: Serialize attributes using HStore in ActiveRecord / Rails 3.1+
52
68
  test_files: []
69
+
data/README DELETED
@@ -1 +0,0 @@
1
- Enable Postgres HStore column serialization for your ActiveRecord / Rails 3.1+ project