active_hash_fields 0.1.0 → 0.1.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 +1 -1
- data/Gemfile.lock +12 -23
- data/README.markdown +10 -3
- data/VERSION +1 -1
- data/active_hash_fields.gemspec +7 -7
- data/db/test.sqlite3 +0 -0
- data/spec/spec_helper.rb +8 -0
- metadata +34 -17
- checksums.yaml +0 -7
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
GIT
|
2
2
|
remote: https://github.com/technicalpickles/jeweler
|
3
|
-
revision:
|
3
|
+
revision: a220d93f464935fd0cb9f92378476177bef5aee2
|
4
4
|
specs:
|
5
|
-
jeweler (1.8.
|
5
|
+
jeweler (1.8.8)
|
6
6
|
builder
|
7
7
|
bundler (~> 1.0)
|
8
8
|
git (>= 1.2.5)
|
@@ -15,20 +15,11 @@ GIT
|
|
15
15
|
GEM
|
16
16
|
remote: http://rubygems.org/
|
17
17
|
specs:
|
18
|
-
|
19
|
-
activesupport (= 3.
|
20
|
-
|
21
|
-
activerecord (3.2.14)
|
22
|
-
activemodel (= 3.2.14)
|
23
|
-
activesupport (= 3.2.14)
|
24
|
-
arel (~> 3.0.2)
|
25
|
-
tzinfo (~> 0.3.29)
|
26
|
-
activesupport (3.2.14)
|
27
|
-
i18n (~> 0.6, >= 0.6.4)
|
28
|
-
multi_json (~> 1.0)
|
18
|
+
activerecord (2.3.18)
|
19
|
+
activesupport (= 2.3.18)
|
20
|
+
activesupport (2.3.18)
|
29
21
|
addressable (2.3.5)
|
30
|
-
|
31
|
-
builder (3.0.4)
|
22
|
+
builder (3.2.2)
|
32
23
|
diff-lcs (1.2.4)
|
33
24
|
faraday (0.8.8)
|
34
25
|
multipart-post (~> 1.2.0)
|
@@ -41,13 +32,12 @@ GEM
|
|
41
32
|
nokogiri (~> 1.5.2)
|
42
33
|
oauth2
|
43
34
|
hashie (2.0.5)
|
44
|
-
highline (1.6.
|
35
|
+
highline (1.6.20)
|
45
36
|
httpauth (0.2.0)
|
46
|
-
|
47
|
-
json (1.8.0)
|
37
|
+
json (1.8.1)
|
48
38
|
jwt (0.1.8)
|
49
39
|
multi_json (>= 1.5)
|
50
|
-
multi_json (1.8.
|
40
|
+
multi_json (1.8.2)
|
51
41
|
multi_xml (0.5.5)
|
52
42
|
multipart-post (1.2.0)
|
53
43
|
nokogiri (1.5.10)
|
@@ -66,18 +56,17 @@ GEM
|
|
66
56
|
rspec-core (~> 2.14.0)
|
67
57
|
rspec-expectations (~> 2.14.0)
|
68
58
|
rspec-mocks (~> 2.14.0)
|
69
|
-
rspec-core (2.14.
|
59
|
+
rspec-core (2.14.6)
|
70
60
|
rspec-expectations (2.14.3)
|
71
61
|
diff-lcs (>= 1.1.3, < 2.0)
|
72
|
-
rspec-mocks (2.14.
|
62
|
+
rspec-mocks (2.14.4)
|
73
63
|
sqlite3 (1.3.8)
|
74
|
-
tzinfo (0.3.37)
|
75
64
|
|
76
65
|
PLATFORMS
|
77
66
|
ruby
|
78
67
|
|
79
68
|
DEPENDENCIES
|
80
|
-
activerecord
|
69
|
+
activerecord
|
81
70
|
bundler (~> 1.0)
|
82
71
|
jeweler!
|
83
72
|
rdoc (~> 3.12)
|
data/README.markdown
CHANGED
@@ -12,7 +12,15 @@ This can usually be solved by either creating an additional associated model lik
|
|
12
12
|
Usage
|
13
13
|
------------------------
|
14
14
|
|
15
|
-
Here's the solution:
|
15
|
+
Here's the solution. First add a field to store all nested fields as a serialized hash:
|
16
|
+
|
17
|
+
class AddNotificationsToUsers < ActiveRecord::Migration
|
18
|
+
def change
|
19
|
+
add_column :users, :notifications, :text
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Then define nested fields in your model:
|
16
24
|
|
17
25
|
class User < ActiveRecord::Base
|
18
26
|
|
@@ -35,8 +43,7 @@ Now you can do things like:
|
|
35
43
|
user.notifications.new_private_message # => true
|
36
44
|
|
37
45
|
|
38
|
-
IMPORTANT NOTE
|
39
|
-
if you don't set a default value for the field, it will be ignore, that is:
|
46
|
+
IMPORTANT NOTE! If you don't set a default value for the field, it will be ignored, that is:
|
40
47
|
|
41
48
|
user.notifications.some_non_existent_field = true
|
42
49
|
user.notifications.some_non_existent_field # => nil
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/active_hash_fields.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "active_hash_fields"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Roman Snitko"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-10-17"
|
13
13
|
s.description = "Adds nested fields to an AR model stored in a serialized field as hash"
|
14
14
|
s.email = "roman.snitko@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,21 +37,21 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.homepage = "http://github.com/snitko/active_hash_fields"
|
38
38
|
s.licenses = ["MIT"]
|
39
39
|
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = "
|
40
|
+
s.rubygems_version = "1.8.25"
|
41
41
|
s.summary = "Adds nested fields to an AR model"
|
42
42
|
|
43
43
|
if s.respond_to? :specification_version then
|
44
|
-
s.specification_version =
|
44
|
+
s.specification_version = 3
|
45
45
|
|
46
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
-
s.add_runtime_dependency(%q<activerecord>, ["
|
47
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 0"])
|
48
48
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
49
49
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
50
50
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
51
51
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
52
52
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
53
53
|
else
|
54
|
-
s.add_dependency(%q<activerecord>, ["
|
54
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
55
55
|
s.add_dependency(%q<rspec>, [">= 0"])
|
56
56
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
57
57
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
@@ -59,7 +59,7 @@ Gem::Specification.new do |s|
|
|
59
59
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
60
60
|
end
|
61
61
|
else
|
62
|
-
s.add_dependency(%q<activerecord>, ["
|
62
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
63
63
|
s.add_dependency(%q<rspec>, [">= 0"])
|
64
64
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
65
65
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
data/db/test.sqlite3
CHANGED
Binary file
|
data/spec/spec_helper.rb
CHANGED
@@ -15,4 +15,12 @@ RSpec.configure do |config|
|
|
15
15
|
ActiveRecord::Base.establish_connection(dbconfig)
|
16
16
|
end
|
17
17
|
|
18
|
+
config.after(:suite) do
|
19
|
+
conn = ActiveRecord::Base.connection
|
20
|
+
tables = conn.execute("SELECT name FROM sqlite_master WHERE type = 'table'").map { |r| r[0] }
|
21
|
+
tables.delete "schema_migrations"
|
22
|
+
tables.each { |t| conn.execute("DELETE FROM #{t};") }
|
23
|
+
tables.each { |t| conn.execute("DELETE FROM SQLITE_SEQUENCE WHERE name='#{t}';") }
|
24
|
+
end
|
25
|
+
|
18
26
|
end
|
metadata
CHANGED
@@ -1,60 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_hash_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Roman Snitko
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-10-17 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activerecord
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
21
|
+
version: '0'
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: '0'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rspec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: sqlite3
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: rdoc
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,6 +78,7 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: bundler
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
83
|
- - ~>
|
74
84
|
- !ruby/object:Gem::Version
|
@@ -76,6 +86,7 @@ dependencies:
|
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
91
|
- - ~>
|
81
92
|
- !ruby/object:Gem::Version
|
@@ -83,15 +94,17 @@ dependencies:
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: jeweler
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- - '>='
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: '0'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- - '>='
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: '0'
|
97
110
|
description: Adds nested fields to an AR model stored in a serialized field as hash
|
@@ -121,25 +134,29 @@ files:
|
|
121
134
|
homepage: http://github.com/snitko/active_hash_fields
|
122
135
|
licenses:
|
123
136
|
- MIT
|
124
|
-
metadata: {}
|
125
137
|
post_install_message:
|
126
138
|
rdoc_options: []
|
127
139
|
require_paths:
|
128
140
|
- lib
|
129
141
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
130
143
|
requirements:
|
131
|
-
- - '>='
|
144
|
+
- - ! '>='
|
132
145
|
- !ruby/object:Gem::Version
|
133
146
|
version: '0'
|
147
|
+
segments:
|
148
|
+
- 0
|
149
|
+
hash: -4192656926053817055
|
134
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
135
152
|
requirements:
|
136
|
-
- - '>='
|
153
|
+
- - ! '>='
|
137
154
|
- !ruby/object:Gem::Version
|
138
155
|
version: '0'
|
139
156
|
requirements: []
|
140
157
|
rubyforge_project:
|
141
|
-
rubygems_version:
|
158
|
+
rubygems_version: 1.8.25
|
142
159
|
signing_key:
|
143
|
-
specification_version:
|
160
|
+
specification_version: 3
|
144
161
|
summary: Adds nested fields to an AR model
|
145
162
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 69fa18f40e4f324b1357b1461e45b135258e383a
|
4
|
-
data.tar.gz: a052a4c6c1f55bd403452aa7579fc82d73d08e36
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 5f0ea59e94bac76a890c5e21160e8f1e351f6bc51b586049c3e82775068891c26eb77083c05d264a8c796af53c0d2efa1682a533dbf139982579ea19baa1d11d
|
7
|
-
data.tar.gz: 221f1b3be52508a91ea4aa5d7df389cb1bab8c0afbad4ba9a064f869c2180c43edb0cbb689480219b4f1dbab07c30d2419cfa8fa6e350aeda2a4ee5aae857ec5
|