attribute-filters 1.0.0 → 1.0.1
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.tar.gz.sig +0 -0
- data/ChangeLog +36 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +82 -0
- data/README.rdoc +104 -5
- data/Rakefile +0 -4
- data/attribute-filters.gemspec +4 -4
- data/docs/TODO +3 -1
- data/lib/attribute-filters/version.rb +2 -2
- metadata +108 -93
- metadata.gz.sig +0 -0
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/ChangeLog
    CHANGED
    
    | @@ -1,3 +1,39 @@ | |
| 1 | 
            +
            commit 2b72084f1eef2a7b8dfa632a2fd918eae203f106
         | 
| 2 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 3 | 
            +
            Date:   Thu Jun 28 11:53:58 2012 +0200
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                Ready to release gem
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            commit 824ee4189fe9fb5c66c6aebd99aba4a661829260
         | 
| 8 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 9 | 
            +
            Date:   Thu Jun 28 11:50:22 2012 +0200
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                Doco update
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            commit 56a9df2c396d406c167d757b157e9d13700d3645
         | 
| 14 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 15 | 
            +
            Date:   Thu Jun 28 11:39:06 2012 +0200
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                Release 1.0.1
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            commit 859b490a8ab34720e4395bec6f2f72cb5fab335f
         | 
| 20 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 21 | 
            +
            Date:   Thu Jun 28 11:38:02 2012 +0200
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                Removed syck parser setting from Rakefile
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            commit b83271b8317b435db46b4f6622ecd6a796a451cc
         | 
| 26 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 27 | 
            +
            Date:   Thu Jun 28 11:37:23 2012 +0200
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                Documentation updated
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            commit 1066e01a859c686c29966ebfe1c5d1b78038ba2d
         | 
| 32 | 
            +
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 33 | 
            +
            Date:   Thu Jun 28 11:37:06 2012 +0200
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                ChangeLog and Manifest.txt updated
         | 
| 36 | 
            +
             | 
| 1 37 | 
             
            commit 4b39fb3796755869d6ea0321b7d9d55d62d91580
         | 
| 2 38 | 
             
            Author: Paweł Wilk <siefca@gnu.org>
         | 
| 3 39 | 
             
            Date:   Thu Jun 28 02:00:46 2012 +0200
         | 
    
        data/Gemfile
    ADDED
    
    | @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # -*- ruby -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            source :gemcutter
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            gem "railties", "~>3.0"
         | 
| 8 | 
            +
            gem "activemodel", "~>3.0"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            gem "hoe-yard", ">=0.1.2", :group => [:development, :test]
         | 
| 11 | 
            +
            gem "rspec", ">=2.6.0", :group => [:development, :test]
         | 
| 12 | 
            +
            gem "yard", ">=0.7.2", :group => [:development, :test]
         | 
| 13 | 
            +
            gem "rdoc", ">=3.8.0", :group => [:development, :test]
         | 
| 14 | 
            +
            gem "bundler", ">=1.0.10", :group => [:development, :test]
         | 
| 15 | 
            +
            gem "hoe-bundler", ">=1.1.0", :group => [:development, :test]
         | 
| 16 | 
            +
            gem "hoe-gemspec", ">=1.0.0", :group => [:development, :test]
         | 
| 17 | 
            +
            gem "hoe", "~>2.16", :group => [:development, :test]
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            # vim: syntax=ruby
         | 
    
        data/Gemfile.lock
    ADDED
    
    | @@ -0,0 +1,82 @@ | |
| 1 | 
            +
            GEM
         | 
| 2 | 
            +
              remote: http://rubygems.org/
         | 
| 3 | 
            +
              specs:
         | 
| 4 | 
            +
                actionpack (3.2.6)
         | 
| 5 | 
            +
                  activemodel (= 3.2.6)
         | 
| 6 | 
            +
                  activesupport (= 3.2.6)
         | 
| 7 | 
            +
                  builder (~> 3.0.0)
         | 
| 8 | 
            +
                  erubis (~> 2.7.0)
         | 
| 9 | 
            +
                  journey (~> 1.0.1)
         | 
| 10 | 
            +
                  rack (~> 1.4.0)
         | 
| 11 | 
            +
                  rack-cache (~> 1.2)
         | 
| 12 | 
            +
                  rack-test (~> 0.6.1)
         | 
| 13 | 
            +
                  sprockets (~> 2.1.3)
         | 
| 14 | 
            +
                activemodel (3.2.6)
         | 
| 15 | 
            +
                  activesupport (= 3.2.6)
         | 
| 16 | 
            +
                  builder (~> 3.0.0)
         | 
| 17 | 
            +
                activesupport (3.2.6)
         | 
| 18 | 
            +
                  i18n (~> 0.6)
         | 
| 19 | 
            +
                  multi_json (~> 1.0)
         | 
| 20 | 
            +
                builder (3.0.0)
         | 
| 21 | 
            +
                diff-lcs (1.1.3)
         | 
| 22 | 
            +
                erubis (2.7.0)
         | 
| 23 | 
            +
                hike (1.2.1)
         | 
| 24 | 
            +
                hoe (2.16.1)
         | 
| 25 | 
            +
                  rake (~> 0.8)
         | 
| 26 | 
            +
                hoe-bundler (1.1.0)
         | 
| 27 | 
            +
                  hoe (>= 2.2.0)
         | 
| 28 | 
            +
                hoe-gemspec (1.0.0)
         | 
| 29 | 
            +
                  hoe (>= 2.2.0)
         | 
| 30 | 
            +
                hoe-yard (0.1.2)
         | 
| 31 | 
            +
                  yard (>= 0.2.3.1)
         | 
| 32 | 
            +
                i18n (0.6.0)
         | 
| 33 | 
            +
                journey (1.0.4)
         | 
| 34 | 
            +
                json (1.7.3)
         | 
| 35 | 
            +
                multi_json (1.3.6)
         | 
| 36 | 
            +
                rack (1.4.1)
         | 
| 37 | 
            +
                rack-cache (1.2)
         | 
| 38 | 
            +
                  rack (>= 0.4)
         | 
| 39 | 
            +
                rack-ssl (1.3.2)
         | 
| 40 | 
            +
                  rack
         | 
| 41 | 
            +
                rack-test (0.6.1)
         | 
| 42 | 
            +
                  rack (>= 1.0)
         | 
| 43 | 
            +
                railties (3.2.6)
         | 
| 44 | 
            +
                  actionpack (= 3.2.6)
         | 
| 45 | 
            +
                  activesupport (= 3.2.6)
         | 
| 46 | 
            +
                  rack-ssl (~> 1.3.2)
         | 
| 47 | 
            +
                  rake (>= 0.8.7)
         | 
| 48 | 
            +
                  rdoc (~> 3.4)
         | 
| 49 | 
            +
                  thor (>= 0.14.6, < 2.0)
         | 
| 50 | 
            +
                rake (0.9.2.2)
         | 
| 51 | 
            +
                rdoc (3.12)
         | 
| 52 | 
            +
                  json (~> 1.4)
         | 
| 53 | 
            +
                rspec (2.10.0)
         | 
| 54 | 
            +
                  rspec-core (~> 2.10.0)
         | 
| 55 | 
            +
                  rspec-expectations (~> 2.10.0)
         | 
| 56 | 
            +
                  rspec-mocks (~> 2.10.0)
         | 
| 57 | 
            +
                rspec-core (2.10.1)
         | 
| 58 | 
            +
                rspec-expectations (2.10.0)
         | 
| 59 | 
            +
                  diff-lcs (~> 1.1.3)
         | 
| 60 | 
            +
                rspec-mocks (2.10.1)
         | 
| 61 | 
            +
                sprockets (2.1.3)
         | 
| 62 | 
            +
                  hike (~> 1.2)
         | 
| 63 | 
            +
                  rack (~> 1.0)
         | 
| 64 | 
            +
                  tilt (~> 1.1, != 1.3.0)
         | 
| 65 | 
            +
                thor (0.15.3)
         | 
| 66 | 
            +
                tilt (1.3.3)
         | 
| 67 | 
            +
                yard (0.8.2.1)
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            PLATFORMS
         | 
| 70 | 
            +
              ruby
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            DEPENDENCIES
         | 
| 73 | 
            +
              activemodel (~> 3.0)
         | 
| 74 | 
            +
              bundler (>= 1.0.10)
         | 
| 75 | 
            +
              hoe (~> 2.16)
         | 
| 76 | 
            +
              hoe-bundler (>= 1.1.0)
         | 
| 77 | 
            +
              hoe-gemspec (>= 1.0.0)
         | 
| 78 | 
            +
              hoe-yard (>= 0.1.2)
         | 
| 79 | 
            +
              railties (~> 3.0)
         | 
| 80 | 
            +
              rdoc (>= 3.8.0)
         | 
| 81 | 
            +
              rspec (>= 2.6.0)
         | 
| 82 | 
            +
              yard (>= 0.7.2)
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -15,19 +15,117 @@ Attribute Filters adds couple of DSL keywords and some syntactic sugar | |
| 15 15 | 
             
            to Rails thereby allowing you to express filtering and groupping
         | 
| 16 16 | 
             
            model attributes in a concise and clean way.
         | 
| 17 17 |  | 
| 18 | 
            -
            ==  | 
| 18 | 
            +
            == When?
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            If your Rails application often filters the attributes that has changed
         | 
| 21 | 
            +
            recently and uses callbacks to achieve that, then you may consider
         | 
| 22 | 
            +
            refining that process and write methods for handling common operations
         | 
| 23 | 
            +
            not certain attributes. See what I mean below.
         | 
| 19 24 |  | 
| 20 25 | 
             
            === Before
         | 
| 21 26 |  | 
| 27 | 
            +
              class User < ActiveRecord::Base
         | 
| 28 | 
            +
                
         | 
| 29 | 
            +
                before_validation :strip_and_downcase_username
         | 
| 30 | 
            +
                before_validation :strip_and_downcase_email
         | 
| 31 | 
            +
                before_validation :strip_and_capitalize_real_name
         | 
| 32 | 
            +
                
         | 
| 33 | 
            +
                def strip_and_downcase_username
         | 
| 34 | 
            +
                  if username.present?
         | 
| 35 | 
            +
                    self.username = self.username.strip.mb_chars.downcase.to_s
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def strip_and_downcase_email
         | 
| 40 | 
            +
                  if email.present?
         | 
| 41 | 
            +
                    self.email.strip!
         | 
| 42 | 
            +
                    self.email.downcase!
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
                
         | 
| 46 | 
            +
                def strip_and_capitalize_real_name
         | 
| 47 | 
            +
                  if real_name.present?
         | 
| 48 | 
            +
                    self.real_name = self.real_name.strip.mb_chars.split(' ').
         | 
| 49 | 
            +
                                      map { |n| n.capitalize }.join(' ')
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
                
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
              
         | 
| 55 | 
            +
            (The more attributes there is the more messy it becomes and the filtering code is not reusable.)
         | 
| 22 56 |  | 
| 23 57 | 
             
            === After
         | 
| 24 58 |  | 
| 59 | 
            +
              class User < ActiveRecord::Base
         | 
| 60 | 
            +
              
         | 
| 61 | 
            +
                attributes_that :should_be_downcased    => [ :username, :email ]
         | 
| 62 | 
            +
                attributes_that :should_be_stripped     => [ :username, :email, :real_name ]
         | 
| 63 | 
            +
                attributes_that :should_be_capitalized  => [ :username, :email ]
         | 
| 64 | 
            +
                
         | 
| 65 | 
            +
                before_validation :strip_names
         | 
| 66 | 
            +
                before_validation :downcase_names
         | 
| 67 | 
            +
                before_validation :capitalize_names
         | 
| 68 | 
            +
                
         | 
| 69 | 
            +
                def downcase_names
         | 
| 70 | 
            +
                  filter_attributes_that(:should_be_downcased) do |atr|
         | 
| 71 | 
            +
                    atr.mb_chars.downcase.to_s
         | 
| 72 | 
            +
                  end
         | 
| 73 | 
            +
                end
         | 
| 74 | 
            +
                
         | 
| 75 | 
            +
                def capitalize_names
         | 
| 76 | 
            +
                  filter_attributes_that(:should_be_capitalized) do |atr|
         | 
| 77 | 
            +
                    atr.mb_chars.split(' ').map { |n| n.capitalize }.join(' ')
         | 
| 78 | 
            +
                  end
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
                
         | 
| 81 | 
            +
                def strip_names
         | 
| 82 | 
            +
                  for_attributes_that(:should_be_stripped) { |atr| atr.strip! }
         | 
| 83 | 
            +
                end
         | 
| 84 | 
            +
                
         | 
| 85 | 
            +
              end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            (Names of new attributes that have to be altered in the same way can just be added to sets
         | 
| 88 | 
            +
            and you can use the same altering methods across all models if you wish to.)
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            == Usage
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            You can use it to do attribute filtering as presented above but you can also
         | 
| 93 | 
            +
            try using ActiveModel::AttributeSet directly, which helps to express some logic.
         | 
| 94 | 
            +
            For example:
         | 
| 95 | 
            +
             | 
| 96 | 
            +
              class User < ActiveRecord::Base
         | 
| 97 | 
            +
                
         | 
| 98 | 
            +
                attributes_that_are :required_to_trade => [ :username, :home_address, :bank_account ]
         | 
| 99 | 
            +
                
         | 
| 100 | 
            +
                def can_trade?
         | 
| 101 | 
            +
                  are_attributes(:required_to_trade).all.present?
         | 
| 102 | 
            +
                end
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
              end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            * See {USAGE}[http://rubydoc.info/gems/attribute-filters/file/docs/USAGE] for more examples and detailed information about the usage.
         | 
| 107 | 
            +
            * See {whole documentation}[http://rubydoc.info/gems/attribute-filters/] to browse all documents.
         | 
| 25 108 |  | 
| 109 | 
            +
            == How it works?
         | 
| 26 110 |  | 
| 27 | 
            -
             | 
| 111 | 
            +
            It creates a new Active Model module called ActiveModel::AttributeFilters. That module
         | 
| 112 | 
            +
            contains the needed DSL that goes into your models. It also creates ActiveModel::AttributeSet
         | 
| 113 | 
            +
            class which is just a new kind of set, a structure for storing sets of attribute names.
         | 
| 28 114 |  | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 115 | 
            +
            Then it forces Rails to include the AttributeFilters in any model that
         | 
| 116 | 
            +
            at any time will include ActiveModel::AttributeMethods. The last one is included
         | 
| 117 | 
            +
            quite often; e.g. ActiveRecord and other popular ORM-s use it. (I'm calling it
         | 
| 118 | 
            +
            "the accompanying module".)
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            That's why you can make use of attribute filters without explicitly including
         | 
| 121 | 
            +
            the module, as long as your application relies on any popular ORM.
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            If something will go wrong however or your application is somehow unusual, you can always
         | 
| 124 | 
            +
            include the AttributeFilters module manually in any of your models:
         | 
| 125 | 
            +
             | 
| 126 | 
            +
              class ExampleModel
         | 
| 127 | 
            +
                include ActiveModel::AttributeFilters
         | 
| 128 | 
            +
              end
         | 
| 31 129 |  | 
| 32 130 | 
             
            == Requirements
         | 
| 33 131 |  | 
| @@ -69,8 +167,9 @@ You can run RSpec examples both with | |
| 69 167 |  | 
| 70 168 | 
             
            == Credits
         | 
| 71 169 |  | 
| 72 | 
            -
            {iConsulting}[http://www.iconsulting.pl/] supports Free Software and has
         | 
| 170 | 
            +
            * {iConsulting}[http://www.iconsulting.pl/] supports Free Software and has
         | 
| 73 171 | 
             
            contributed to this library by paying for me to eat when I've been coding.
         | 
| 172 | 
            +
            * MrZYX (Jonne Haß) contributed by giving me some hints and answering basic questions on IRC – THX!
         | 
| 74 173 |  | 
| 75 174 | 
             
            == License
         | 
| 76 175 |  | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/attribute-filters.gemspec
    CHANGED
    
    | @@ -2,16 +2,16 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            Gem::Specification.new do |s|
         | 
| 4 4 | 
             
              s.name = "attribute-filters"
         | 
| 5 | 
            -
              s.version = "1.0. | 
| 5 | 
            +
              s.version = "1.0.1.20120628115122"
         | 
| 6 6 |  | 
| 7 7 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 8 8 | 
             
              s.authors = ["Pawe\u{142} Wilk"]
         | 
| 9 9 | 
             
              s.cert_chain = ["/Users/siefca/.gem/gem-public_cert.pem"]
         | 
| 10 | 
            -
              s.date = "2012-06- | 
| 11 | 
            -
              s.description = " | 
| 10 | 
            +
              s.date = "2012-06-28"
         | 
| 11 | 
            +
              s.description = "Concise way of filtering model attributes in Rails."
         | 
| 12 12 | 
             
              s.email = ["pw@gnu.org"]
         | 
| 13 13 | 
             
              s.extra_rdoc_files = ["Manifest.txt", "README.rdoc"]
         | 
| 14 | 
            -
              s.files = [".rspec", ".yardopts", "ChangeLog", "LGPL-LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "attribute-filters.gemspec", "docs/COPYING", "docs/HISTORY", "docs/LEGAL", "docs/LGPL-LICENSE", "docs/TODO", "docs/rdoc.css", "init.rb", "lib/attribute-filters.rb", "lib/attribute-filters/attribute_set.rb", "lib/attribute-filters/attribute_set_query.rb", "lib/attribute-filters/common_filters.rb", "lib/attribute-filters/dsl_filters.rb", "lib/attribute-filters/dsl_sets.rb", "lib/attribute-filters/railtie.rb", "lib/attribute-filters/version.rb", "spec/attribute-filters_spec.rb", "spec/spec_helper.rb", ".gemtest"]
         | 
| 14 | 
            +
              s.files = [".rspec", ".yardopts", "ChangeLog", "Gemfile", "Gemfile.lock", "LGPL-LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "attribute-filters.gemspec", "docs/COPYING", "docs/HISTORY", "docs/LEGAL", "docs/LGPL-LICENSE", "docs/TODO", "docs/rdoc.css", "init.rb", "lib/attribute-filters.rb", "lib/attribute-filters/attribute_set.rb", "lib/attribute-filters/attribute_set_query.rb", "lib/attribute-filters/common_filters.rb", "lib/attribute-filters/dsl_filters.rb", "lib/attribute-filters/dsl_sets.rb", "lib/attribute-filters/railtie.rb", "lib/attribute-filters/version.rb", "spec/attribute-filters_spec.rb", "spec/spec_helper.rb", ".gemtest"]
         | 
| 15 15 | 
             
              s.homepage = "https://rubygems.org/gems/attribute-filters/"
         | 
| 16 16 | 
             
              s.rdoc_options = ["--title", "Attribute::Filters Documentation", "--quiet"]
         | 
| 17 17 | 
             
              s.require_paths = ["lib"]
         | 
    
        data/docs/TODO
    CHANGED
    
    
| @@ -12,7 +12,7 @@ module AttributeFilters | |
| 12 12 | 
             
                  # @private
         | 
| 13 13 | 
             
                  EMAIL       = 'pw@gnu.org'
         | 
| 14 14 | 
             
                  # @private
         | 
| 15 | 
            -
                  VERSION     = '1.0. | 
| 15 | 
            +
                  VERSION     = '1.0.1'
         | 
| 16 16 | 
             
                  # @private
         | 
| 17 17 | 
             
                  NAME        = 'attribute-filters'
         | 
| 18 18 | 
             
                  # @private
         | 
| @@ -20,5 +20,5 @@ module AttributeFilters | |
| 20 20 | 
             
                  # @private
         | 
| 21 21 | 
             
                  URL         = 'https://rubygems.org/gems/attribute-filters/'
         | 
| 22 22 | 
             
                  # @private
         | 
| 23 | 
            -
                  DESCRIPTION = ' | 
| 23 | 
            +
                  DESCRIPTION = 'Concise way of filtering model attributes in Rails.'
         | 
| 24 24 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,161 +1,179 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: attribute-filters
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 1.0.1
         | 
| 4 5 | 
             
              prerelease: 
         | 
| 5 | 
            -
              version: 1.0.0
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 | 
            -
            authors: | 
| 8 | 
            -
            -  | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Paweł Wilk
         | 
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 | 
            -
            cert_chain: | 
| 12 | 
            -
            -  | 
| 13 | 
            -
             | 
| 11 | 
            +
            cert_chain:
         | 
| 12 | 
            +
            - ! '-----BEGIN CERTIFICATE-----
         | 
| 13 | 
            +
             | 
| 14 14 | 
             
              MIIDKjCCAhKgAwIBAgIBADANBgkqhkiG9w0BAQUFADA7MQ8wDQYDVQQDDAZzaWVm
         | 
| 15 | 
            +
             | 
| 15 16 | 
             
              Y2ExEzARBgoJkiaJk/IsZAEZFgNnbnUxEzARBgoJkiaJk/IsZAEZFgNvcmcwHhcN
         | 
| 17 | 
            +
             | 
| 16 18 | 
             
              MDkwNjA2MDkwODA5WhcNMTAwNjA2MDkwODA5WjA7MQ8wDQYDVQQDDAZzaWVmY2Ex
         | 
| 19 | 
            +
             | 
| 17 20 | 
             
              EzARBgoJkiaJk/IsZAEZFgNnbnUxEzARBgoJkiaJk/IsZAEZFgNvcmcwggEiMA0G
         | 
| 21 | 
            +
             | 
| 18 22 | 
             
              CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdk4+9ieSx2I2OPslPcj/LjajwtsrH
         | 
| 23 | 
            +
             | 
| 19 24 | 
             
              mev6Fs3xK9hdDIbbLuQM9AypBS7NeKP/2YToEOGxsvzcpFzL2Ah71cP6Yfn+Z2Yo
         | 
| 25 | 
            +
             | 
| 20 26 | 
             
              zvqpAx5/nl79PrJKvjlkdzVNOFBp/EOkLK67QK4Pv97ABnG2PkF4FokqOjuNHLM7
         | 
| 27 | 
            +
             | 
| 21 28 | 
             
              47OkJPvFyfHyMBDZN7EFljBBNm3IuQRTiO48e5Jcp3L761PWOvCpnV8wiga0Wwt3
         | 
| 29 | 
            +
             | 
| 22 30 | 
             
              98Gmy7c1nWzfbQc1wHwKLPICY/aidKU20KymSHG63BSW5pO2cXZecIeYjw5YNjGA
         | 
| 31 | 
            +
             | 
| 23 32 | 
             
              M1RZMiwT7QJ9W86VVP+8EqbJKJOS95xlmQTHjPK56yXv8GiuyLQHpPh5AgMBAAGj
         | 
| 33 | 
            +
             | 
| 24 34 | 
             
              OTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFKOKspZONq4bt5D2DEexB+vsMB2GMAsG
         | 
| 35 | 
            +
             | 
| 25 36 | 
             
              A1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAUh0LnB4o5XKpH3yOxavEyp9X
         | 
| 37 | 
            +
             | 
| 26 38 | 
             
              Nen2e854wsSjAr0waSVzEt3XxY1voyIE6WCGxZJU//40CR0Be7j5CcsJsDU2CZyZ
         | 
| 39 | 
            +
             | 
| 27 40 | 
             
              8SXN1/mZjMqWvYyEMSfQP4XzkFSOuyDcoDAf43OGhOhdv5Jcs/Et/FH6DgWYwRxq
         | 
| 41 | 
            +
             | 
| 28 42 | 
             
              RtATRWON5R99ugPeRb7i1nIpnzGEBA9V32r6r959Bp3XjkVEXylbItYMqSARaZlY
         | 
| 43 | 
            +
             | 
| 29 44 | 
             
              qzKSsIUjh7vDyTNqta0DjSgCk26dhnOwc0hmzhvVZtBwfZritSVhfCLp5uFwqCqY
         | 
| 45 | 
            +
             | 
| 30 46 | 
             
              NK3TIZaPCh1S2/ES6wXNvjQ+5EnEEL9j/pSEop9DYEBPaM2WDVR5i0jJTAaRWw==
         | 
| 47 | 
            +
             | 
| 31 48 | 
             
              -----END CERTIFICATE-----
         | 
| 32 49 |  | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 50 | 
            +
            '
         | 
| 51 | 
            +
            date: 2012-06-28 00:00:00.000000000 Z
         | 
| 52 | 
            +
            dependencies:
         | 
| 53 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 36 54 | 
             
              name: railties
         | 
| 37 | 
            -
              requirement: & | 
| 55 | 
            +
              requirement: &2157259360 !ruby/object:Gem::Requirement
         | 
| 38 56 | 
             
                none: false
         | 
| 39 | 
            -
                requirements: | 
| 57 | 
            +
                requirements:
         | 
| 40 58 | 
             
                - - ~>
         | 
| 41 | 
            -
                  - !ruby/object:Gem::Version | 
| 42 | 
            -
                    version:  | 
| 59 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            +
                    version: '3.0'
         | 
| 43 61 | 
             
              type: :runtime
         | 
| 44 62 | 
             
              prerelease: false
         | 
| 45 | 
            -
              version_requirements: * | 
| 46 | 
            -
            - !ruby/object:Gem::Dependency | 
| 63 | 
            +
              version_requirements: *2157259360
         | 
| 64 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 47 65 | 
             
              name: activemodel
         | 
| 48 | 
            -
              requirement: & | 
| 66 | 
            +
              requirement: &2157258880 !ruby/object:Gem::Requirement
         | 
| 49 67 | 
             
                none: false
         | 
| 50 | 
            -
                requirements: | 
| 68 | 
            +
                requirements:
         | 
| 51 69 | 
             
                - - ~>
         | 
| 52 | 
            -
                  - !ruby/object:Gem::Version | 
| 53 | 
            -
                    version:  | 
| 70 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 71 | 
            +
                    version: '3.0'
         | 
| 54 72 | 
             
              type: :runtime
         | 
| 55 73 | 
             
              prerelease: false
         | 
| 56 | 
            -
              version_requirements: * | 
| 57 | 
            -
            - !ruby/object:Gem::Dependency | 
| 74 | 
            +
              version_requirements: *2157258880
         | 
| 75 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 58 76 | 
             
              name: hoe-yard
         | 
| 59 | 
            -
              requirement: & | 
| 77 | 
            +
              requirement: &2157258440 !ruby/object:Gem::Requirement
         | 
| 60 78 | 
             
                none: false
         | 
| 61 | 
            -
                requirements: | 
| 62 | 
            -
                - -  | 
| 63 | 
            -
                  - !ruby/object:Gem::Version | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ! '>='
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 64 82 | 
             
                    version: 0.1.2
         | 
| 65 83 | 
             
              type: :development
         | 
| 66 84 | 
             
              prerelease: false
         | 
| 67 | 
            -
              version_requirements: * | 
| 68 | 
            -
            - !ruby/object:Gem::Dependency | 
| 85 | 
            +
              version_requirements: *2157258440
         | 
| 86 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 69 87 | 
             
              name: rspec
         | 
| 70 | 
            -
              requirement: & | 
| 88 | 
            +
              requirement: &2157257920 !ruby/object:Gem::Requirement
         | 
| 71 89 | 
             
                none: false
         | 
| 72 | 
            -
                requirements: | 
| 73 | 
            -
                - -  | 
| 74 | 
            -
                  - !ruby/object:Gem::Version | 
| 90 | 
            +
                requirements:
         | 
| 91 | 
            +
                - - ! '>='
         | 
| 92 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 93 | 
             
                    version: 2.6.0
         | 
| 76 94 | 
             
              type: :development
         | 
| 77 95 | 
             
              prerelease: false
         | 
| 78 | 
            -
              version_requirements: * | 
| 79 | 
            -
            - !ruby/object:Gem::Dependency | 
| 96 | 
            +
              version_requirements: *2157257920
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 80 98 | 
             
              name: yard
         | 
| 81 | 
            -
              requirement: & | 
| 99 | 
            +
              requirement: &2157257420 !ruby/object:Gem::Requirement
         | 
| 82 100 | 
             
                none: false
         | 
| 83 | 
            -
                requirements: | 
| 84 | 
            -
                - -  | 
| 85 | 
            -
                  - !ruby/object:Gem::Version | 
| 101 | 
            +
                requirements:
         | 
| 102 | 
            +
                - - ! '>='
         | 
| 103 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 86 104 | 
             
                    version: 0.7.2
         | 
| 87 105 | 
             
              type: :development
         | 
| 88 106 | 
             
              prerelease: false
         | 
| 89 | 
            -
              version_requirements: * | 
| 90 | 
            -
            - !ruby/object:Gem::Dependency | 
| 107 | 
            +
              version_requirements: *2157257420
         | 
| 108 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 91 109 | 
             
              name: rdoc
         | 
| 92 | 
            -
              requirement: & | 
| 110 | 
            +
              requirement: &2157256960 !ruby/object:Gem::Requirement
         | 
| 93 111 | 
             
                none: false
         | 
| 94 | 
            -
                requirements: | 
| 95 | 
            -
                - -  | 
| 96 | 
            -
                  - !ruby/object:Gem::Version | 
| 112 | 
            +
                requirements:
         | 
| 113 | 
            +
                - - ! '>='
         | 
| 114 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 97 115 | 
             
                    version: 3.8.0
         | 
| 98 116 | 
             
              type: :development
         | 
| 99 117 | 
             
              prerelease: false
         | 
| 100 | 
            -
              version_requirements: * | 
| 101 | 
            -
            - !ruby/object:Gem::Dependency | 
| 118 | 
            +
              version_requirements: *2157256960
         | 
| 119 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 102 120 | 
             
              name: bundler
         | 
| 103 | 
            -
              requirement: & | 
| 121 | 
            +
              requirement: &2157256520 !ruby/object:Gem::Requirement
         | 
| 104 122 | 
             
                none: false
         | 
| 105 | 
            -
                requirements: | 
| 106 | 
            -
                - -  | 
| 107 | 
            -
                  - !ruby/object:Gem::Version | 
| 123 | 
            +
                requirements:
         | 
| 124 | 
            +
                - - ! '>='
         | 
| 125 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 108 126 | 
             
                    version: 1.0.10
         | 
| 109 127 | 
             
              type: :development
         | 
| 110 128 | 
             
              prerelease: false
         | 
| 111 | 
            -
              version_requirements: * | 
| 112 | 
            -
            - !ruby/object:Gem::Dependency | 
| 129 | 
            +
              version_requirements: *2157256520
         | 
| 130 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 113 131 | 
             
              name: hoe-bundler
         | 
| 114 | 
            -
              requirement: & | 
| 132 | 
            +
              requirement: &2157256060 !ruby/object:Gem::Requirement
         | 
| 115 133 | 
             
                none: false
         | 
| 116 | 
            -
                requirements: | 
| 117 | 
            -
                - -  | 
| 118 | 
            -
                  - !ruby/object:Gem::Version | 
| 134 | 
            +
                requirements:
         | 
| 135 | 
            +
                - - ! '>='
         | 
| 136 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 119 137 | 
             
                    version: 1.1.0
         | 
| 120 138 | 
             
              type: :development
         | 
| 121 139 | 
             
              prerelease: false
         | 
| 122 | 
            -
              version_requirements: * | 
| 123 | 
            -
            - !ruby/object:Gem::Dependency | 
| 140 | 
            +
              version_requirements: *2157256060
         | 
| 141 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 124 142 | 
             
              name: hoe-gemspec
         | 
| 125 | 
            -
              requirement: & | 
| 143 | 
            +
              requirement: &2157255620 !ruby/object:Gem::Requirement
         | 
| 126 144 | 
             
                none: false
         | 
| 127 | 
            -
                requirements: | 
| 128 | 
            -
                - -  | 
| 129 | 
            -
                  - !ruby/object:Gem::Version | 
| 145 | 
            +
                requirements:
         | 
| 146 | 
            +
                - - ! '>='
         | 
| 147 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 130 148 | 
             
                    version: 1.0.0
         | 
| 131 149 | 
             
              type: :development
         | 
| 132 150 | 
             
              prerelease: false
         | 
| 133 | 
            -
              version_requirements: * | 
| 134 | 
            -
            - !ruby/object:Gem::Dependency | 
| 151 | 
            +
              version_requirements: *2157255620
         | 
| 152 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 135 153 | 
             
              name: hoe
         | 
| 136 | 
            -
              requirement: & | 
| 154 | 
            +
              requirement: &2157255160 !ruby/object:Gem::Requirement
         | 
| 137 155 | 
             
                none: false
         | 
| 138 | 
            -
                requirements: | 
| 156 | 
            +
                requirements:
         | 
| 139 157 | 
             
                - - ~>
         | 
| 140 | 
            -
                  - !ruby/object:Gem::Version | 
| 141 | 
            -
                    version:  | 
| 158 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            +
                    version: '2.16'
         | 
| 142 160 | 
             
              type: :development
         | 
| 143 161 | 
             
              prerelease: false
         | 
| 144 | 
            -
              version_requirements: * | 
| 145 | 
            -
            description:  | 
| 146 | 
            -
            email: | 
| 162 | 
            +
              version_requirements: *2157255160
         | 
| 163 | 
            +
            description: Concise way of filtering model attributes in Rails.
         | 
| 164 | 
            +
            email:
         | 
| 147 165 | 
             
            - pw@gnu.org
         | 
| 148 166 | 
             
            executables: []
         | 
| 149 | 
            -
             | 
| 150 167 | 
             
            extensions: []
         | 
| 151 | 
            -
             | 
| 152 | 
            -
            extra_rdoc_files: 
         | 
| 168 | 
            +
            extra_rdoc_files:
         | 
| 153 169 | 
             
            - Manifest.txt
         | 
| 154 170 | 
             
            - README.rdoc
         | 
| 155 | 
            -
            files: | 
| 171 | 
            +
            files:
         | 
| 156 172 | 
             
            - .rspec
         | 
| 157 173 | 
             
            - .yardopts
         | 
| 158 174 | 
             
            - ChangeLog
         | 
| 175 | 
            +
            - Gemfile
         | 
| 176 | 
            +
            - Gemfile.lock
         | 
| 159 177 | 
             
            - LGPL-LICENSE
         | 
| 160 178 | 
             
            - Manifest.txt
         | 
| 161 179 | 
             
            - README.rdoc
         | 
| @@ -181,35 +199,32 @@ files: | |
| 181 199 | 
             
            - .gemtest
         | 
| 182 200 | 
             
            homepage: https://rubygems.org/gems/attribute-filters/
         | 
| 183 201 | 
             
            licenses: []
         | 
| 184 | 
            -
             | 
| 185 202 | 
             
            post_install_message: 
         | 
| 186 | 
            -
            rdoc_options: | 
| 203 | 
            +
            rdoc_options:
         | 
| 187 204 | 
             
            - --title
         | 
| 188 205 | 
             
            - Attribute::Filters Documentation
         | 
| 189 206 | 
             
            - --quiet
         | 
| 190 | 
            -
            require_paths: | 
| 207 | 
            +
            require_paths:
         | 
| 191 208 | 
             
            - lib
         | 
| 192 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 209 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 193 210 | 
             
              none: false
         | 
| 194 | 
            -
              requirements: | 
| 195 | 
            -
              - -  | 
| 196 | 
            -
                - !ruby/object:Gem::Version | 
| 197 | 
            -
                   | 
| 198 | 
            -
                  segments: | 
| 211 | 
            +
              requirements:
         | 
| 212 | 
            +
              - - ! '>='
         | 
| 213 | 
            +
                - !ruby/object:Gem::Version
         | 
| 214 | 
            +
                  version: '0'
         | 
| 215 | 
            +
                  segments:
         | 
| 199 216 | 
             
                  - 0
         | 
| 200 | 
            -
                   | 
| 201 | 
            -
            required_rubygems_version: !ruby/object:Gem::Requirement | 
| 217 | 
            +
                  hash: 1917410771860677924
         | 
| 218 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 202 219 | 
             
              none: false
         | 
| 203 | 
            -
              requirements: | 
| 204 | 
            -
              - -  | 
| 205 | 
            -
                - !ruby/object:Gem::Version | 
| 206 | 
            -
                  version:  | 
| 220 | 
            +
              requirements:
         | 
| 221 | 
            +
              - - ! '>='
         | 
| 222 | 
            +
                - !ruby/object:Gem::Version
         | 
| 223 | 
            +
                  version: '0'
         | 
| 207 224 | 
             
            requirements: []
         | 
| 208 | 
            -
             | 
| 209 225 | 
             
            rubyforge_project: attribute-filters
         | 
| 210 226 | 
             
            rubygems_version: 1.8.11
         | 
| 211 227 | 
             
            signing_key: 
         | 
| 212 228 | 
             
            specification_version: 3
         | 
| 213 229 | 
             
            summary: Concise way of filtering model attributes in Rails
         | 
| 214 230 | 
             
            test_files: []
         | 
| 215 | 
            -
             | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |