ar_serialized_array 0.1.1 → 0.1.2

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.
@@ -7,34 +7,44 @@ Serialize an array in one column.
7
7
 
8
8
  Install
9
9
  =======
10
- - As Rails plugin: `script/plugin install git://github.com/grosser/ar_serialized_array.git `
10
+ - As Rails plugin: `rails plugin install git://github.com/grosser/ar_serialized_array.git `
11
11
  - As gem: ` sudo gem install ar_serialized_array `
12
12
 
13
13
 
14
14
  Usage
15
15
  =====
16
16
 
17
+ # basic / forms
17
18
  class User < ActiveRecord::Base
18
- serialized_array :product_ids, :accessor => :product_ids_as_text, :on_set=>lambda{|x| x.map(&:to_i).uniq }
19
+ serialized_array :product_ids, :accessor => :product_ids_as_text
19
20
  end
20
21
 
22
+ <%= form_for @user do |f| %>
23
+ <%= f.text_field :product_ids_as_text %>
24
+ <% end %>
25
+
26
+ # set / get
21
27
  User.new.product_ids # []
22
28
 
23
29
  user.product_ids_as_text = "1, , 12323 , 23, 1"
24
30
  user.product_ids # [1, 12323, 23]
25
31
  user.product_ids_as_text # "1, 12323, 23"
26
32
 
27
- f.text_area :product_ids_as_text
28
-
33
+ # find ...
29
34
  filled = User.all(:conditions => {:product_ids=>[1,3].to_yaml})
30
35
  empty = User.all(:conditions => {:product_ids=>nil})
31
36
 
37
+ # with cleanup (unique integers)
38
+ class User < ActiveRecord::Base
39
+ serialized_array :product_ids, :on_set=>lambda{|x| x.map(&:to_i).uniq }
40
+ end
41
+
32
42
  TODO
33
43
  ====
34
44
  - add support for `user.product_ids << 1`
35
45
 
36
46
  Author
37
47
  ======
38
- [Michael Grosser](http://pragmatig.wordpress.com)
39
- grosser.michael@gmail.com
48
+ [Michael Grosser](http://grosser.it)
49
+ michael@grosser.it
40
50
  Hereby placed under public domain, do what you want, just do not hold me accountable...
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -1,46 +1,41 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ar_serialized_array}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2009-12-13}
12
+ s.date = %q{2011-01-17}
13
13
  s.email = %q{grosser.michael@gmail.com}
14
- s.extra_rdoc_files = [
15
- "README.markdown"
16
- ]
17
14
  s.files = [
18
- "README.markdown",
19
- "Rakefile",
20
- "VERSION",
21
- "ar_serialized_array.gemspec",
22
- "init.rb",
23
- "lib/ar_serialized_array.rb",
24
- "spec/ar_serialized_array_spec.rb",
25
- "spec/setup_test_model.rb",
26
- "spec/spec_helper.rb"
15
+ "Rakefile",
16
+ "Readme.md",
17
+ "VERSION",
18
+ "ar_serialized_array.gemspec",
19
+ "init.rb",
20
+ "lib/ar_serialized_array.rb",
21
+ "spec/ar_serialized_array_spec.rb",
22
+ "spec/setup_test_model.rb",
23
+ "spec/spec_helper.rb"
27
24
  ]
28
25
  s.homepage = %q{http://github.com/grosser/ar_serialized_array}
29
- s.rdoc_options = ["--charset=UTF-8"]
30
26
  s.require_paths = ["lib"]
31
- s.rubygems_version = %q{1.3.5}
27
+ s.rubygems_version = %q{1.4.2}
32
28
  s.summary = %q{Serialize an array in a column, [] when no set, xx_as_text accessors and more.}
33
29
  s.test_files = [
34
- "spec/spec_helper.rb",
35
- "spec/setup_test_model.rb",
36
- "spec/ar_serialized_array_spec.rb"
30
+ "spec/ar_serialized_array_spec.rb",
31
+ "spec/setup_test_model.rb",
32
+ "spec/spec_helper.rb"
37
33
  ]
38
34
 
39
35
  if s.respond_to? :specification_version then
40
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
36
  s.specification_version = 3
42
37
 
43
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
38
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
39
  s.add_runtime_dependency(%q<activerecord>, [">= 0"])
45
40
  else
46
41
  s.add_dependency(%q<activerecord>, [">= 0"])
@@ -21,6 +21,11 @@ describe 'ar_serialized_array' do
21
21
  UserPlain.find(user.id).product_ids.should == []
22
22
  end
23
23
 
24
+ it "stores nil when nil is saved" do
25
+ user = UserPlain.create!(:product_ids => nil)
26
+ UserPlain.first(:conditions => {:id => user.id, :product_ids => nil}).should == user
27
+ end
28
+
24
29
  it "stores empty arrays as NULL" do
25
30
  user = UserPlain.create!(:product_ids => [])
26
31
  UserPlain.first(:conditions => {:id => user.id, :product_ids => nil}).should == user
@@ -1,10 +1,8 @@
1
1
  # connect
2
- ActiveRecord::Base.configurations = {"test" => {
2
+ ActiveRecord::Base.establish_connection(
3
3
  :adapter => "sqlite3",
4
- :database => ":memory:",
5
- }.with_indifferent_access}
6
-
7
- ActiveRecord::Base.establish_connection(:test)
4
+ :database => ":memory:"
5
+ )
8
6
 
9
7
  # create tables
10
8
  ActiveRecord::Schema.define(:version => 1) do
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_serialized_array
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ hash: 31
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 2
10
+ version: 0.1.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Michael Grosser
@@ -9,30 +15,34 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-12-13 00:00:00 +01:00
18
+ date: 2011-01-17 00:00:00 +01:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: activerecord
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  description:
26
36
  email: grosser.michael@gmail.com
27
37
  executables: []
28
38
 
29
39
  extensions: []
30
40
 
31
- extra_rdoc_files:
32
- - README.markdown
41
+ extra_rdoc_files: []
42
+
33
43
  files:
34
- - README.markdown
35
44
  - Rakefile
45
+ - Readme.md
36
46
  - VERSION
37
47
  - ar_serialized_array.gemspec
38
48
  - init.rb
@@ -45,30 +55,36 @@ homepage: http://github.com/grosser/ar_serialized_array
45
55
  licenses: []
46
56
 
47
57
  post_install_message:
48
- rdoc_options:
49
- - --charset=UTF-8
58
+ rdoc_options: []
59
+
50
60
  require_paths:
51
61
  - lib
52
62
  required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
53
64
  requirements:
54
65
  - - ">="
55
66
  - !ruby/object:Gem::Version
67
+ hash: 3
68
+ segments:
69
+ - 0
56
70
  version: "0"
57
- version:
58
71
  required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
59
73
  requirements:
60
74
  - - ">="
61
75
  - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
62
79
  version: "0"
63
- version:
64
80
  requirements: []
65
81
 
66
82
  rubyforge_project:
67
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.4.2
68
84
  signing_key:
69
85
  specification_version: 3
70
86
  summary: Serialize an array in a column, [] when no set, xx_as_text accessors and more.
71
87
  test_files:
72
- - spec/spec_helper.rb
73
- - spec/setup_test_model.rb
74
88
  - spec/ar_serialized_array_spec.rb
89
+ - spec/setup_test_model.rb
90
+ - spec/spec_helper.rb