has_metadata_column 1.1.3 → 1.1.4
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.
- checksums.yaml +4 -4
- data/has_metadata_column.gemspec +8 -8
- data/lib/has_metadata_column.rb +1 -30
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 715f3196bfe6c4a0095d6d3b5312fcbd2f2b5505
|
4
|
+
data.tar.gz: 06dc70288bb43367343e1e0e8b882d33192780e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bbcd59919ae3ab2f637615e74f45525fb65b6c488814a4d14ca95743930eaaa1f76f6c350934afa538d5263f294f4391092ce922c6f74f1375e50560c9905fa
|
7
|
+
data.tar.gz: 3c54c5e31b45115daa896e0a9f0dc7af056f157c797f3f02d022a161b5ffa33f34fbe017327846eb9245adc24a95c679537dc3e9c6015499f9c45075df48ebc4
|
data/has_metadata_column.gemspec
CHANGED
@@ -2,15 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: has_metadata_column 1.1.
|
5
|
+
# stub: has_metadata_column 1.1.4 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "has_metadata_column"
|
9
|
-
s.version = "1.1.
|
9
|
+
s.version = "1.1.4"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
12
13
|
s.authors = ["Tim Morgan"]
|
13
|
-
s.date = "
|
14
|
+
s.date = "2014-05-03"
|
14
15
|
s.description = "Reduce your table width and migration overhead by moving non-indexed columns to a separate metadata column."
|
15
16
|
s.email = "git@timothymorgan.info"
|
16
17
|
s.extra_rdoc_files = [
|
@@ -24,16 +25,15 @@ Gem::Specification.new do |s|
|
|
24
25
|
]
|
25
26
|
s.homepage = "http://github.com/riscfuture/has_metadata_column"
|
26
27
|
s.licenses = ["MIT"]
|
27
|
-
s.require_paths = ["lib"]
|
28
28
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
29
|
-
s.rubygems_version = "2.
|
29
|
+
s.rubygems_version = "2.2.2"
|
30
30
|
s.summary = "Schemaless metadata using JSON columns"
|
31
31
|
|
32
32
|
if s.respond_to? :specification_version then
|
33
33
|
s.specification_version = 4
|
34
34
|
|
35
35
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
36
|
-
s.add_runtime_dependency(%q<rails>, [">= 4.
|
36
|
+
s.add_runtime_dependency(%q<rails>, [">= 4.1"])
|
37
37
|
s.add_runtime_dependency(%q<boolean>, [">= 0"])
|
38
38
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
39
39
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
s.add_development_dependency(%q<redcarpet>, [">= 0"])
|
42
42
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
43
43
|
else
|
44
|
-
s.add_dependency(%q<rails>, [">= 4.
|
44
|
+
s.add_dependency(%q<rails>, [">= 4.1"])
|
45
45
|
s.add_dependency(%q<boolean>, [">= 0"])
|
46
46
|
s.add_dependency(%q<rspec>, [">= 0"])
|
47
47
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
@@ -50,7 +50,7 @@ Gem::Specification.new do |s|
|
|
50
50
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
51
51
|
end
|
52
52
|
else
|
53
|
-
s.add_dependency(%q<rails>, [">= 4.
|
53
|
+
s.add_dependency(%q<rails>, [">= 4.1"])
|
54
54
|
s.add_dependency(%q<boolean>, [">= 0"])
|
55
55
|
s.add_dependency(%q<rspec>, [">= 0"])
|
56
56
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
data/lib/has_metadata_column.rb
CHANGED
@@ -103,7 +103,7 @@ module HasMetadataColumn
|
|
103
103
|
class_attribute :metadata_column
|
104
104
|
self.metadata_column = column || :metadata
|
105
105
|
|
106
|
-
alias_method_chain :changed_attributes, :metadata_column
|
106
|
+
# alias_method_chain :changed_attributes, :metadata_column
|
107
107
|
alias_method_chain :attribute_will_change!, :metadata_column
|
108
108
|
alias_method_chain :attribute_method?, :metadata
|
109
109
|
alias_method_chain :attribute, :metadata
|
@@ -161,7 +161,6 @@ module HasMetadataColumn
|
|
161
161
|
old = _metadata_hash['#{attr_name}']
|
162
162
|
send (self.class.metadata_column + '='), _metadata_hash.merge('#{attr_name}' => value).to_json
|
163
163
|
@_metadata_hash = nil
|
164
|
-
@_changed_metadata[attr] = old
|
165
164
|
value
|
166
165
|
end
|
167
166
|
RUBY
|
@@ -226,34 +225,15 @@ module HasMetadataColumn
|
|
226
225
|
"#<#{self.class.to_s} #{attributes.except(self.class.metadata_column.to_s).merge(_metadata_hash.try!(:stringify_keys) || {}).map { |k, v| "#{k}: #{v.inspect}" }.join(', ')}>"
|
227
226
|
end
|
228
227
|
|
229
|
-
# @private
|
230
|
-
def save(*)
|
231
|
-
response = super
|
232
|
-
_reset_metadata if response
|
233
|
-
response
|
234
|
-
end
|
235
|
-
|
236
|
-
# @private
|
237
|
-
def save!(*)
|
238
|
-
super.tap do
|
239
|
-
_reset_metadata
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
228
|
# @private
|
244
229
|
def reload(*)
|
245
230
|
super.tap do
|
246
231
|
@_metadata_hash = nil
|
247
|
-
_reset_metadata
|
248
232
|
end
|
249
233
|
end
|
250
234
|
|
251
235
|
private
|
252
236
|
|
253
|
-
def changed_attributes_with_metadata_column
|
254
|
-
changed_attributes_without_metadata_column.merge(_changed_metadata)
|
255
|
-
end
|
256
|
-
|
257
237
|
def attribute_will_change_with_metadata_column!(attr)
|
258
238
|
unless attribute_names.include?(attr)
|
259
239
|
send :"#{self.class.metadata_column}_will_change!"
|
@@ -269,10 +249,6 @@ module HasMetadataColumn
|
|
269
249
|
end
|
270
250
|
end
|
271
251
|
|
272
|
-
def _changed_metadata
|
273
|
-
@_changed_metadata ||= {}
|
274
|
-
end
|
275
|
-
|
276
252
|
## ATTRIBUTE MATCHER METHODS
|
277
253
|
|
278
254
|
def attribute_with_metadata(attr)
|
@@ -302,7 +278,6 @@ module HasMetadataColumn
|
|
302
278
|
old = _metadata_hash[attr.to_s]
|
303
279
|
send :"#{self.class.metadata_column}=", _metadata_hash.merge(attr.to_s => value).to_json
|
304
280
|
@_metadata_hash = nil
|
305
|
-
@_changed_metadata[attr] = old
|
306
281
|
value
|
307
282
|
end
|
308
283
|
|
@@ -318,8 +293,4 @@ module HasMetadataColumn
|
|
318
293
|
def attribute_method_with_metadata?(attr)
|
319
294
|
self.class.metadata_column_fields.include?(attr.to_sym) || attribute_method_without_metadata?(attr)
|
320
295
|
end
|
321
|
-
|
322
|
-
def _reset_metadata
|
323
|
-
@_changed_metadata = {}
|
324
|
-
end
|
325
296
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_metadata_column
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4.
|
19
|
+
version: '4.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '4.
|
26
|
+
version: '4.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: boolean
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,10 +117,10 @@ extra_rdoc_files:
|
|
117
117
|
- LICENSE.txt
|
118
118
|
- README.md
|
119
119
|
files:
|
120
|
+
- LICENSE.txt
|
120
121
|
- README.md
|
121
122
|
- has_metadata_column.gemspec
|
122
123
|
- lib/has_metadata_column.rb
|
123
|
-
- LICENSE.txt
|
124
124
|
homepage: http://github.com/riscfuture/has_metadata_column
|
125
125
|
licenses:
|
126
126
|
- MIT
|
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
143
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.2.2
|
145
145
|
signing_key:
|
146
146
|
specification_version: 4
|
147
147
|
summary: Schemaless metadata using JSON columns
|