simple_model 1.3.0 → 1.4.0
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/.travis.yml +0 -2
- data/lib/simple_model/attributes.rb +13 -21
- data/lib/simple_model/version.rb +1 -1
- data/simple_model.gemspec +2 -2
- metadata +7 -9
- data/gemfiles/3.0.gemfile +0 -6
- data/gemfiles/3.1.gemfile +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a8ba23df5889853f9ad2166692f109b20091bfc
|
4
|
+
data.tar.gz: a8aee80ab3a098d528ba4b8028267edd4e34de5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8968daba7cc06a8be4d3b98670fd15d9c857dfdc18dc16fedc2c3a6fe7c6f3ce1fdcc6f7e0e0fe9eb85ff64b47253c65c753bf2c05ffeca3e9060e261f6e07d
|
7
|
+
data.tar.gz: 83f31f449c53ea75bac4f14ba57a827c72130ae2eebd36675e6f9e84fa2bba6d8b13874aca613ae6283167411e357591c04fed95187d9e74c75b768cb48245d4
|
data/.travis.yml
CHANGED
@@ -19,8 +19,8 @@ module SimpleModel
|
|
19
19
|
:has_time => {:cast_to => :to_time, :alias => :has_times}
|
20
20
|
}.freeze
|
21
21
|
|
22
|
-
def initialize(
|
23
|
-
attrs
|
22
|
+
def initialize(attrs={})
|
23
|
+
attrs ||= {}
|
24
24
|
attrs = self.class.before_initialize.call(self,attrs) if self.class.before_initialize
|
25
25
|
set(attrs)
|
26
26
|
defaults = default_attributes_for_init
|
@@ -69,7 +69,7 @@ module SimpleModel
|
|
69
69
|
ab = opts[:allow_blank]
|
70
70
|
val = fetch_default_value(opts[:default]) unless skip_set_default?(attr,opts,val,ab)
|
71
71
|
unless (opts[:boolean] ? (!ab && val.blank? && (val != false)) : (!ab && val.blank?))
|
72
|
-
val = opts[:on_set]
|
72
|
+
val = process_on_set(opts[:on_set],val) if opts.has_key?(:on_set)
|
73
73
|
send("#{attr}_will_change!") if initialized?(attr) && val != attributes[attr_key]
|
74
74
|
attributes[attr_key] = val
|
75
75
|
end
|
@@ -77,6 +77,14 @@ module SimpleModel
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
+
def process_on_set(on_set,val)
|
81
|
+
if on_set.is_a?(Symbol)
|
82
|
+
val.__send__(on_set)
|
83
|
+
else
|
84
|
+
on_set.call(self,val)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
80
88
|
# TODO: Returning just val in Rails 3 HashWithIndifferentAccess causes weird issue where if value is an array the array is reset,
|
81
89
|
# revert to return to just val when Rails 3 support is dropped to improve performance
|
82
90
|
def get_attribute(attr,opts=nil)
|
@@ -226,8 +234,8 @@ module SimpleModel
|
|
226
234
|
options = attributes.extract_options!
|
227
235
|
options = method_options[:options].merge(options) if method_options[:options]
|
228
236
|
options = default_attribute_settings.merge(options)
|
229
|
-
options[:on_set] =
|
230
|
-
create_attribute_methods(attributes,options)
|
237
|
+
options[:on_set] = method_options[:cast_to] if method_options[:cast_to]
|
238
|
+
create_attribute_methods(attributes,options.freeze)
|
231
239
|
end
|
232
240
|
module_eval("alias #{method_options[:alias]} #{method}") if method_options[:alias]
|
233
241
|
end
|
@@ -395,23 +403,13 @@ module SimpleModel
|
|
395
403
|
end
|
396
404
|
|
397
405
|
# Must inherit super's defined_attributes and alias_attributes
|
398
|
-
# Rails 3.0 does some weird stuff with ActiveModel::Dirty so we need a
|
399
|
-
# hack to keep things working when a class inherits from a super that
|
400
|
-
# has ActiveModel::Dirty included
|
401
406
|
def inherited(base)
|
402
407
|
base.defined_attributes = defined_attributes.merge(base.defined_attributes)
|
403
408
|
base.alias_attributes = alias_attributes.merge(base.alias_attributes)
|
404
409
|
super
|
405
|
-
# Rails 3.0 Hack
|
406
|
-
if (ActiveModel::VERSION::MAJOR == 3 && ActiveModel::VERSION::MINOR < 1)
|
407
|
-
base.attribute_method_suffix '_changed?', '_change', '_will_change!', '_was'
|
408
|
-
base.attribute_method_affix :prefix => 'reset_', :suffix => '!'
|
409
|
-
end
|
410
410
|
end
|
411
411
|
end # end ClassMethods
|
412
412
|
|
413
|
-
# Rails 3.0 does some weird stuff with ActiveModel::Dirty so we need a
|
414
|
-
# hack to keep things working when a class includes a module that has
|
415
413
|
# ActiveModel::Dirty included
|
416
414
|
def self.included(base)
|
417
415
|
base.extend(Attributes::ClassMethods)
|
@@ -420,12 +418,6 @@ module SimpleModel
|
|
420
418
|
base.extend ActiveModel::Naming
|
421
419
|
base.extend ActiveModel::Callbacks
|
422
420
|
base.send(:include, ActiveModel::Validations::Callbacks)
|
423
|
-
|
424
|
-
# Rails 3.0 Hack
|
425
|
-
if (ActiveModel::VERSION::MAJOR == 3 && ActiveModel::VERSION::MINOR < 1)
|
426
|
-
base.attribute_method_suffix '_changed?', '_change', '_will_change!', '_was'
|
427
|
-
base.attribute_method_affix :prefix => 'reset_', :suffix => '!'
|
428
|
-
end
|
429
421
|
end
|
430
422
|
end
|
431
423
|
end
|
data/lib/simple_model/version.rb
CHANGED
data/simple_model.gemspec
CHANGED
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{Simpifies building tableless models or models backed by webservices}
|
13
13
|
s.description = %q{Simpifies building tableless models or models backed by webservices. Create data type specific attributes with default if values.}
|
14
14
|
|
15
|
-
s.add_runtime_dependency 'activesupport','>= 3.
|
16
|
-
s.add_runtime_dependency 'activemodel','>= 3.
|
15
|
+
s.add_runtime_dependency 'activesupport','>= 3.2', '< 5.0'
|
16
|
+
s.add_runtime_dependency 'activemodel','>= 3.2', '< 5.0'
|
17
17
|
|
18
18
|
s.add_development_dependency 'rspec'
|
19
19
|
s.add_development_dependency 'rspec-autotest'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua T Mckinney
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '5.0'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '3.
|
29
|
+
version: '3.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5.0'
|
@@ -36,7 +36,7 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '3.
|
39
|
+
version: '3.2'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '5.0'
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '3.
|
49
|
+
version: '3.2'
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '5.0'
|
@@ -108,8 +108,6 @@ files:
|
|
108
108
|
- README.md
|
109
109
|
- Rakefile
|
110
110
|
- benchmarks/simple_model.rb
|
111
|
-
- gemfiles/3.0.gemfile
|
112
|
-
- gemfiles/3.1.gemfile
|
113
111
|
- gemfiles/3.2.gemfile
|
114
112
|
- gemfiles/4.0.gemfile
|
115
113
|
- gemfiles/4.1.gemfile
|
@@ -149,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
147
|
version: '0'
|
150
148
|
requirements: []
|
151
149
|
rubyforge_project: simple_model
|
152
|
-
rubygems_version: 2.4.
|
150
|
+
rubygems_version: 2.4.6
|
153
151
|
signing_key:
|
154
152
|
specification_version: 4
|
155
153
|
summary: Simpifies building tableless models or models backed by webservices
|
data/gemfiles/3.0.gemfile
DELETED