activerecord-postgres-array 0.0.9 → 0.0.10

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a860a4d54f9d5febfcc864a4d7fe965de6c13b4d
4
+ data.tar.gz: 503165e36ada67ee90c575e9642ba587c4c5e8cb
5
+ SHA512:
6
+ metadata.gz: 01e3a6a9a25ff02726fd7cf276cb41adf56b947deed4e30b17c9f66e7e2fb195588331c6c2ecd1033ccf109636c1656a712e697f148486b735b3e09aefc87b68
7
+ data.tar.gz: 8093e677b770e336faab41ea194b2d3d251fff4bcd9f22dc55a51ecd8724291b8bf0367ae8085284656c9ed0d34107c9379372ce5630009a3ef47711d31d088b
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "activerecord-postgres-array"
3
- s.version = "0.0.9"
3
+ s.version = "0.0.10"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Tim Connor"]
@@ -15,7 +15,8 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_dependency "activerecord"
17
17
  s.add_development_dependency 'rake'
18
- s.add_development_dependency 'rspec', '~> 2.0'
18
+ s.add_development_dependency 'rspec', '~> 2.12.0'
19
19
  s.add_development_dependency 'pg'
20
+ s.add_development_dependency 'activerecord-postgres-hstore'
20
21
  s.add_development_dependency 'combustion', '~> 0.3.1'
21
22
  end
@@ -15,7 +15,7 @@ module ActiveRecord
15
15
  if include_readonly_attributes || !self.class.readonly_attributes.include?(name)
16
16
  value = read_attribute(name)
17
17
  if column.type.to_s =~ /_array$/ && value && value.is_a?(Array)
18
- value = value.to_postgres_array(new_record?)
18
+ value = "'#{value.to_postgres_array(new_record?)}'"
19
19
  elsif klass.serialized_attributes.include?(name)
20
20
  value = @attributes[name].serialized_value
21
21
  end
@@ -38,6 +38,37 @@ describe Article do
38
38
  article.languages_before_type_cast.should == '{"\\\\","\\""}'
39
39
  article.languages.should == ["\\","\""]
40
40
  end
41
+
42
+ it 'does not interfere with YAML serialization' do
43
+ article = Article.create!(
44
+ :languages => ['a','b'],
45
+ :author_ids => [1, 2, 3],
46
+ :prices => [1.1, 2.2, 3.3],
47
+ :serialized_column => {:a => 1, :b => 2}
48
+ )
49
+ article.reload
50
+
51
+ article.serialized_column.should == {:a => 1, :b => 2}
52
+ article.languages.should == ['a', 'b']
53
+ article.author_ids.should == [1, 2, 3]
54
+ article.prices.should == [1.1, 2.2, 3.3]
55
+ end
56
+
57
+ it 'does not interfere with hstore serialization' do
58
+ article = Article.create!(
59
+ :languages => ['a','b'],
60
+ :author_ids => [1, 2, 3],
61
+ :prices => [1.1, 2.2, 3.3],
62
+ :hstore_column => {:a => 1, :b => 2}
63
+ )
64
+ article.reload
65
+
66
+ article.hstore_column['a'].to_s.should == '1'
67
+ article.hstore_column['b'].to_s.should == '2'
68
+ article.languages.should == ['a', 'b']
69
+ article.author_ids.should == [1, 2, 3]
70
+ article.prices.should == [1.1, 2.2, 3.3]
71
+ end
41
72
  end
42
73
 
43
74
  describe ".update" do
@@ -87,6 +118,18 @@ describe Article do
87
118
  @article.languages_before_type_cast.should == '{"\\\\","\\""}'
88
119
  @article.languages.should == ["\\","\""]
89
120
  end
90
- end
91
121
 
122
+ it 'is able to be contatenated with new arrays' do
123
+ article = Article.new
124
+ article.languages = (article.languages || []) + ['a', 'b', 'c']
125
+ article.save!
126
+ article.reload
127
+ article.languages.should == ['a', 'b', 'c']
128
+
129
+ article.languages += ['d']
130
+ article.save!
131
+ article.reload
132
+ article.languages.should == ['a', 'b', 'c', 'd']
133
+ end
134
+ end
92
135
  end
@@ -1,2 +1,4 @@
1
1
  class Article < ActiveRecord::Base
2
+ serialize :serialized_column
3
+ serialize :hstore_column, ActiveRecord::Coders::Hstore
2
4
  end
@@ -1,8 +1,17 @@
1
1
  ActiveRecord::Schema.define do
2
+ execute "CREATE EXTENSION hstore"
3
+
2
4
  create_table(:articles, :force => true) do |t|
3
5
  t.string :name
4
6
  t.string_array :languages
5
7
  t.integer_array :author_ids
6
8
  t.float_array :prices
9
+
10
+ # To make sure we don't interfere with YAML serialization
11
+ t.string :serialized_column
12
+
13
+ # To make sure we don't interfere with activerecord-postgres-hstore
14
+ t.hstore :hstore_column
7
15
  end
16
+ add_hstore_index :articles, :hstore_column
8
17
  end
metadata CHANGED
@@ -1,104 +1,105 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: activerecord-postgres-array
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 9
10
- version: 0.0.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.10
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Tim Connor
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-02-08 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2012-02-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: activerecord
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
32
20
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rake
36
21
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
46
34
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: rspec
50
35
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
54
45
  - - ~>
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 2
59
- - 0
60
- version: "2.0"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.12.0
61
48
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.12.0
55
+ - !ruby/object:Gem::Dependency
64
56
  name: pg
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
65
63
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activerecord-postgres-hstore
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
75
76
  type: :development
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
78
- name: combustion
79
77
  prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: combustion
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
83
87
  - - ~>
84
- - !ruby/object:Gem::Version
85
- hash: 17
86
- segments:
87
- - 0
88
- - 3
89
- - 1
88
+ - !ruby/object:Gem::Version
90
89
  version: 0.3.1
91
90
  type: :development
92
- version_requirements: *id005
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 0.3.1
93
97
  description: Adds support for postgres arrays to ActiveRecord
94
98
  email: tlconnor@gmail.com
95
99
  executables: []
96
-
97
100
  extensions: []
98
-
99
101
  extra_rdoc_files: []
100
-
101
- files:
102
+ files:
102
103
  - Gemfile
103
104
  - LICENSE
104
105
  - Rakefile
@@ -116,36 +117,25 @@ files:
116
117
  - spec/string_ext_spec.rb
117
118
  homepage: https://github.com/tlconnor/activerecord-postgres-array
118
119
  licenses: []
119
-
120
+ metadata: {}
120
121
  post_install_message:
121
122
  rdoc_options: []
122
-
123
- require_paths:
123
+ require_paths:
124
124
  - lib
125
- required_ruby_version: !ruby/object:Gem::Requirement
126
- none: false
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- hash: 3
131
- segments:
132
- - 0
133
- version: "0"
134
- required_rubygems_version: !ruby/object:Gem::Requirement
135
- none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 3
140
- segments:
141
- - 0
142
- version: "0"
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
143
135
  requirements: []
144
-
145
136
  rubyforge_project:
146
- rubygems_version: 1.8.15
137
+ rubygems_version: 2.0.2
147
138
  signing_key:
148
- specification_version: 3
139
+ specification_version: 4
149
140
  summary: Adds support for postgres arrays to ActiveRecord
150
141
  test_files: []
151
-