enumerate_it 0.7.10 → 0.7.11
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/Gemfile +1 -1
- data/README.rdoc +8 -0
- data/lib/enumerate_it.rb +8 -1
- data/lib/enumerate_it/version.rb +1 -1
- data/spec/enumerate_it_spec.rb +16 -0
- metadata +8 -8
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | @@ -70,6 +70,14 @@ This will create some nice stuff: | |
| 70 70 |  | 
| 71 71 | 
             
               RelationshipStatus.values_for %w(MARRIED SINGLE) # [2, 1]
         | 
| 72 72 |  | 
| 73 | 
            +
            * You can retrieve the value for a specific enumeration constant:
         | 
| 74 | 
            +
             | 
| 75 | 
            +
               RelationshipStatus.value_for("MARRIED") # 2
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            * You can retrieve the symbol used to declare a specific enumeration value:
         | 
| 78 | 
            +
             | 
| 79 | 
            +
               RelationshipStatus.key_for(RelationshioStatus::MARRIED) # :married
         | 
| 80 | 
            +
             | 
| 73 81 | 
             
            * You can manipulate the hash used to create the enumeration:
         | 
| 74 82 |  | 
| 75 83 | 
             
               RelationshipStatus.enumeration # returns the exact hash used to define the enumeration
         | 
    
        data/lib/enumerate_it.rb
    CHANGED
    
    | @@ -225,6 +225,14 @@ module EnumerateIt | |
| 225 225 | 
             
                  values.map { |v| self.const_get(v.to_sym) }
         | 
| 226 226 | 
             
                end
         | 
| 227 227 |  | 
| 228 | 
            +
                def self.value_for(value)
         | 
| 229 | 
            +
                  self.const_get(value.to_sym)
         | 
| 230 | 
            +
                end
         | 
| 231 | 
            +
             | 
| 232 | 
            +
                def self.key_for(value)
         | 
| 233 | 
            +
                  enumeration.map {|e| e[0] if e[1][0] == value }.compact.first
         | 
| 234 | 
            +
                end
         | 
| 235 | 
            +
             | 
| 228 236 | 
             
                def self.to_range
         | 
| 229 237 | 
             
                  (list.min..list.max)
         | 
| 230 238 | 
             
                end
         | 
| @@ -243,7 +251,6 @@ module EnumerateIt | |
| 243 251 | 
             
                      values_hash[key] = [value, key]
         | 
| 244 252 | 
             
                    end
         | 
| 245 253 | 
             
                  end
         | 
| 246 | 
            -
                  values_hash
         | 
| 247 254 | 
             
                end
         | 
| 248 255 |  | 
| 249 256 | 
             
                def self.register_enumeration(values_hash)
         | 
    
        data/lib/enumerate_it/version.rb
    CHANGED
    
    
    
        data/spec/enumerate_it_spec.rb
    CHANGED
    
    | @@ -251,6 +251,22 @@ describe EnumerateIt::Base do | |
| 251 251 | 
             
                end
         | 
| 252 252 | 
             
              end
         | 
| 253 253 |  | 
| 254 | 
            +
              describe "#value_for" do
         | 
| 255 | 
            +
                it "returns the enumeration's value" do
         | 
| 256 | 
            +
                  TestEnumeration.value_for("VALUE_1").should == TestEnumeration::VALUE_1
         | 
| 257 | 
            +
                end
         | 
| 258 | 
            +
              end
         | 
| 259 | 
            +
             | 
| 260 | 
            +
              describe "#key_for" do
         | 
| 261 | 
            +
                it "returns the key for the given value inside the enumeration" do
         | 
| 262 | 
            +
                  TestEnumeration.key_for(TestEnumeration::VALUE_1).should == :value_1
         | 
| 263 | 
            +
                end
         | 
| 264 | 
            +
             | 
| 265 | 
            +
                it "returns nil if the enumeration does not have the given value" do
         | 
| 266 | 
            +
                  TestEnumeration.key_for("foo").should be_nil
         | 
| 267 | 
            +
                end
         | 
| 268 | 
            +
              end
         | 
| 269 | 
            +
             | 
| 254 270 | 
             
              context 'associate values with a list' do
         | 
| 255 271 | 
             
                it "creates constants for each enumeration value" do
         | 
| 256 272 | 
             
                  TestEnumerationWithList::FIRST.should == "first"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: enumerate_it
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.7. | 
| 4 | 
            +
              version: 0.7.11
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2012-02-07 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &2172840600 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: 2.3.2
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *2172840600
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: rspec
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &2172840100 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: 2.5.0
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *2172840100
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: activerecord
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &2172839640 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: 3.0.5
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *2172839640
         | 
| 47 47 | 
             
            description: Have a legacy database and need some enumerations in your models to match
         | 
| 48 48 | 
             
              those stupid '4 rows/2 columns' tables with foreign keys and stop doing joins just
         | 
| 49 49 | 
             
              to fetch a simple description? Or maybe use some integers instead of strings as
         |