chanko_ab 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|