basic_model 0.3.2 → 0.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.
- data/.travis.yml +6 -3
- data/Gemfile +1 -1
- data/basic_model.gemspec +2 -2
- data/gemfiles/Gemfile.activemodel-3.0.x +1 -1
- data/gemfiles/Gemfile.activemodel-3.1.x +1 -1
- data/gemfiles/Gemfile.activemodel-3.2.x +8 -0
- data/gemfiles/Gemfile.activemodel-4.0.x +8 -0
- data/lib/basic_model.rb +5 -5
- data/lib/basic_model/version.rb +1 -1
- data/test/basic_model_test.rb +17 -13
- metadata +60 -73
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/basic_model.gemspec
CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.rubyforge_project = 'basic_model'
|
16
16
|
|
17
|
-
s.add_dependency 'activemodel', '
|
18
|
-
s.add_dependency 'activesupport', '
|
17
|
+
s.add_dependency 'activemodel', '>= 3.0', '< 5'
|
18
|
+
s.add_dependency 'activesupport', '>= 3.0', '< 5'
|
19
19
|
s.add_development_dependency 'rake'
|
20
20
|
|
21
21
|
s.files = `git ls-files`.split("\n")
|
data/lib/basic_model.rb
CHANGED
@@ -6,7 +6,7 @@ module BasicModel
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
include ActiveModel::Conversion
|
8
8
|
include ActiveModel::Validations
|
9
|
-
|
9
|
+
|
10
10
|
# Creates and optionally sets the attributes of the model with keys
|
11
11
|
# matching the attribute names. If ActiveModel::MassSecurityAssignment
|
12
12
|
# is included, attributes will be sanitized with the role given in the :as option.
|
@@ -15,23 +15,23 @@ module BasicModel
|
|
15
15
|
unless attributes.nil?
|
16
16
|
# Sanitize the attributes if we're using ActiveModel::MassSecurityAssignment
|
17
17
|
# Also account for the different APIs between 3.0 and 3.1
|
18
|
-
if
|
18
|
+
if protected_methods.include? :sanitize_for_mass_assignment
|
19
19
|
if method(:sanitize_for_mass_assignment).arity == 2
|
20
20
|
attributes = sanitize_for_mass_assignment attributes, options[:as]
|
21
21
|
else
|
22
22
|
attributes = sanitize_for_mass_assignment attributes
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# Now set the attributes, ignoring any private methods
|
27
27
|
attributes.each do |name, value|
|
28
28
|
send "#{name}=", value if respond_to? "#{name}="
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
yield self if block_given?
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
# By default, BasicModels are not persisted in any way.
|
36
36
|
def persisted?
|
37
37
|
false
|
data/lib/basic_model/version.rb
CHANGED
data/test/basic_model_test.rb
CHANGED
@@ -6,9 +6,9 @@ require 'test/unit'
|
|
6
6
|
class Post
|
7
7
|
include BasicModel
|
8
8
|
attr_accessor :title, :body
|
9
|
-
|
9
|
+
|
10
10
|
private
|
11
|
-
|
11
|
+
|
12
12
|
def not_allowed=(value)
|
13
13
|
raise 'Not Allowed!'
|
14
14
|
end
|
@@ -16,36 +16,40 @@ end
|
|
16
16
|
|
17
17
|
class Comment
|
18
18
|
include BasicModel
|
19
|
-
include ActiveModel::MassAssignmentSecurity
|
20
19
|
attr_accessor :name, :comment, :spam
|
21
|
-
|
22
|
-
|
20
|
+
|
21
|
+
if defined? ActiveModel::MassAssignmentSecurity
|
22
|
+
include ActiveModel::MassAssignmentSecurity
|
23
|
+
attr_accessible :name, :comment
|
24
|
+
end
|
23
25
|
end
|
24
26
|
|
25
27
|
class BasicModelTest < ActiveSupport::TestCase
|
26
28
|
include ActiveModel::Lint::Tests
|
27
|
-
|
29
|
+
|
28
30
|
def setup
|
29
31
|
@model = Post.new
|
30
32
|
end
|
31
|
-
|
33
|
+
|
32
34
|
def test_initialize_with_attributes
|
33
35
|
@model = Post.new(:title => 'Title', :body => 'Body')
|
34
36
|
assert_equal 'Title', @model.title
|
35
37
|
assert_equal 'Body', @model.body
|
36
38
|
end
|
37
|
-
|
39
|
+
|
38
40
|
def test_do_not_call_private_methods
|
39
41
|
assert_nothing_raised do
|
40
42
|
Post.new(:not_allowed => 'Oops')
|
41
43
|
end
|
42
44
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
45
|
+
|
46
|
+
if defined? ActiveModel::MassAssignmentSecurity
|
47
|
+
def test_mass_security_assignment
|
48
|
+
@model = Comment.new(:name => 'Bob', :comment => 'Great post!', :spam => false)
|
49
|
+
assert_nil @model.spam
|
50
|
+
end
|
47
51
|
end
|
48
|
-
|
52
|
+
|
49
53
|
def test_initialize_with_yield
|
50
54
|
@model = Post.new do |post|
|
51
55
|
post.title = 'Title'
|
metadata
CHANGED
@@ -1,76 +1,64 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: basic_model
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 2
|
10
|
-
version: 0.3.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Pete Browne
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2014-03-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: activemodel
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70238234788220 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
version: "3.0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
22
|
+
- - <
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '5'
|
33
25
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: activesupport
|
37
26
|
prerelease: false
|
38
|
-
|
27
|
+
version_requirements: *70238234788220
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: &70238234816100 !ruby/object:Gem::Requirement
|
39
31
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
version: "3.0"
|
32
|
+
requirements:
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3.0'
|
36
|
+
- - <
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '5'
|
48
39
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rake
|
52
40
|
prerelease: false
|
53
|
-
|
41
|
+
version_requirements: *70238234816100
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: &70238234813680 !ruby/object:Gem::Requirement
|
54
45
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
62
50
|
type: :development
|
63
|
-
|
64
|
-
|
65
|
-
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: *70238234813680
|
53
|
+
description: BasicModel is intended to be used in a tableless model in Rails >= 3.0.
|
54
|
+
It complies with the ActiveModel API and includes valdiations, so it can be used
|
55
|
+
in form helpers without a problem.
|
56
|
+
email:
|
66
57
|
- me@petebrowne.com
|
67
58
|
executables: []
|
68
|
-
|
69
59
|
extensions: []
|
70
|
-
|
71
60
|
extra_rdoc_files: []
|
72
|
-
|
73
|
-
files:
|
61
|
+
files:
|
74
62
|
- .gitignore
|
75
63
|
- .travis.yml
|
76
64
|
- Gemfile
|
@@ -80,41 +68,40 @@ files:
|
|
80
68
|
- basic_model.gemspec
|
81
69
|
- gemfiles/Gemfile.activemodel-3.0.x
|
82
70
|
- gemfiles/Gemfile.activemodel-3.1.x
|
71
|
+
- gemfiles/Gemfile.activemodel-3.2.x
|
72
|
+
- gemfiles/Gemfile.activemodel-4.0.x
|
83
73
|
- lib/basic_model.rb
|
84
74
|
- lib/basic_model/version.rb
|
85
75
|
- test/basic_model_test.rb
|
86
76
|
homepage: http://github.com/petebrowne/basic_model
|
87
77
|
licenses: []
|
88
|
-
|
89
78
|
post_install_message:
|
90
79
|
rdoc_options: []
|
91
|
-
|
92
|
-
require_paths:
|
80
|
+
require_paths:
|
93
81
|
- lib
|
94
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
83
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
segments:
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
segments:
|
101
89
|
- 0
|
102
|
-
|
103
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
hash: 3744792226769240364
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
92
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
|
109
|
-
segments:
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
segments:
|
110
98
|
- 0
|
111
|
-
|
99
|
+
hash: 3744792226769240364
|
112
100
|
requirements: []
|
113
|
-
|
114
101
|
rubyforge_project: basic_model
|
115
|
-
rubygems_version: 1.8.
|
102
|
+
rubygems_version: 1.8.11
|
116
103
|
signing_key:
|
117
104
|
specification_version: 3
|
118
105
|
summary: BasicModel is a tiny Module that complies with the ActiveModel API
|
119
|
-
test_files:
|
106
|
+
test_files:
|
120
107
|
- test/basic_model_test.rb
|