safe_attributes 1.0.3 → 1.0.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.
- data/README.rdoc +5 -0
- data/VERSION +1 -1
- data/lib/safe_attributes.rb +7 -7
- data/safe_attributes.gemspec +2 -2
- data/spec/safe_attributes/safe_attributes_spec.rb +12 -12
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -62,6 +62,11 @@ without issue using the recommended approach above.
|
|
62
62
|
|
63
63
|
== Using
|
64
64
|
|
65
|
+
=== Ruby
|
66
|
+
|
67
|
+
Both Ruby 1.8.7 and Ruby 1.9.2 have been tested to work with this gem as
|
68
|
+
of version 1.0.4 of SafeAttributes.
|
69
|
+
|
65
70
|
=== Rails
|
66
71
|
Add safe_attributes to your Gemfile.
|
67
72
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.4
|
data/lib/safe_attributes.rb
CHANGED
@@ -12,11 +12,11 @@ module SafeAttributes
|
|
12
12
|
#
|
13
13
|
def bad_attribute_names(*attrs)
|
14
14
|
@bad_attribute_names ||= lambda {
|
15
|
-
methods = Array.new(attrs.collect { |x| x.
|
16
|
-
methods += ActiveRecord::Base.public_instance_methods
|
17
|
-
methods += ActiveRecord::Base.protected_instance_methods
|
18
|
-
methods += ActiveRecord::Base.private_instance_methods
|
19
|
-
methods -= [
|
15
|
+
methods = Array.new(attrs.collect { |x| x.to_sym })
|
16
|
+
methods += ActiveRecord::Base.public_instance_methods.collect { |x| x.to_sym }
|
17
|
+
methods += ActiveRecord::Base.protected_instance_methods.collect { |x| x.to_sym }
|
18
|
+
methods += ActiveRecord::Base.private_instance_methods.collect { |x| x.to_sym }
|
19
|
+
methods -= [:id]
|
20
20
|
return methods
|
21
21
|
}.call
|
22
22
|
end
|
@@ -27,7 +27,7 @@ module SafeAttributes
|
|
27
27
|
# bad names
|
28
28
|
#
|
29
29
|
def define_method_attribute(attr_name)
|
30
|
-
return if (bad_attribute_names.include?(attr_name))
|
30
|
+
return if (bad_attribute_names.include?(attr_name.to_sym))
|
31
31
|
super(attr_name)
|
32
32
|
end
|
33
33
|
|
@@ -38,7 +38,7 @@ module SafeAttributes
|
|
38
38
|
#
|
39
39
|
def define_method_attribute=(attr_name)
|
40
40
|
method = attr_name + '='
|
41
|
-
return if (bad_attribute_names.include?(method))
|
41
|
+
return if (bad_attribute_names.include?(method.to_sym))
|
42
42
|
super(attr_name)
|
43
43
|
end
|
44
44
|
end
|
data/safe_attributes.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{safe_attributes}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian Jones"]
|
12
|
-
s.date = %q{2011-02-
|
12
|
+
s.date = %q{2011-02-04}
|
13
13
|
s.description = %q{Better support for legacy database schemas for ActiveRecord, such as columns named class, or any other name that conflicts with an instance method of ActiveRecord.}
|
14
14
|
s.email = %q{cbj@gnu.org}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -40,33 +40,33 @@ describe MyModel do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it "defines class=()" do
|
43
|
-
@model.respond_to?(
|
44
|
-
@model.methods.include?('class=').should be_true
|
43
|
+
@model.respond_to?(:class=) # to force method generation
|
44
|
+
(@model.methods.include?('class=') || @model.methods.include?(:class=)).should be_true
|
45
45
|
end
|
46
46
|
|
47
47
|
it "does not define bad_attribute()" do
|
48
|
-
@model.respond_to?(
|
49
|
-
@model.methods.include?('bad_attribute').should be_false
|
48
|
+
@model.respond_to?(:bad_attribute) # to force method generation
|
49
|
+
(@model.methods.include?('bad_attribute') || @model.methods.include?(:bad_attribute)).should be_false
|
50
50
|
end
|
51
51
|
|
52
52
|
it "does not define bad_attribute=()" do
|
53
|
-
@model.respond_to?(
|
54
|
-
@model.methods.include?('bad_attribute=').should be_false
|
53
|
+
@model.respond_to?(:bad_attribute=) # to force method generation
|
54
|
+
(@model.methods.include?('bad_attribute=') || @model.methods.include?(:bad_attribute=)).should be_false
|
55
55
|
end
|
56
56
|
|
57
57
|
it "does define good_attribute()" do
|
58
|
-
@model.respond_to?(
|
59
|
-
@model.methods.include?('good_attribute').should be_true
|
58
|
+
@model.respond_to?(:good_attribute) # to force method generation
|
59
|
+
(@model.methods.include?('good_attribute') || @model.methods.include?(:good_attribute)).should be_true
|
60
60
|
end
|
61
61
|
|
62
62
|
it "does define good_attribute=()" do
|
63
|
-
@model.respond_to?(
|
64
|
-
@model.methods.include?('good_attribute=').should be_true
|
63
|
+
@model.respond_to?(:good_attribute=) # to force method generation
|
64
|
+
(@model.methods.include?('good_attribute=') || @model.methods.include?(:good_attribute=)).should be_true
|
65
65
|
end
|
66
66
|
|
67
67
|
it "does define id()" do
|
68
|
-
@model.respond_to?(
|
69
|
-
@model.methods.include?('id').should be_true
|
68
|
+
@model.respond_to?(:id) # to force method generation
|
69
|
+
(@model.methods.include?('id') || @model.methods.include?(:id)).should be_true
|
70
70
|
end
|
71
71
|
|
72
72
|
it "can create instance in database with special attribute name" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safe_attributes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brian Jones
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-04 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|