chanko_ab 0.2.0 → 0.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 +13 -0
- data/Gemfile.lock +1 -1
- data/README.md +10 -1
- data/lib/chanko_ab/logic/base.rb +3 -3
- data/lib/chanko_ab/split_test.rb +17 -1
- data/lib/chanko_ab/test.rb +8 -4
- data/lib/chanko_ab/version.rb +1 -1
- data/lib/chanko_ab.rb +13 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 669ae5ace4fc737c1712ff414847634c912c82148ef545286ea989e6be4984a0
|
4
|
+
data.tar.gz: 6b64b0e029598252785701d324c006e29793e430261a1df250a901ae5f49d9d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca89fbde6694dc77c8df037196496a58a81a915b0db22976d20fb8d09ce2ed82affd391d488cfe7538908b0839a6c9a0f89ab2c5b14f7639fedd13c4c9e8a448
|
7
|
+
data.tar.gz: 37fa07a8175de2913f99de64968fa51cfa0491712c585a8bcd0384bdf2c1592f2790a48118bfe6a9b3545a2149cada1a0c14af4d8c574660633d342e7deb2b15
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
# Change Log
|
2
|
+
## [0.3.3] (2022-09-07)
|
3
|
+
### Added
|
4
|
+
- Support for selectable identifier for each experiment.
|
5
|
+
### Changed
|
6
|
+
- ChankoAb.set_identifier has been renamed renamed to ChankoAb.set_default_identifier
|
7
|
+
|
8
|
+
## [0.2.2] (2022-09-07)
|
9
|
+
### Fixed
|
10
|
+
- Fix codes for tests
|
11
|
+
|
12
|
+
## [0.2.1] (2022-09-07)
|
13
|
+
### Fixed
|
14
|
+
- Always load constants for testing to prevent unforeseen accident
|
2
15
|
|
3
16
|
## [0.2.0] (2022-09-07)
|
4
17
|
### Added
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -24,7 +24,7 @@ ChankoAb.set_logging do |name|
|
|
24
24
|
Rails.logger.debug(name)
|
25
25
|
end
|
26
26
|
|
27
|
-
ChankoAb.
|
27
|
+
ChankoAb.set_default_identifier do
|
28
28
|
cookies[:identifier]
|
29
29
|
end
|
30
30
|
```
|
@@ -53,6 +53,15 @@ module MySplitTest
|
|
53
53
|
end
|
54
54
|
```
|
55
55
|
|
56
|
+
### Switch using identifier
|
57
|
+
```ruby
|
58
|
+
module MySplitTest
|
59
|
+
...
|
60
|
+
split_test.identifier { cookies[:unique_id] }
|
61
|
+
...
|
62
|
+
end
|
63
|
+
```
|
64
|
+
|
56
65
|
### Use HexIdentifier if identifier is composed by hex.
|
57
66
|
```ruby
|
58
67
|
module HexMySplitTest
|
data/lib/chanko_ab/logic/base.rb
CHANGED
@@ -20,7 +20,7 @@ module ChankoAb
|
|
20
20
|
|
21
21
|
def validate!
|
22
22
|
unless Rails.env.production?
|
23
|
-
raise "Argument should be a divisor of #{just_patterns_size.max}, but #{split_size} is given."
|
23
|
+
raise "Argument should be a divisor of #{just_patterns_size.max}, but #{split_size} is given." unless just_patterns_size.member?(split_size)
|
24
24
|
raise "Identifier is blank" if @identifier.blank?
|
25
25
|
raise "Identifier is too short" if @identifier.size < (@using_index + 1)
|
26
26
|
raise 'Too large pattern size' if patterns.size >= just_pattern_sizes.max
|
@@ -32,7 +32,7 @@ module ChankoAb
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def should_run_default?
|
35
|
-
return true
|
35
|
+
return true unless item
|
36
36
|
@identifier.blank?
|
37
37
|
end
|
38
38
|
|
@@ -61,7 +61,7 @@ module ChankoAb
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def item
|
64
|
-
if Rails.env.test? && ChankoAb::Test.overwritten?(@split_test.unit)
|
64
|
+
if (Rails.env.test? || ChankoAb.env == :test) && ChankoAb::Test.overwritten?(@split_test.unit)
|
65
65
|
return pattern_by_overwritten
|
66
66
|
else
|
67
67
|
index = decide_pattern_index
|
data/lib/chanko_ab/split_test.rb
CHANGED
@@ -23,6 +23,18 @@ module ChankoAb
|
|
23
23
|
@unit
|
24
24
|
end
|
25
25
|
|
26
|
+
def identifier(&block)
|
27
|
+
@identifier_proc = block
|
28
|
+
end
|
29
|
+
|
30
|
+
def identifier_proc
|
31
|
+
@identifier_proc
|
32
|
+
end
|
33
|
+
|
34
|
+
def reset_identifier
|
35
|
+
@identifier_proc = nil
|
36
|
+
end
|
37
|
+
|
26
38
|
def logic(logic)
|
27
39
|
@logic = logic
|
28
40
|
end
|
@@ -85,7 +97,11 @@ module ChankoAb
|
|
85
97
|
end
|
86
98
|
|
87
99
|
shared(:identifier) do
|
88
|
-
self.instance_eval(&
|
100
|
+
self.instance_eval(&identifier_proc)
|
101
|
+
end
|
102
|
+
|
103
|
+
shared(:identifier_proc) do
|
104
|
+
__split_test__.identifier_proc || ChankoAb.default_identifier_proc
|
89
105
|
end
|
90
106
|
end
|
91
107
|
end
|
data/lib/chanko_ab/test.rb
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
module ChankoAb
|
2
2
|
module Test
|
3
|
+
def self.overwritten_names
|
4
|
+
@overwritten_names ||= {}
|
5
|
+
@overwritten_names
|
6
|
+
end
|
7
|
+
|
3
8
|
def self.overwritten_name(klass)
|
4
|
-
|
9
|
+
self.overwritten_names[klass]
|
5
10
|
end
|
6
11
|
|
7
12
|
def self.overwrite(klass, name)
|
8
|
-
|
9
|
-
@overwritten_names[klass] = name
|
13
|
+
self.overwritten_names[klass] = name
|
10
14
|
end
|
11
15
|
|
12
16
|
def self.overwritten?(klass)
|
13
|
-
|
17
|
+
!!self.overwritten_names[klass]
|
14
18
|
end
|
15
19
|
|
16
20
|
def self.reset!
|
data/lib/chanko_ab/version.rb
CHANGED
data/lib/chanko_ab.rb
CHANGED
@@ -1,10 +1,19 @@
|
|
1
1
|
require "chanko_ab/version"
|
2
|
+
require "chanko_ab/test"
|
2
3
|
require "chanko_ab/split_test"
|
3
4
|
require "chanko_ab/logic/base"
|
4
5
|
require "chanko_ab/logic/number_identifier"
|
5
6
|
require "chanko_ab/logic/hex_identifier"
|
6
7
|
|
7
8
|
module ChankoAb
|
9
|
+
def self.env=(env)
|
10
|
+
@env = env
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.env
|
14
|
+
@env
|
15
|
+
end
|
16
|
+
|
8
17
|
module ClassMethods
|
9
18
|
def split_test
|
10
19
|
@split_test ||= SplitTest.new(self)
|
@@ -19,12 +28,12 @@ module ChankoAb
|
|
19
28
|
@logging_proc = block
|
20
29
|
end
|
21
30
|
|
22
|
-
def self.
|
23
|
-
@
|
31
|
+
def self.set_default_identifier(&block)
|
32
|
+
@default_identifier_proc = block
|
24
33
|
end
|
25
34
|
|
26
|
-
def self.
|
27
|
-
@
|
35
|
+
def self.default_identifier_proc
|
36
|
+
@default_identifier_proc
|
28
37
|
end
|
29
38
|
|
30
39
|
def self.default_logic
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chanko_ab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- morita shingo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chanko
|