assignable_values 0.8.1 → 0.9.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/.ruby-version +1 -0
- data/.travis.yml +2 -2
- data/Rakefile +10 -12
- data/assignable_values.gemspec +2 -3
- data/lib/assignable_values/active_record/restriction/base.rb +1 -1
- data/lib/assignable_values/active_record/restriction/scalar_attribute.rb +4 -1
- data/lib/assignable_values/version.rb +1 -1
- data/spec/rails-2.3/Gemfile +0 -1
- data/spec/rails-2.3/Gemfile.lock +1 -8
- data/spec/rails-3.0/Gemfile +0 -1
- data/spec/rails-3.0/Gemfile.lock +1 -8
- data/spec/rails-3.2/Gemfile +0 -1
- data/spec/rails-3.2/Gemfile.lock +1 -8
- data/spec/shared/app_root/app/models/song.rb +2 -0
- data/spec/shared/app_root/config/locales/en.yml +3 -0
- data/spec/shared/assignable_values/active_record_spec.rb +26 -0
- metadata +75 -7
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            1.8.7
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -5,22 +5,16 @@ desc 'Default: Run all specs.' | |
| 5 5 | 
             
            task :default => 'all:spec'
         | 
| 6 6 |  | 
| 7 7 |  | 
| 8 | 
            -
            namespace : | 
| 9 | 
            -
             | 
| 10 | 
            -
              desc ' | 
| 11 | 
            -
              task : | 
| 12 | 
            -
              end
         | 
| 8 | 
            +
            namespace :travis do
         | 
| 9 | 
            +
              
         | 
| 10 | 
            +
              desc 'Run tests on Travis CI'
         | 
| 11 | 
            +
              task :run => ['slimgems', 'all:bundle:install', 'all:spec']
         | 
| 13 12 |  | 
| 14 13 | 
             
              desc 'Install slimgems'
         | 
| 15 14 | 
             
              task :slimgems do
         | 
| 16 15 | 
             
                system('gem install slimgems')
         | 
| 17 16 | 
             
              end
         | 
| 18 17 |  | 
| 19 | 
            -
              desc 'Disable rubygems-bundler magic'
         | 
| 20 | 
            -
              task :disable_rubygems_bundler do
         | 
| 21 | 
            -
                ENV['NOEXEC_DISABLE'] = '1'
         | 
| 22 | 
            -
              end
         | 
| 23 | 
            -
             | 
| 24 18 | 
             
            end
         | 
| 25 19 |  | 
| 26 20 | 
             
            namespace :all do
         | 
| @@ -40,14 +34,18 @@ namespace :all do | |
| 40 34 | 
             
                desc "Bundle all spec apps"
         | 
| 41 35 | 
             
                task :install do
         | 
| 42 36 | 
             
                  for_each_directory_of('spec/**/Gemfile') do |directory|
         | 
| 43 | 
            -
                     | 
| 37 | 
            +
                    Bundler.with_clean_env do
         | 
| 38 | 
            +
                      system("cd #{directory} && bundle install")
         | 
| 39 | 
            +
                    end
         | 
| 44 40 | 
             
                  end
         | 
| 45 41 | 
             
                end
         | 
| 46 42 |  | 
| 47 43 | 
             
                desc "Update all gems, or a list of gem given by the GEM environment variable"
         | 
| 48 44 | 
             
                task :update do
         | 
| 49 45 | 
             
                  for_each_directory_of('spec/**/Gemfile') do |directory|
         | 
| 50 | 
            -
                     | 
| 46 | 
            +
                    Bundler.with_clean_env do
         | 
| 47 | 
            +
                      system("cd #{directory} && bundle update #{ENV['GEM']}")
         | 
| 48 | 
            +
                    end
         | 
| 51 49 | 
             
                  end
         | 
| 52 50 | 
             
                end
         | 
| 53 51 |  | 
    
        data/assignable_values.gemspec
    CHANGED
    
    | @@ -11,9 +11,8 @@ Gem::Specification.new do |s| | |
| 11 11 | 
             
              s.description = s.summary
         | 
| 12 12 | 
             
              s.license = 'MIT'
         | 
| 13 13 |  | 
| 14 | 
            -
              s.files         = `git ls-files`.split( | 
| 15 | 
            -
              s.test_files    =  | 
| 16 | 
            -
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 14 | 
            +
              s.files         = `git ls-files`.split($\)
         | 
| 15 | 
            +
              s.test_files    = s.files.grep(%r{^spec/})
         | 
| 17 16 | 
             
              s.require_paths = ["lib"]
         | 
| 18 17 |  | 
| 19 18 | 
             
              s.add_dependency('activerecord')
         | 
    
        data/spec/rails-2.3/Gemfile
    CHANGED
    
    
    
        data/spec/rails-2.3/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: ../..
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                assignable_values (0. | 
| 4 | 
            +
                assignable_values (0.9.0)
         | 
| 5 5 | 
             
                  activerecord
         | 
| 6 6 |  | 
| 7 7 | 
             
            GEM
         | 
| @@ -18,12 +18,6 @@ GEM | |
| 18 18 | 
             
                  activesupport (= 2.3.17)
         | 
| 19 19 | 
             
                activesupport (2.3.17)
         | 
| 20 20 | 
             
                columnize (0.3.6)
         | 
| 21 | 
            -
                debugger (1.6.1)
         | 
| 22 | 
            -
                  columnize (>= 0.3.1)
         | 
| 23 | 
            -
                  debugger-linecache (~> 1.2.0)
         | 
| 24 | 
            -
                  debugger-ruby_core_source (~> 1.2.3)
         | 
| 25 | 
            -
                debugger-linecache (1.2.0)
         | 
| 26 | 
            -
                debugger-ruby_core_source (1.2.3)
         | 
| 27 21 | 
             
                hoe (2.8.0)
         | 
| 28 22 | 
             
                  rake (>= 0.8.7)
         | 
| 29 23 | 
             
                linecache (0.46)
         | 
| @@ -61,7 +55,6 @@ PLATFORMS | |
| 61 55 |  | 
| 62 56 | 
             
            DEPENDENCIES
         | 
| 63 57 | 
             
              assignable_values!
         | 
| 64 | 
            -
              debugger
         | 
| 65 58 | 
             
              hoe (= 2.8.0)
         | 
| 66 59 | 
             
              rails (~> 2.3.10)
         | 
| 67 60 | 
             
              rspec (< 2)
         | 
    
        data/spec/rails-3.0/Gemfile
    CHANGED
    
    
    
        data/spec/rails-3.0/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: ../..
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                assignable_values (0. | 
| 4 | 
            +
                assignable_values (0.9.0)
         | 
| 5 5 | 
             
                  activerecord
         | 
| 6 6 |  | 
| 7 7 | 
             
            GEM
         | 
| @@ -37,12 +37,6 @@ GEM | |
| 37 37 | 
             
                arel (2.0.10)
         | 
| 38 38 | 
             
                builder (2.1.2)
         | 
| 39 39 | 
             
                columnize (0.3.6)
         | 
| 40 | 
            -
                debugger (1.6.1)
         | 
| 41 | 
            -
                  columnize (>= 0.3.1)
         | 
| 42 | 
            -
                  debugger-linecache (~> 1.2.0)
         | 
| 43 | 
            -
                  debugger-ruby_core_source (~> 1.2.3)
         | 
| 44 | 
            -
                debugger-linecache (1.2.0)
         | 
| 45 | 
            -
                debugger-ruby_core_source (1.2.3)
         | 
| 46 40 | 
             
                diff-lcs (1.2.1)
         | 
| 47 41 | 
             
                erubis (2.6.6)
         | 
| 48 42 | 
             
                  abstract (>= 1.0.0)
         | 
| @@ -117,7 +111,6 @@ PLATFORMS | |
| 117 111 |  | 
| 118 112 | 
             
            DEPENDENCIES
         | 
| 119 113 | 
             
              assignable_values!
         | 
| 120 | 
            -
              debugger
         | 
| 121 114 | 
             
              rails (~> 3.0.3)
         | 
| 122 115 | 
             
              rspec
         | 
| 123 116 | 
             
              rspec-rails
         | 
    
        data/spec/rails-3.2/Gemfile
    CHANGED
    
    
    
        data/spec/rails-3.2/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: ../..
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                assignable_values (0. | 
| 4 | 
            +
                assignable_values (0.9.0)
         | 
| 5 5 | 
             
                  activerecord
         | 
| 6 6 |  | 
| 7 7 | 
             
            GEM
         | 
| @@ -37,12 +37,6 @@ GEM | |
| 37 37 | 
             
                arel (3.0.2)
         | 
| 38 38 | 
             
                builder (3.0.4)
         | 
| 39 39 | 
             
                columnize (0.3.6)
         | 
| 40 | 
            -
                debugger (1.6.1)
         | 
| 41 | 
            -
                  columnize (>= 0.3.1)
         | 
| 42 | 
            -
                  debugger-linecache (~> 1.2.0)
         | 
| 43 | 
            -
                  debugger-ruby_core_source (~> 1.2.3)
         | 
| 44 | 
            -
                debugger-linecache (1.2.0)
         | 
| 45 | 
            -
                debugger-ruby_core_source (1.2.3)
         | 
| 46 40 | 
             
                diff-lcs (1.2.1)
         | 
| 47 41 | 
             
                erubis (2.7.0)
         | 
| 48 42 | 
             
                hike (1.2.1)
         | 
| @@ -127,7 +121,6 @@ PLATFORMS | |
| 127 121 |  | 
| 128 122 | 
             
            DEPENDENCIES
         | 
| 129 123 | 
             
              assignable_values!
         | 
| 130 | 
            -
              debugger
         | 
| 131 124 | 
             
              rails (~> 3.2)
         | 
| 132 125 | 
             
              rspec
         | 
| 133 126 | 
             
              rspec-rails
         | 
| @@ -13,6 +13,32 @@ describe AssignableValues::ActiveRecord do | |
| 13 13 | 
             
                  end.to raise_error(AssignableValues::NoValuesGiven)
         | 
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| 16 | 
            +
                context 'when validation virtual attributes' do
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  before :each do
         | 
| 19 | 
            +
                    @klass = Song.disposable_copy do
         | 
| 20 | 
            +
                      assignable_values_for :sub_genre do
         | 
| 21 | 
            +
                        %w[pop rock]
         | 
| 22 | 
            +
                      end
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  it 'should validate that the attribute is allowed' do
         | 
| 27 | 
            +
                    @klass.new(:sub_genre => 'pop').should be_valid
         | 
| 28 | 
            +
                    @klass.new(:sub_genre => 'disallowed value').should_not be_valid
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  it 'should not allow nil for the attribute value' do
         | 
| 32 | 
            +
                    @klass.new(:sub_genre => nil).should_not be_valid
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  it 'should generate a method returning the humanized value' do
         | 
| 36 | 
            +
                    song = @klass.new(:sub_genre => 'pop')
         | 
| 37 | 
            +
                    song.humanized_sub_genre.should == 'Pop music'
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
             | 
| 16 42 | 
             
                context 'when validating scalar attributes' do
         | 
| 17 43 |  | 
| 18 44 | 
             
                  context 'without options' do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: assignable_values
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 59
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0. | 
| 8 | 
            +
              - 9
         | 
| 9 | 
            +
              - 0
         | 
| 10 | 
            +
              version: 0.9.0
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Henning Koch
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date:  | 
| 18 | 
            +
            date: 2014-04-17 00:00:00 +02:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -102,6 +102,7 @@ extra_rdoc_files: [] | |
| 102 102 | 
             
            files: 
         | 
| 103 103 | 
             
            - .gitignore
         | 
| 104 104 | 
             
            - .rspec
         | 
| 105 | 
            +
            - .ruby-version
         | 
| 105 106 | 
             
            - .travis.yml
         | 
| 106 107 | 
             
            - LICENSE
         | 
| 107 108 | 
             
            - README.md
         | 
| @@ -218,5 +219,72 @@ rubygems_version: 1.3.9.5 | |
| 218 219 | 
             
            signing_key: 
         | 
| 219 220 | 
             
            specification_version: 3
         | 
| 220 221 | 
             
            summary: Restrict the values assignable to ActiveRecord attributes or associations. Or enums on steroids.
         | 
| 221 | 
            -
            test_files:  | 
| 222 | 
            -
             | 
| 222 | 
            +
            test_files: 
         | 
| 223 | 
            +
            - spec/rails-2.3/Gemfile
         | 
| 224 | 
            +
            - spec/rails-2.3/Gemfile.lock
         | 
| 225 | 
            +
            - spec/rails-2.3/Rakefile
         | 
| 226 | 
            +
            - spec/rails-2.3/app_root/config/boot.rb
         | 
| 227 | 
            +
            - spec/rails-2.3/app_root/config/database.yml
         | 
| 228 | 
            +
            - spec/rails-2.3/app_root/config/environment.rb
         | 
| 229 | 
            +
            - spec/rails-2.3/app_root/config/environments/test.rb
         | 
| 230 | 
            +
            - spec/rails-2.3/app_root/config/preinitializer.rb
         | 
| 231 | 
            +
            - spec/rails-2.3/app_root/config/routes.rb
         | 
| 232 | 
            +
            - spec/rails-2.3/app_root/lib/console_with_fixtures.rb
         | 
| 233 | 
            +
            - spec/rails-2.3/app_root/log/.gitignore
         | 
| 234 | 
            +
            - spec/rails-2.3/app_root/script/console
         | 
| 235 | 
            +
            - spec/rails-2.3/rcov.opts
         | 
| 236 | 
            +
            - spec/rails-2.3/spec.opts
         | 
| 237 | 
            +
            - spec/rails-2.3/spec/spec_helper.rb
         | 
| 238 | 
            +
            - spec/rails-3.0/.rspec
         | 
| 239 | 
            +
            - spec/rails-3.0/Gemfile
         | 
| 240 | 
            +
            - spec/rails-3.0/Gemfile.lock
         | 
| 241 | 
            +
            - spec/rails-3.0/Rakefile
         | 
| 242 | 
            +
            - spec/rails-3.0/app_root/.gitignore
         | 
| 243 | 
            +
            - spec/rails-3.0/app_root/config/application.rb
         | 
| 244 | 
            +
            - spec/rails-3.0/app_root/config/boot.rb
         | 
| 245 | 
            +
            - spec/rails-3.0/app_root/config/database.yml
         | 
| 246 | 
            +
            - spec/rails-3.0/app_root/config/environment.rb
         | 
| 247 | 
            +
            - spec/rails-3.0/app_root/config/environments/test.rb
         | 
| 248 | 
            +
            - spec/rails-3.0/app_root/config/initializers/backtrace_silencers.rb
         | 
| 249 | 
            +
            - spec/rails-3.0/app_root/config/initializers/inflections.rb
         | 
| 250 | 
            +
            - spec/rails-3.0/app_root/config/initializers/mime_types.rb
         | 
| 251 | 
            +
            - spec/rails-3.0/app_root/config/initializers/secret_token.rb
         | 
| 252 | 
            +
            - spec/rails-3.0/app_root/config/initializers/session_store.rb
         | 
| 253 | 
            +
            - spec/rails-3.0/app_root/config/routes.rb
         | 
| 254 | 
            +
            - spec/rails-3.0/app_root/lib/tasks/.gitkeep
         | 
| 255 | 
            +
            - spec/rails-3.0/app_root/log/.gitkeep
         | 
| 256 | 
            +
            - spec/rails-3.0/app_root/script/rails
         | 
| 257 | 
            +
            - spec/rails-3.0/rcov.opts
         | 
| 258 | 
            +
            - spec/rails-3.0/spec/spec_helper.rb
         | 
| 259 | 
            +
            - spec/rails-3.2/.rspec
         | 
| 260 | 
            +
            - spec/rails-3.2/Gemfile
         | 
| 261 | 
            +
            - spec/rails-3.2/Gemfile.lock
         | 
| 262 | 
            +
            - spec/rails-3.2/Rakefile
         | 
| 263 | 
            +
            - spec/rails-3.2/app_root/.gitignore
         | 
| 264 | 
            +
            - spec/rails-3.2/app_root/config/application.rb
         | 
| 265 | 
            +
            - spec/rails-3.2/app_root/config/boot.rb
         | 
| 266 | 
            +
            - spec/rails-3.2/app_root/config/database.yml
         | 
| 267 | 
            +
            - spec/rails-3.2/app_root/config/environment.rb
         | 
| 268 | 
            +
            - spec/rails-3.2/app_root/config/environments/test.rb
         | 
| 269 | 
            +
            - spec/rails-3.2/app_root/config/initializers/backtrace_silencers.rb
         | 
| 270 | 
            +
            - spec/rails-3.2/app_root/config/initializers/inflections.rb
         | 
| 271 | 
            +
            - spec/rails-3.2/app_root/config/initializers/mime_types.rb
         | 
| 272 | 
            +
            - spec/rails-3.2/app_root/config/initializers/secret_token.rb
         | 
| 273 | 
            +
            - spec/rails-3.2/app_root/config/initializers/session_store.rb
         | 
| 274 | 
            +
            - spec/rails-3.2/app_root/config/routes.rb
         | 
| 275 | 
            +
            - spec/rails-3.2/app_root/lib/tasks/.gitkeep
         | 
| 276 | 
            +
            - spec/rails-3.2/app_root/log/.gitkeep
         | 
| 277 | 
            +
            - spec/rails-3.2/app_root/script/rails
         | 
| 278 | 
            +
            - spec/rails-3.2/rcov.opts
         | 
| 279 | 
            +
            - spec/rails-3.2/spec/spec_helper.rb
         | 
| 280 | 
            +
            - spec/shared/app_root/app/controllers/application_controller.rb
         | 
| 281 | 
            +
            - spec/shared/app_root/app/helpers/application_helper.rb
         | 
| 282 | 
            +
            - spec/shared/app_root/app/models/artist.rb
         | 
| 283 | 
            +
            - spec/shared/app_root/app/models/recording/vinyl.rb
         | 
| 284 | 
            +
            - spec/shared/app_root/app/models/song.rb
         | 
| 285 | 
            +
            - spec/shared/app_root/config/locales/en.yml
         | 
| 286 | 
            +
            - spec/shared/app_root/db/migrate/001_create_artists.rb
         | 
| 287 | 
            +
            - spec/shared/app_root/db/migrate/002_create_songs.rb
         | 
| 288 | 
            +
            - spec/shared/app_root/db/migrate/003_create_recordings.rb
         | 
| 289 | 
            +
            - spec/shared/assignable_values/active_record_spec.rb
         | 
| 290 | 
            +
            - spec/shared/assignable_values/humanized_value_spec.rb
         |