feature 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +6 -0
 - data/README.md +6 -4
 - data/Rakefile +1 -1
 - data/lib/feature/repository/yaml_repository.rb +13 -4
 - data/lib/feature/testing.rb +28 -12
 - data/spec/feature/feature_spec.rb +2 -4
 - data/spec/feature/redis_repository_spec.rb +0 -1
 - data/spec/feature/testing_spec.rb +91 -14
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 19c7e68f322b7bd8ecc077e38301ca81f0101b98
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6494be8fbf82513c8bc3584f5b79ee64db13dce8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: e2552d77a0338981f11f30520712345a6f0e1b45f827748004fcf1fe373e6f0304826fd433bdadf2e572812705d96c7b5bf9d4e9f254d57803016c182b5414dc
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 0b0208a6710fd63b2fdecc397a16895ad52cfc814465bc42ef2d49292e7bd242035794c652f803b13914fd0ef1d72b31f57980b61facaad31154b4f03bc06b97
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,9 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## 1.3.0 (2015-06-12)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Support testing with multiple features (stevenwilkin)
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Bugfix when using auto_refresh and testing support (javidjamae)
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Fixing an issue with Feature.run_with_activated if @active_features is nil (tommyh)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       1 
7 
     | 
    
         
             
            ## 1.2.0 (2014-10-28)
         
     | 
| 
       2 
8 
     | 
    
         | 
| 
       3 
9 
     | 
    
         
             
            * add Support for auto-refresh of feature data (javidjamae)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -13,9 +13,11 @@ The feature toggle functionality has to be configured by feature repositories. A 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            With this approach Feature is higly configurable and not bound to a specific kind of configuration.
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            **NOTE:** Ruby 1. 
     | 
| 
      
 16 
     | 
    
         
            +
            **NOTE:** Ruby 1.9 is supported explicitly only until version 1.2.0. Later version may require 2+.
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            **NOTE:**  
     | 
| 
      
 18 
     | 
    
         
            +
            **NOTE:** Ruby 1.8 is only supported until version 0.7.0. Later Versions require Ruby 1.9+.
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            **NOTE:** Using feature with ActiveRecord and Rails 3 MAY work. Version 1.1.0 supports Rails 3.
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
       20 
22 
     | 
    
         
             
            ## Installation
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
         @@ -52,11 +54,11 @@ With this approach Feature is higly configurable and not bound to a specific kin 
     | 
|
| 
       52 
54 
     | 
    
         | 
| 
       53 
55 
     | 
    
         
             
                    require 'feature/testing'
         
     | 
| 
       54 
56 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                    Feature.run_with_activated(: 
     | 
| 
      
 57 
     | 
    
         
            +
                    Feature.run_with_activated(:feature) do
         
     | 
| 
       56 
58 
     | 
    
         
             
                      # your test code
         
     | 
| 
       57 
59 
     | 
    
         
             
                    end
         
     | 
| 
       58 
60 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
                    Feature.run_with_deactivated(: 
     | 
| 
      
 61 
     | 
    
         
            +
                    Feature.run_with_deactivated(:feature, :another_feature) do
         
     | 
| 
       60 
62 
     | 
    
         
             
                      # your test code
         
     | 
| 
       61 
63 
     | 
    
         
             
                    end
         
     | 
| 
       62 
64 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    
| 
         @@ -71,14 +71,23 @@ module Feature 
     | 
|
| 
       71 
71 
     | 
    
         | 
| 
       72 
72 
     | 
    
         
             
                    return [] unless data['features']
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
       75 
     | 
    
         
            -
                    unless invalid_value.empty?
         
     | 
| 
       76 
     | 
    
         
            -
                      fail ArgumentError, "#{invalid_value.first} is not allowed value in config, use true/false"
         
     | 
| 
       77 
     | 
    
         
            -
                    end
         
     | 
| 
      
 74 
     | 
    
         
            +
                    check_valid_feature_data(data['features'])
         
     | 
| 
       78 
75 
     | 
    
         | 
| 
       79 
76 
     | 
    
         
             
                    data['features'].keys.select { |key| data['features'][key] }.map(&:to_sym)
         
     | 
| 
       80 
77 
     | 
    
         
             
                  end
         
     | 
| 
       81 
78 
     | 
    
         
             
                  private :get_active_features
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                  # Checks for valid values in given feature hash
         
     | 
| 
      
 81 
     | 
    
         
            +
                  #
         
     | 
| 
      
 82 
     | 
    
         
            +
                  # @param features [Hash] feature hash
         
     | 
| 
      
 83 
     | 
    
         
            +
                  #
         
     | 
| 
      
 84 
     | 
    
         
            +
                  def check_valid_feature_data(features)
         
     | 
| 
      
 85 
     | 
    
         
            +
                    features.values.each do |value|
         
     | 
| 
      
 86 
     | 
    
         
            +
                      unless [true, false].include?(value)
         
     | 
| 
      
 87 
     | 
    
         
            +
                        fail ArgumentError, "#{value} is not allowed value in config, use true/false"
         
     | 
| 
      
 88 
     | 
    
         
            +
                      end
         
     | 
| 
      
 89 
     | 
    
         
            +
                    end
         
     | 
| 
      
 90 
     | 
    
         
            +
                  end
         
     | 
| 
       82 
91 
     | 
    
         
             
                end
         
     | 
| 
       83 
92 
     | 
    
         
             
              end
         
     | 
| 
       84 
93 
     | 
    
         
             
            end
         
     | 
    
        data/lib/feature/testing.rb
    CHANGED
    
    | 
         @@ -7,31 +7,47 @@ require 'feature' 
     | 
|
| 
       7 
7 
     | 
    
         
             
            # To enable Feature testing capabilities do:
         
     | 
| 
       8 
8 
     | 
    
         
             
            #   require 'feature/testing'
         
     | 
| 
       9 
9 
     | 
    
         
             
            module Feature
         
     | 
| 
       10 
     | 
    
         
            -
              # Execute the code block with the given  
     | 
| 
      
 10 
     | 
    
         
            +
              # Execute the code block with the given features active
         
     | 
| 
       11 
11 
     | 
    
         
             
              #
         
     | 
| 
       12 
12 
     | 
    
         
             
              # Example usage:
         
     | 
| 
       13 
     | 
    
         
            -
              #   Feature.run_with_activated(:feature) do
         
     | 
| 
      
 13 
     | 
    
         
            +
              #   Feature.run_with_activated(:feature, :another_feature) do
         
     | 
| 
       14 
14 
     | 
    
         
             
              #     # your test code here
         
     | 
| 
       15 
15 
     | 
    
         
             
              #   end
         
     | 
| 
       16 
     | 
    
         
            -
              def self.run_with_activated( 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
              def self.run_with_activated(*features, &blk)
         
     | 
| 
      
 17 
     | 
    
         
            +
                with_stashed_config do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @active_features.concat(features).uniq!
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @auto_refresh = false
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @perform_initial_refresh = false
         
     | 
| 
      
 21 
     | 
    
         
            +
                  blk.call
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
       22 
23 
     | 
    
         
             
              end
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
              # Execute the code block with the given  
     | 
| 
      
 25 
     | 
    
         
            +
              # Execute the code block with the given features deactive
         
     | 
| 
       25 
26 
     | 
    
         
             
              #
         
     | 
| 
       26 
27 
     | 
    
         
             
              # Example usage:
         
     | 
| 
       27 
     | 
    
         
            -
              #   Feature.run_with_deactivated(:feature) do
         
     | 
| 
      
 28 
     | 
    
         
            +
              #   Feature.run_with_deactivated(:feature, :another_feature) do
         
     | 
| 
       28 
29 
     | 
    
         
             
              #     # your test code here
         
     | 
| 
       29 
30 
     | 
    
         
             
              #   end
         
     | 
| 
       30 
     | 
    
         
            -
              def self.run_with_deactivated( 
     | 
| 
      
 31 
     | 
    
         
            +
              def self.run_with_deactivated(*features, &blk)
         
     | 
| 
      
 32 
     | 
    
         
            +
                with_stashed_config do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @active_features -= features
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @auto_refresh = false
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @perform_initial_refresh = false
         
     | 
| 
      
 36 
     | 
    
         
            +
                  blk.call
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              # Execute the given code block and store + restore the feature
         
     | 
| 
      
 41 
     | 
    
         
            +
              # configuration before/after the execution
         
     | 
| 
      
 42 
     | 
    
         
            +
              def self.with_stashed_config
         
     | 
| 
      
 43 
     | 
    
         
            +
                @active_features = [] if @active_features.nil?
         
     | 
| 
       31 
44 
     | 
    
         
             
                old_features = @active_features.dup
         
     | 
| 
       32 
     | 
    
         
            -
                @ 
     | 
| 
      
 45 
     | 
    
         
            +
                old_auto_refresh = @auto_refresh
         
     | 
| 
      
 46 
     | 
    
         
            +
                old_perform_initial_refresh = @perform_initial_refresh
         
     | 
| 
       33 
47 
     | 
    
         
             
                yield
         
     | 
| 
       34 
48 
     | 
    
         
             
              ensure
         
     | 
| 
       35 
49 
     | 
    
         
             
                @active_features = old_features
         
     | 
| 
      
 50 
     | 
    
         
            +
                @auto_refresh = old_auto_refresh
         
     | 
| 
      
 51 
     | 
    
         
            +
                @perform_initial_refresh = old_perform_initial_refresh
         
     | 
| 
       36 
52 
     | 
    
         
             
              end
         
     | 
| 
       37 
53 
     | 
    
         
             
            end
         
     | 
| 
         @@ -58,8 +58,7 @@ describe Feature do 
     | 
|
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
                  it 'should reload active features on first call only' do
         
     | 
| 
       60 
60 
     | 
    
         
             
                    @repository.add_active_feature(:feature_a)
         
     | 
| 
       61 
     | 
    
         
            -
                    expect(@repository).to receive(:active_features). 
     | 
| 
       62 
     | 
    
         
            -
                                       .and_return(@repository.active_features)
         
     | 
| 
      
 61 
     | 
    
         
            +
                    expect(@repository).to receive(:active_features).once.and_return(@repository.active_features)
         
     | 
| 
       63 
62 
     | 
    
         
             
                    Feature.active?(:feature_a)
         
     | 
| 
       64 
63 
     | 
    
         
             
                    Feature.active?(:feature_a)
         
     | 
| 
       65 
64 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -71,8 +70,7 @@ describe Feature do 
     | 
|
| 
       71 
70 
     | 
    
         
             
                  end
         
     | 
| 
       72 
71 
     | 
    
         
             
                  it 'should reload active features on every call' do
         
     | 
| 
       73 
72 
     | 
    
         
             
                    @repository.add_active_feature(:feature_a)
         
     | 
| 
       74 
     | 
    
         
            -
                    expect(@repository).to receive(:active_features). 
     | 
| 
       75 
     | 
    
         
            -
                                       .and_return(@repository.active_features)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    expect(@repository).to receive(:active_features).twice.and_return(@repository.active_features)
         
     | 
| 
       76 
74 
     | 
    
         
             
                    Feature.active?(:feature_a)
         
     | 
| 
       77 
75 
     | 
    
         
             
                    Feature.active?(:feature_a)
         
     | 
| 
       78 
76 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,30 +1,107 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'feature/testing'
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
            shared_examples 'a testable repository' do
         
     | 
| 
      
 5 
     | 
    
         
            +
              before do
         
     | 
| 
      
 6 
     | 
    
         
            +
                expect(Feature.active?(:active_feature)).to be_truthy
         
     | 
| 
      
 7 
     | 
    
         
            +
                expect(Feature.active?(:another_active_feature)).to be_truthy
         
     | 
| 
      
 8 
     | 
    
         
            +
                expect(Feature.active?(:deactive_feature)).to be_falsey
         
     | 
| 
      
 9 
     | 
    
         
            +
                expect(Feature.active?(:another_deactive_feature)).to be_falsey
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              after do
         
     | 
| 
      
 13 
     | 
    
         
            +
                expect(Feature.active?(:active_feature)).to be_truthy
         
     | 
| 
      
 14 
     | 
    
         
            +
                expect(Feature.active?(:another_active_feature)).to be_truthy
         
     | 
| 
      
 15 
     | 
    
         
            +
                expect(Feature.active?(:deactive_feature)).to be_falsey
         
     | 
| 
      
 16 
     | 
    
         
            +
                expect(Feature.active?(:another_deactive_feature)).to be_falsey
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              describe '.run_with_activated' do
         
     | 
| 
      
 20 
     | 
    
         
            +
                it 'activates a deactivated feature' do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  Feature.run_with_activated(:deactive_feature) do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    expect(Feature.active?(:deactive_feature)).to be_truthy
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                it 'activates multiple deactivated features' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  Feature.run_with_activated(:deactive_feature, :another_deactive_feature) do
         
     | 
| 
      
 28 
     | 
    
         
            +
                    expect(Feature.active?(:deactive_feature)).to be_truthy
         
     | 
| 
      
 29 
     | 
    
         
            +
                    expect(Feature.active?(:another_deactive_feature)).to be_truthy
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              describe '.run_with_deactivated' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                it 'deactivates an activated feature' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  Feature.run_with_deactivated(:active_feature) do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    expect(Feature.active?(:active_feature)).to be_falsey
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                it 'deactivates multiple activated features' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  Feature.run_with_deactivated(:active_feature, :another_active_feature) do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    expect(Feature.active?(:active_feature)).to be_falsey
         
     | 
| 
      
 44 
     | 
    
         
            +
                    expect(Feature.active?(:another_active_feature)).to be_falsey
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
       4 
50 
     | 
    
         
             
            describe 'Feature testing support' do
         
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
      
 51 
     | 
    
         
            +
              context 'without auto_refresh' do
         
     | 
| 
      
 52 
     | 
    
         
            +
                before(:all) do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  repository = Feature::Repository::SimpleRepository.new
         
     | 
| 
      
 54 
     | 
    
         
            +
                  repository.add_active_feature(:active_feature)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  repository.add_active_feature(:another_active_feature)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  Feature.set_repository(repository)
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                it_behaves_like 'a testable repository'
         
     | 
| 
       9 
60 
     | 
    
         
             
              end
         
     | 
| 
       10 
61 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
               
     | 
| 
       12 
     | 
    
         
            -
                 
     | 
| 
      
 62 
     | 
    
         
            +
              context 'with auto_refresh' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                before(:all) do
         
     | 
| 
      
 64 
     | 
    
         
            +
                  repository = Feature::Repository::SimpleRepository.new
         
     | 
| 
      
 65 
     | 
    
         
            +
                  repository.add_active_feature(:active_feature)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  repository.add_active_feature(:another_active_feature)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  Feature.set_repository(repository, true)
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
       13 
69 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
                it_behaves_like 'a testable repository'
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                describe '.run_with_deactivated' do
         
     | 
| 
      
 73 
     | 
    
         
            +
                  it 'should disable perform_initial_refresh for the first call to Feature.active?' do
         
     | 
| 
      
 74 
     | 
    
         
            +
                    Feature.run_with_activated(:deactive_feature) do
         
     | 
| 
      
 75 
     | 
    
         
            +
                      expect(Feature.active?(:deactive_feature)).to be_truthy
         
     | 
| 
      
 76 
     | 
    
         
            +
                    end
         
     | 
| 
      
 77 
     | 
    
         
            +
                  end
         
     | 
| 
       16 
78 
     | 
    
         
             
                end
         
     | 
| 
       17 
79 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                 
     | 
| 
      
 80 
     | 
    
         
            +
                describe '.run_with_deactivated' do
         
     | 
| 
      
 81 
     | 
    
         
            +
                  it 'should disable perform_initial_refresh for the first call to Feature.active?' do
         
     | 
| 
      
 82 
     | 
    
         
            +
                    Feature.run_with_deactivated(:active_feature) do
         
     | 
| 
      
 83 
     | 
    
         
            +
                      expect(Feature.active?(:active_feature)).to be_falsey
         
     | 
| 
      
 84 
     | 
    
         
            +
                    end
         
     | 
| 
      
 85 
     | 
    
         
            +
                  end
         
     | 
| 
      
 86 
     | 
    
         
            +
                end
         
     | 
| 
       19 
87 
     | 
    
         
             
              end
         
     | 
| 
       20 
88 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
               
     | 
| 
       22 
     | 
    
         
            -
                 
     | 
| 
      
 89 
     | 
    
         
            +
              context 'with no features activated' do
         
     | 
| 
      
 90 
     | 
    
         
            +
                before(:all) do
         
     | 
| 
      
 91 
     | 
    
         
            +
                  repository = Feature::Repository::SimpleRepository.new
         
     | 
| 
      
 92 
     | 
    
         
            +
                  Feature.set_repository(repository)
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
       23 
94 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                 
     | 
| 
       25 
     | 
    
         
            -
                   
     | 
| 
      
 95 
     | 
    
         
            +
                describe '.run_with_activated' do
         
     | 
| 
      
 96 
     | 
    
         
            +
                  it 'should not raise an error' do
         
     | 
| 
      
 97 
     | 
    
         
            +
                    expect { Feature.run_with_activated(:foo) {} }.to_not raise_error
         
     | 
| 
      
 98 
     | 
    
         
            +
                  end
         
     | 
| 
       26 
99 
     | 
    
         
             
                end
         
     | 
| 
       27 
100 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                 
     | 
| 
      
 101 
     | 
    
         
            +
                describe '.run_with_deactivated' do
         
     | 
| 
      
 102 
     | 
    
         
            +
                  it 'should not raise an error' do
         
     | 
| 
      
 103 
     | 
    
         
            +
                    expect { Feature.run_with_deactivated(:foo) {} }.to_not raise_error
         
     | 
| 
      
 104 
     | 
    
         
            +
                  end
         
     | 
| 
      
 105 
     | 
    
         
            +
                end
         
     | 
| 
       29 
106 
     | 
    
         
             
              end
         
     | 
| 
       30 
107 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: feature
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Markus Gerdes
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-06-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            email: github@mgsnova.de
         
     | 
| 
         @@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       60 
60 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       61 
61 
     | 
    
         
             
            requirements: []
         
     | 
| 
       62 
62 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       63 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 63 
     | 
    
         
            +
            rubygems_version: 2.4.8
         
     | 
| 
       64 
64 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       65 
65 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       66 
66 
     | 
    
         
             
            summary: Feature Toggle library for ruby
         
     |