flipper-sequel 0.21.0.rc1 → 0.22.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.
- checksums.yaml +4 -4
- data/docs/sequel/README.md +1 -3
- data/examples/sequel/basic.rb +4 -6
- data/examples/sequel/internals.rb +10 -12
- data/lib/flipper/adapters/sequel.rb +20 -6
- data/lib/flipper/version.rb +1 -1
- data/lib/flipper-sequel.rb +0 -8
- data/spec/flipper/adapters/sequel_spec.rb +1 -1
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5ce2ffdf3cf436c77fb8ba03a3c029d29de3fb4f9c957432802d44b1eaf8da9e
         | 
| 4 | 
            +
              data.tar.gz: 9326d3430684b8b0b6be6f01548d7cbbf392a8f3ed12715c12fb4ea00ce36174
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5d1031cbbdcabe73ef9feac30dd00d7ccfcb955abb24283f615bf19d70265c86cd0f2bc6eeeea96abb0028eee1a8848ea15699dceeb421a927a725156f03d7fb
         | 
| 7 | 
            +
              data.tar.gz: 9acf7c0ea2ec149ea78334f305c2ff704d95207b0dc63fe708038fb94a92422917546b9f95c9a338316c2eb8da5792f4ae7ba7c2cd23e533532299a730441766
         | 
    
        data/docs/sequel/README.md
    CHANGED
    
    
    
        data/examples/sequel/basic.rb
    CHANGED
    
    | @@ -7,20 +7,18 @@ require 'generators/flipper/templates/sequel_migration' | |
| 7 7 | 
             
            CreateFlipperTablesSequel.new(Sequel::Model.db).up
         | 
| 8 8 |  | 
| 9 9 | 
             
            require 'flipper/adapters/sequel'
         | 
| 10 | 
            -
            adapter = Flipper::Adapters::Sequel.new
         | 
| 11 | 
            -
            flipper = Flipper.new(adapter)
         | 
| 12 10 |  | 
| 13 | 
            -
             | 
| 11 | 
            +
            Flipper[:stats].enable
         | 
| 14 12 |  | 
| 15 | 
            -
            if  | 
| 13 | 
            +
            if Flipper[:stats].enabled?
         | 
| 16 14 | 
             
              puts "Enabled!"
         | 
| 17 15 | 
             
            else
         | 
| 18 16 | 
             
              puts "Disabled!"
         | 
| 19 17 | 
             
            end
         | 
| 20 18 |  | 
| 21 | 
            -
             | 
| 19 | 
            +
            Flipper[:stats].disable
         | 
| 22 20 |  | 
| 23 | 
            -
            if  | 
| 21 | 
            +
            if Flipper[:stats].enabled?
         | 
| 24 22 | 
             
              puts "Enabled!"
         | 
| 25 23 | 
             
            else
         | 
| 26 24 | 
             
              puts "Disabled!"
         | 
| @@ -7,8 +7,6 @@ require 'generators/flipper/templates/sequel_migration' | |
| 7 7 | 
             
            CreateFlipperTablesSequel.new(Sequel::Model.db).up
         | 
| 8 8 |  | 
| 9 9 | 
             
            require 'flipper/adapters/sequel'
         | 
| 10 | 
            -
            adapter = Flipper::Adapters::Sequel.new
         | 
| 11 | 
            -
            flipper = Flipper.new(adapter)
         | 
| 12 10 |  | 
| 13 11 | 
             
            # Register a few groups.
         | 
| 14 12 | 
             
            Flipper.register(:admins) { |thing| thing.admin? }
         | 
| @@ -17,16 +15,16 @@ Flipper.register(:early_access) { |thing| thing.early_access? } | |
| 17 15 | 
             
            # Create a user class that has flipper_id instance method.
         | 
| 18 16 | 
             
            User = Struct.new(:flipper_id)
         | 
| 19 17 |  | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 18 | 
            +
            Flipper[:stats].enable
         | 
| 19 | 
            +
            Flipper[:stats].enable_group :admins
         | 
| 20 | 
            +
            Flipper[:stats].enable_group :early_access
         | 
| 21 | 
            +
            Flipper[:stats].enable_actor User.new('25')
         | 
| 22 | 
            +
            Flipper[:stats].enable_actor User.new('90')
         | 
| 23 | 
            +
            Flipper[:stats].enable_actor User.new('180')
         | 
| 24 | 
            +
            Flipper[:stats].enable_percentage_of_time 15
         | 
| 25 | 
            +
            Flipper[:stats].enable_percentage_of_actors 45
         | 
| 28 26 |  | 
| 29 | 
            -
             | 
| 27 | 
            +
            Flipper[:search].enable
         | 
| 30 28 |  | 
| 31 29 | 
             
            puts 'all rows in features table'
         | 
| 32 30 | 
             
            pp Flipper::Adapters::Sequel::Feature.all
         | 
| @@ -48,7 +46,7 @@ pp Flipper::Adapters::Sequel::Gate.all | |
| 48 46 | 
             
            puts
         | 
| 49 47 |  | 
| 50 48 | 
             
            puts 'flipper get of feature'
         | 
| 51 | 
            -
            pp adapter.get( | 
| 49 | 
            +
            pp Flipper.adapter.get(Flipper[:stats])
         | 
| 52 50 | 
             
            # {:boolean=>"true",
         | 
| 53 51 | 
             
            #  :groups=>#<Set: {"admins", "early_access"}>,
         | 
| 54 52 | 
             
            #  :actors=>#<Set: {"180", "25", "90"}>,
         | 
| @@ -97,11 +97,15 @@ module Flipper | |
| 97 97 | 
             
                  end
         | 
| 98 98 |  | 
| 99 99 | 
             
                  def get_all
         | 
| 100 | 
            -
                     | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 104 | 
            -
             | 
| 100 | 
            +
                    feature_table = @feature_class.table_name.to_sym
         | 
| 101 | 
            +
                    gate_table = @gate_class.table_name.to_sym
         | 
| 102 | 
            +
                    features_sql = @feature_class.select(:key.qualify(feature_table).as(:feature_key))
         | 
| 103 | 
            +
                        .select_append(:key.qualify(gate_table))
         | 
| 104 | 
            +
                        .select_append(:value.qualify(gate_table))
         | 
| 105 | 
            +
                        .left_join(@gate_class.table_name.to_sym, feature_key: :key)
         | 
| 106 | 
            +
                        .sql
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                    db_gates = @gate_class.fetch(features_sql).to_a
         | 
| 105 109 | 
             
                    grouped_db_gates = db_gates.group_by(&:feature_key)
         | 
| 106 110 | 
             
                    result = Hash.new { |hash, key| hash[key] = default_config }
         | 
| 107 111 | 
             
                    features = grouped_db_gates.keys.map { |key| Flipper::Feature.new(key, self) }
         | 
| @@ -175,7 +179,11 @@ module Flipper | |
| 175 179 | 
             
                    @gate_class.db.transaction do
         | 
| 176 180 | 
             
                      clear(feature) if clear_feature
         | 
| 177 181 | 
             
                      @gate_class.where(args).delete
         | 
| 178 | 
            -
             | 
| 182 | 
            +
             | 
| 183 | 
            +
                      begin
         | 
| 184 | 
            +
                        @gate_class.create(gate_attrs(feature, gate, thing))
         | 
| 185 | 
            +
                      rescue ::Sequel::UniqueConstraintViolation
         | 
| 186 | 
            +
                      end
         | 
| 179 187 | 
             
                    end
         | 
| 180 188 | 
             
                  end
         | 
| 181 189 |  | 
| @@ -210,3 +218,9 @@ module Flipper | |
| 210 218 | 
             
                end
         | 
| 211 219 | 
             
              end
         | 
| 212 220 | 
             
            end
         | 
| 221 | 
            +
             | 
| 222 | 
            +
            Flipper.configure do |config|
         | 
| 223 | 
            +
              config.adapter { Flipper::Adapters::Sequel.new }
         | 
| 224 | 
            +
            end
         | 
| 225 | 
            +
             | 
| 226 | 
            +
            Sequel::Model.include Flipper::Identifier
         | 
    
        data/lib/flipper/version.rb
    CHANGED
    
    
    
        data/lib/flipper-sequel.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: flipper-sequel
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.22.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - John Nunemaker
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-08-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: flipper
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 0. | 
| 19 | 
            +
                    version: 0.22.1
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 0. | 
| 26 | 
            +
                    version: 0.22.1
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: sequel
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -77,9 +77,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 77 77 | 
             
                  version: '0'
         | 
| 78 78 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
              requirements:
         | 
| 80 | 
            -
              - - " | 
| 80 | 
            +
              - - ">="
         | 
| 81 81 | 
             
                - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                  version:  | 
| 82 | 
            +
                  version: '0'
         | 
| 83 83 | 
             
            requirements: []
         | 
| 84 84 | 
             
            rubygems_version: 3.0.3
         | 
| 85 85 | 
             
            signing_key: 
         |