this_feature 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a2e4f072c94b68b9a9e4675ac663f4d6f451d1d7c854e457079d539bd16184e
4
- data.tar.gz: 6bbda6b3a7257f0a2e1ebd13784c3a78d4eb4ba3340727b99aa9d9df90753ea3
3
+ metadata.gz: 1038dc52ca2faa768e02dd16ac68f71551cad5405932575de6ffbb0be648896d
4
+ data.tar.gz: 9c930c96c3f67226b1a3eef72661320cb77cc275d0ac0fb69f8bd2342eddecf6
5
5
  SHA512:
6
- metadata.gz: 0c0e69e00abb16fc2e781b4fdeb63664af7705280095c1f0a12cb660c5195b886463195e0830c91382474f62cd5c9c0b777aeddb14b494f48040cc2522d238c9
7
- data.tar.gz: 6b1e05ba21a6409f413ba5b11167f1c17e561a9c2989edde58a1b2f50d1c368c4b76fde8153db4588757d6e4bd93a0f9e36d2fa4874e7190fa8c4347699e9c53
6
+ metadata.gz: 96c1151cc8dd148de9c5ba09e62cb1071b6cf18ce168145f07fa27cc4cf0075690deecd3326c6529966c74463bb088112bb8dd5bb5ad61d089a9a528318928af
7
+ data.tar.gz: b9c7ce61ee74dd0dbde08de215e72b8965fb9816a9a88cdfc0d68baa651db933d10801301a9ecb2f5de588d469870f2b479edc04a199f4aee71f94a28a0839d3
@@ -0,0 +1,19 @@
1
+ on: [push]
2
+
3
+ name: Ruby linter (Rubocop)
4
+
5
+ jobs:
6
+ linter_rubocop:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - name: Checkout
11
+ uses: actions/checkout@main
12
+
13
+ - name: Set up Ruby
14
+ uses: ruby/setup-ruby@v1
15
+ with:
16
+ bundler-cache: true
17
+
18
+ - name: Run Rubocop
19
+ run: bundle exec rubocop --parallel
@@ -1,34 +1,19 @@
1
1
  on: [push]
2
2
 
3
- name: Test
3
+ name: Tests
4
4
 
5
5
  jobs:
6
- run:
6
+ test:
7
7
  runs-on: ubuntu-latest
8
8
 
9
9
  steps:
10
10
  - name: Checkout
11
- uses: actions/checkout@master
11
+ uses: actions/checkout@main
12
12
 
13
13
  - name: Set up Ruby
14
- uses: actions/setup-ruby@v1
14
+ uses: ruby/setup-ruby@master
15
15
  with:
16
- ruby-version: '2.7.x'
17
16
  bundler-cache: true
18
17
 
19
- - name: Cache bundled gems
20
- uses: actions/cache@v2
21
- with:
22
- path: vendor/bundle
23
- key: ${{ runner.os }}-gems-${{ hashFiles('Gemfile.lock') }}
24
- restore-keys: |
25
- ${{ runner.os }}-gems-
26
-
27
- - name: Install Ruby gems
28
- run: |
29
- bundle config path vendor/bundle
30
- bundle install
31
-
32
- - name: Run Rspec
33
- run: |
34
- bundle exec rspec
18
+ - name: Run RSpec
19
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -1,6 +1,8 @@
1
1
  # sqlite3 database for tests, just called 'memory' for some reason
2
2
  memory
3
3
 
4
+ **/.DS_Store
5
+ *.gem
4
6
  /.bundle/
5
7
  /.yardoc
6
8
  /_yardoc/
data/.rubocop.yml ADDED
@@ -0,0 +1,32 @@
1
+ require:
2
+ - rubocop-md
3
+ - rubocop-performance
4
+ - rubocop-rake
5
+ - rubocop-rspec
6
+ - rubocop-thread_safety
7
+
8
+ inherit_from: .rubocop_todo.yml
9
+
10
+ AllCops:
11
+ NewCops: enable
12
+
13
+ RSpec/NestedGroups:
14
+ Max: 4
15
+
16
+ Style/Documentation:
17
+ Enabled: false
18
+
19
+ Style/FrozenStringLiteralComment:
20
+ EnforcedStyle: never
21
+
22
+ Style/HashSyntax:
23
+ EnforcedStyle: ruby19
24
+ EnforcedShorthandSyntax: never
25
+
26
+ Style/WordArray:
27
+ Exclude:
28
+ - spec/support/schema.rb
29
+
30
+ Style/NumericLiterals:
31
+ Exclude:
32
+ - 'spec/support/schema.rb'
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,100 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2023-05-31 05:59:25 UTC using RuboCop version 1.51.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
11
+ Lint/EmptyBlock:
12
+ Exclude:
13
+ - 'spec/this_feature_spec.rb'
14
+
15
+ # Offense count: 3
16
+ Lint/MissingSuper:
17
+ Exclude:
18
+ - 'lib/this_feature/adapters/flipper.rb'
19
+ - 'lib/this_feature/adapters/memory.rb'
20
+ - 'lib/this_feature/adapters/split_io.rb'
21
+
22
+ # Offense count: 23
23
+ # This cop supports safe autocorrection (--autocorrect).
24
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
25
+ Lint/UnusedMethodArgument:
26
+ Exclude:
27
+ - '**/*.md'
28
+ - '**/*.markdown'
29
+ - 'lib/this_feature/adapters/base.rb'
30
+ - 'lib/this_feature/adapters/flipper.rb'
31
+ - 'lib/this_feature/adapters/memory.rb'
32
+
33
+ # Offense count: 1
34
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
35
+ Metrics/AbcSize:
36
+ Max: 19
37
+
38
+ # Offense count: 1
39
+ RSpec/AnyInstance:
40
+ Exclude:
41
+ - 'spec/this_feature/adapters/split_io_adapter_spec.rb'
42
+
43
+ # Offense count: 10
44
+ # Configuration parameters: CountAsOne.
45
+ RSpec/ExampleLength:
46
+ Max: 12
47
+
48
+ # Offense count: 4
49
+ # Configuration parameters: Max.
50
+ RSpec/IndexedLet:
51
+ Exclude:
52
+ - 'spec/this_feature/adapters/memory_adapter_spec.rb'
53
+
54
+ # Offense count: 3
55
+ # Configuration parameters: .
56
+ # SupportedStyles: have_received, receive
57
+ RSpec/MessageSpies:
58
+ EnforcedStyle: receive
59
+
60
+ # Offense count: 23
61
+ RSpec/MultipleExpectations:
62
+ Max: 12
63
+
64
+ # Offense count: 72
65
+ # Configuration parameters: AllowSubject.
66
+ RSpec/MultipleMemoizedHelpers:
67
+ Max: 10
68
+
69
+ # Offense count: 9
70
+ # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
71
+ # SupportedStyles: always, named_only
72
+ RSpec/NamedSubject:
73
+ Exclude:
74
+ - 'spec/this_feature/adapters/flipper_adapter_spec.rb'
75
+ - 'spec/this_feature/adapters/memory_adapter_spec.rb'
76
+ - 'spec/this_feature_spec.rb'
77
+
78
+ # Offense count: 1
79
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
80
+ RSpec/VerifiedDoubles:
81
+ Exclude:
82
+ - 'spec/this_feature_spec.rb'
83
+
84
+ # Offense count: 3
85
+ Style/MultilineBlockChain:
86
+ Exclude:
87
+ - 'spec/this_feature/adapters/base_adapter_spec.rb'
88
+ - 'spec/this_feature_spec.rb'
89
+
90
+ # Offense count: 15
91
+ Style/OpenStructUse:
92
+ Exclude:
93
+ - 'spec/this_feature/adapters/flipper_adapter_spec.rb'
94
+ - 'spec/this_feature/adapters/memory_adapter_spec.rb'
95
+ - 'spec/this_feature/adapters/split_io_adapter_spec.rb'
96
+
97
+ # Offense count: 2
98
+ ThreadSafety/InstanceVariableInClassMethod:
99
+ Exclude:
100
+ - 'lib/this_feature.rb'
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/Gemfile CHANGED
@@ -1,5 +1,18 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- gemspec name: "this_feature"
4
- gemspec name: "this_feature-adapters-flipper"
5
- gemspec name: "this_feature-adapters-split_io"
3
+ gemspec name: 'this_feature'
4
+ gemspec name: 'this_feature-adapters-flipper'
5
+ gemspec name: 'this_feature-adapters-split_io'
6
+
7
+ gem 'bundler'
8
+ gem 'database_cleaner-active_record'
9
+ gem 'gem-release'
10
+ gem 'rake'
11
+ gem 'rspec'
12
+ gem 'rubocop'
13
+ gem 'rubocop-md'
14
+ gem 'rubocop-performance'
15
+ gem 'rubocop-rake'
16
+ gem 'rubocop-rspec'
17
+ gem 'rubocop-thread_safety'
18
+ gem 'sqlite3'
data/Gemfile.lock CHANGED
@@ -1,37 +1,36 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- this_feature (0.8.0)
5
- this_feature-adapters-flipper (0.8.0)
6
- flipper (~> 0.16)
7
- flipper-active_record (~> 0.16)
4
+ this_feature (0.9.0)
5
+ this_feature-adapters-flipper (0.9.0)
6
+ flipper
7
+ flipper-active_record
8
8
  this_feature
9
- this_feature-adapters-split_io (0.8.0)
9
+ this_feature-adapters-split_io (0.9.0)
10
10
  splitclient-rb
11
11
  this_feature
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- activemodel (7.0.3.1)
17
- activesupport (= 7.0.3.1)
18
- activerecord (7.0.3.1)
19
- activemodel (= 7.0.3.1)
20
- activesupport (= 7.0.3.1)
21
- activesupport (7.0.3.1)
16
+ activemodel (7.0.5)
17
+ activesupport (= 7.0.5)
18
+ activerecord (7.0.5)
19
+ activemodel (= 7.0.5)
20
+ activesupport (= 7.0.5)
21
+ activesupport (7.0.5)
22
22
  concurrent-ruby (~> 1.0, >= 1.0.2)
23
23
  i18n (>= 1.6, < 2)
24
24
  minitest (>= 5.1)
25
25
  tzinfo (~> 2.0)
26
- byebug (11.1.2)
27
- coderay (1.1.2)
28
- concurrent-ruby (1.1.10)
26
+ ast (2.4.2)
27
+ concurrent-ruby (1.2.2)
29
28
  connection_pool (2.2.5)
30
29
  database_cleaner (1.8.4)
31
30
  database_cleaner-active_record (1.8.0)
32
31
  activerecord
33
32
  database_cleaner (~> 1.8.0)
34
- diff-lcs (1.3)
33
+ diff-lcs (1.5.0)
35
34
  faraday (1.7.0)
36
35
  faraday-em_http (~> 1.0)
37
36
  faraday-em_synchrony (~> 1.0)
@@ -51,43 +50,73 @@ GEM
51
50
  faraday-net_http_persistent (1.2.0)
52
51
  faraday-patron (1.0.0)
53
52
  faraday-rack (1.0.0)
54
- flipper (0.25.0)
55
- flipper-active_record (0.25.0)
53
+ flipper (0.28.0)
54
+ concurrent-ruby (< 2)
55
+ flipper-active_record (0.28.0)
56
56
  activerecord (>= 4.2, < 8)
57
- flipper (~> 0.25.0)
57
+ flipper (~> 0.28.0)
58
58
  gem-release (2.2.1)
59
59
  hitimes (1.3.1)
60
- i18n (1.11.0)
60
+ i18n (1.13.0)
61
61
  concurrent-ruby (~> 1.0)
62
62
  json (2.5.1)
63
63
  jwt (2.2.3)
64
64
  lru_redux (1.1.0)
65
- method_source (1.0.0)
66
- minitest (5.16.2)
65
+ minitest (5.18.0)
67
66
  multipart-post (2.1.1)
68
67
  net-http-persistent (4.0.1)
69
68
  connection_pool (~> 2.2)
70
- pry (0.13.1)
71
- coderay (~> 1.1)
72
- method_source (~> 1.0)
73
- pry-byebug (3.9.0)
74
- byebug (~> 11.0)
75
- pry (~> 0.13.0)
76
- rake (13.0.1)
69
+ parallel (1.23.0)
70
+ parser (3.2.2.1)
71
+ ast (~> 2.4.1)
72
+ rainbow (3.1.1)
73
+ rake (13.0.6)
77
74
  redis (4.4.0)
78
- rspec (3.9.0)
79
- rspec-core (~> 3.9.0)
80
- rspec-expectations (~> 3.9.0)
81
- rspec-mocks (~> 3.9.0)
82
- rspec-core (3.9.1)
83
- rspec-support (~> 3.9.1)
84
- rspec-expectations (3.9.1)
75
+ regexp_parser (2.8.0)
76
+ rexml (3.2.5)
77
+ rspec (3.12.0)
78
+ rspec-core (~> 3.12.0)
79
+ rspec-expectations (~> 3.12.0)
80
+ rspec-mocks (~> 3.12.0)
81
+ rspec-core (3.12.2)
82
+ rspec-support (~> 3.12.0)
83
+ rspec-expectations (3.12.3)
85
84
  diff-lcs (>= 1.2.0, < 2.0)
86
- rspec-support (~> 3.9.0)
87
- rspec-mocks (3.9.1)
85
+ rspec-support (~> 3.12.0)
86
+ rspec-mocks (3.12.5)
88
87
  diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.9.0)
90
- rspec-support (3.9.2)
88
+ rspec-support (~> 3.12.0)
89
+ rspec-support (3.12.0)
90
+ rubocop (1.51.0)
91
+ json (~> 2.3)
92
+ parallel (~> 1.10)
93
+ parser (>= 3.2.0.0)
94
+ rainbow (>= 2.2.2, < 4.0)
95
+ regexp_parser (>= 1.8, < 3.0)
96
+ rexml (>= 3.2.5, < 4.0)
97
+ rubocop-ast (>= 1.28.0, < 2.0)
98
+ ruby-progressbar (~> 1.7)
99
+ unicode-display_width (>= 2.4.0, < 3.0)
100
+ rubocop-ast (1.28.1)
101
+ parser (>= 3.2.1.0)
102
+ rubocop-capybara (2.18.0)
103
+ rubocop (~> 1.41)
104
+ rubocop-factory_bot (2.23.1)
105
+ rubocop (~> 1.33)
106
+ rubocop-md (1.2.0)
107
+ rubocop (>= 1.0)
108
+ rubocop-performance (1.18.0)
109
+ rubocop (>= 1.7.0, < 2.0)
110
+ rubocop-ast (>= 0.4.0)
111
+ rubocop-rake (0.6.0)
112
+ rubocop (~> 1.0)
113
+ rubocop-rspec (2.22.0)
114
+ rubocop (~> 1.33)
115
+ rubocop-capybara (~> 2.17)
116
+ rubocop-factory_bot (~> 2.22)
117
+ rubocop-thread_safety (0.5.1)
118
+ rubocop (>= 0.90.0)
119
+ ruby-progressbar (1.13.0)
91
120
  ruby2_keywords (0.0.5)
92
121
  socketry (0.5.1)
93
122
  hitimes (~> 1.2)
@@ -103,23 +132,29 @@ GEM
103
132
  thread_safe (>= 0.3)
104
133
  sqlite3 (1.4.2)
105
134
  thread_safe (0.3.6)
106
- tzinfo (2.0.4)
135
+ tzinfo (2.0.6)
107
136
  concurrent-ruby (~> 1.0)
137
+ unicode-display_width (2.4.2)
108
138
 
109
139
  PLATFORMS
110
140
  ruby
111
141
 
112
142
  DEPENDENCIES
113
- bundler (~> 2.0)
143
+ bundler
114
144
  database_cleaner-active_record
115
145
  gem-release
116
- pry-byebug
117
- rake (~> 13.0)
118
- rspec (~> 3.0)
146
+ rake
147
+ rspec
148
+ rubocop
149
+ rubocop-md
150
+ rubocop-performance
151
+ rubocop-rake
152
+ rubocop-rspec
153
+ rubocop-thread_safety
119
154
  sqlite3
120
155
  this_feature!
121
156
  this_feature-adapters-flipper!
122
157
  this_feature-adapters-split_io!
123
158
 
124
159
  BUNDLED WITH
125
- 2.3.21
160
+ 2.4.13
data/README.md CHANGED
@@ -4,9 +4,7 @@
4
4
 
5
5
  ThisFeature can be used to more easily migrate from one feature flag service to another
6
6
 
7
- If your code uses ThisFeature,
8
- then you can just swap out the vendor adapter without needing to do a bunch of find-and-replace in your codebase
9
- from one vendor's class/method signature to the another's.
7
+ If your code uses ThisFeature, then you can just swap out the vendor adapter without needing to do a bunch of find-and-replace in your codebase from one vendor's class/method signature to the another's.
10
8
 
11
9
  ## Installation
12
10
 
@@ -68,7 +66,7 @@ ThisFeature.flag('flag_name', context: context, data: { org_id: 1 }).on?
68
66
 
69
67
  ### Avoid Pitfalls
70
68
 
71
- 1. If your flag has context-specific rules (e.g. on for some orgs, off for others), make sure that the code does a context-specific check. `ThisFeature.flag("flag_name").on?` may return true, while `ThisFeature.flag("flag_name", context: Org.first).on?` would return false.
69
+ 1. If your flag has context-specific rules (e.g. on for some orgs, off for others), make sure that the code does a context-specific check. `ThisFeature.flag("flag_name").on?` may return true, while `ThisFeature.flag("flag_name", context: Org.first).on?` would return false.
72
70
  2. Related to the previous bullet point, if you are checking whether a flag is "globally enabled" (and thus may be removed from the codebase), do not just use `ThisFeature.flag("flag_name").on?`, it won't tell you the whole story. Go to the vendor console and check whether there are context-specific rules enabled.
73
71
 
74
72
  ## Available Adapters
@@ -103,6 +101,3 @@ To write a new adapter, check the [Guide](./docs/writing_an_adapter.md).
103
101
  ## License
104
102
 
105
103
  ThisFeature is released under the [MIT License](https://choosealicense.com/licenses/mit).
106
-
107
-
108
-
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/bin/console CHANGED
@@ -1,14 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "this_feature"
3
+ require 'bundler/setup'
4
+ require 'this_feature'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
9
+ require 'irb'
14
10
  IRB.start(__FILE__)
data/docs/flipper.md CHANGED
@@ -3,7 +3,7 @@
3
3
  ## Installation
4
4
 
5
5
  ```ruby
6
- gem 'this_feature-adapters-flipper
6
+ gem 'this_feature-adapters-flipper'
7
7
  ```
8
8
 
9
9
  ## Configuration
data/docs/memory.md CHANGED
@@ -24,7 +24,7 @@ in test suites.
24
24
  This adapter is included with the core gem:
25
25
 
26
26
  ```ruby
27
- gem 'this_feature
27
+ gem 'this_feature'
28
28
  ```
29
29
 
30
30
  ## Configuration
@@ -50,7 +50,7 @@ For example:
50
50
  # of a context object (e.g. imagine this module is included onto User)
51
51
  module FeatureFlaggable
52
52
  def this_feature_id
53
- "#{self.class}-#{self.id}"
53
+ "#{self.class}-#{id}"
54
54
  end
55
55
  end
56
56
 
data/docs/splitio.md CHANGED
@@ -3,7 +3,7 @@
3
3
  ## Installation
4
4
 
5
5
  ```ruby
6
- gem 'this_feature-adapters-split-io
6
+ gem 'this_feature-adapters-split-io'
7
7
  ```
8
8
 
9
9
  ## Configuration
@@ -39,7 +39,7 @@ attributes to the `data` hash. To take advantage of this, the application must
39
39
  set a `base_data_lambda` in the config. An example—
40
40
  ```ruby
41
41
  ThisFeature.configure do |config|
42
- config.base_data_lambda = -> (record) do
42
+ config.base_data_lambda = lambda { |record|
43
43
  case record
44
44
  when Org
45
45
  {
@@ -52,11 +52,11 @@ ThisFeature.configure do |config|
52
52
  org_name: record.org.name,
53
53
  user_email: record.email,
54
54
  user_id: record.id,
55
- user_name: record.name,
55
+ user_name: record.name
56
56
  }
57
57
  end
58
- end
58
+ }
59
59
  end
60
60
  ```
61
61
  Then `ThisFeature.flag("my-flag", record: user).on?` will automatically include
62
- org_id, org_name, user_email, user_id, and user_name in the data attributes.
62
+ org_id, org_name, user_email, user_id, and user_name in the data attributes.
@@ -1,8 +1,8 @@
1
- Look at [lib/this_feature/adapters/base.rb](../lib/this_feature/adapters/base.rb) to see the methods that your class should implement.
1
+ Look at [lib/this_feature/adapters/base.rb](../lib/this_feature/adapters/base.rb) to see the methods that your class should implement.
2
2
 
3
- Make sure your class inherits from `ThisFeature::Adapters::Base` - this is a requirement.
3
+ Make sure your class inherits from `ThisFeature::Adapters::Base` - this is a requirement.
4
4
 
5
- You may define a custom `initialize` method - this isn't used by `this_feature` internals because we require an already-constructed instance to be passed into `ThisFeature.configure`.
5
+ You may define a custom `initialize` method - this isn't used by `this_feature` internals because we require an already-constructed instance to be passed into `ThisFeature.configure`.
6
6
 
7
7
  For an example, look at one of the existing adapters: [lib/this_feature/adapters/](../lib/this_feature/adapters/)
8
8
 
@@ -1,5 +1,5 @@
1
- require "flipper"
2
- require "flipper/adapters/active_record"
1
+ require 'flipper'
2
+ require 'flipper/adapters/active_record'
3
3
 
4
4
  class ThisFeature
5
5
  module Adapters
@@ -1,7 +1,6 @@
1
1
  class ThisFeature
2
2
  module Adapters
3
3
  class Memory < Base
4
-
5
4
  def initialize(context_key_method: nil)
6
5
  @context_key_method = context_key_method
7
6
  end
@@ -5,7 +5,7 @@ class ThisFeature
5
5
  class SplitIo < Base
6
6
  # Used as the context key when none is given. This arg is required by
7
7
  # Split, but it's nice not to have to pass it when the context is empty.
8
- EMPTY_CONTEXT = 'undefined_key'
8
+ EMPTY_CONTEXT = 'undefined_key'.freeze
9
9
 
10
10
  def initialize(client: nil, context_key_method: nil)
11
11
  @client = client || default_split_client
@@ -1,5 +1,5 @@
1
- require_relative './adapters/base.rb'
2
- require_relative './adapters/memory.rb'
1
+ require_relative './adapters/base'
2
+ require_relative './adapters/memory'
3
3
 
4
4
  class ThisFeature
5
5
  module Adapters
@@ -7,10 +7,10 @@ class ThisFeature
7
7
  end
8
8
 
9
9
  def validate_adapters!
10
- raise(NoAdaptersError.new) unless adapters.any?
10
+ raise NoAdaptersError unless adapters.any?
11
11
 
12
12
  adapters.each do |adapter|
13
- raise BadAdapterError.new(adapter) unless adapter.class < Adapters::Base
13
+ raise BadAdapterError, adapter unless adapter.class < Adapters::Base
14
14
  end
15
15
  end
16
16
 
@@ -27,7 +27,7 @@ class ThisFeature
27
27
  end
28
28
 
29
29
  def base_data_lambda
30
- @base_data_lambda ||= -> (record) { {} }
30
+ @base_data_lambda ||= ->(_record) { {} }
31
31
  end
32
32
  end
33
33
  end
@@ -1,10 +1,9 @@
1
1
  class ThisFeature
2
-
3
2
  class Error < StandardError; end
4
3
 
5
4
  class UnimplementedError < Error
6
5
  def initialize(adapter_instance, fn_name)
7
- super("class #{adapter_instance.class.name} doesnt implement method .#{fn_name}")
6
+ super("class #{adapter_instance.class.name} doesn't implement method .#{fn_name}")
8
7
  end
9
8
  end
10
9
 
@@ -16,8 +15,7 @@ class ThisFeature
16
15
 
17
16
  class NoAdaptersError < Error
18
17
  def initialize
19
- super("No adapters configured.")
18
+ super('No adapters configured.')
20
19
  end
21
20
  end
22
-
23
21
  end
@@ -1,3 +1,3 @@
1
1
  class ThisFeature
2
- VERSION = "0.8.0"
2
+ VERSION = '0.9.0'.freeze
3
3
  end