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 
         
     |