abmeter 0.2.2 → 0.2.4
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/README.md +18 -0
- data/lib/abmeter/core/assignment_config/experiment.rb +3 -1
- data/lib/abmeter/core/assignment_config/variant.rb +1 -1
- data/lib/abmeter/core/utils/num_utils.rb +1 -1
- data/lib/abmeter/core.rb +0 -1
- data/lib/abmeter/version.rb +1 -1
- data/lib/abmeter.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3de305080a86006a94e25c375c97e3f00130132ff44e4f1c51d7fb8719d0a18f
|
|
4
|
+
data.tar.gz: 2c318d9008614bb7b7ad561c7587cecbf009fa8e68331d6fc35974b8b1cd1ccd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dc3b45f859392cb95ca923aa89f813b876ddb6d086852da649c8a7d7c53ab2f7c0564761d0eefb19525578395882af92d4af101e5de8e1210a2f26decbd12188
|
|
7
|
+
data.tar.gz: b4ac66c59f3d601e3f7b88bcdcbc0b64ac8daf7a48c0d96ed8d76dad0a5804644f53bbef3f848de6676f57ee18caa626bd0efd9035ba9db634bcc506091f727f
|
data/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
A simple A/B testing client library for Ruby applications.
|
|
4
4
|
|
|
5
|
+
## Supported Ruby versions
|
|
6
|
+
|
|
7
|
+
`abmeter` supports **Ruby 3.2 and newer**.
|
|
8
|
+
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
7
11
|
Add this line to your application's Gemfile:
|
|
@@ -34,6 +38,20 @@ user = ABMeter.user(id: current_user.id, email: current_user.email)
|
|
|
34
38
|
ABMeter.event(`user_purchases_plan`, user, {plan: purchased_plan.name, price: purchased_plan.price})
|
|
35
39
|
```
|
|
36
40
|
|
|
41
|
+
## Development
|
|
42
|
+
|
|
43
|
+
The gem uses [mise](https://mise.jdx.dev/) to pin Ruby (`mise.toml`). Pure-Ruby — no Postgres / Redis required.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
brew install mise # one-time
|
|
47
|
+
mise install # one-time: install pinned Ruby
|
|
48
|
+
bundle install
|
|
49
|
+
bundle exec rspec # tests
|
|
50
|
+
bundle exec rubocop # lint (if .rubocop.yml present)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The gem is tested against Ruby 3.2, 3.3, 3.4, and 4.0.
|
|
54
|
+
|
|
37
55
|
## License
|
|
38
56
|
|
|
39
57
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
@@ -8,7 +8,9 @@ module ABMeter
|
|
|
8
8
|
|
|
9
9
|
attr_reader :id, :range, :audience_variants, :space_id, :salt, :space_salt
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
# The six keyword args are this value object's assignment inputs; a
|
|
12
|
+
# params object would only add indirection for a plain data holder.
|
|
13
|
+
def initialize(id:, range:, audience_variants:, space_id:, salt:, space_salt:) # rubocop:disable Metrics/ParameterLists
|
|
12
14
|
@id = id
|
|
13
15
|
@range = range
|
|
14
16
|
@audience_variants = audience_variants
|
|
@@ -16,7 +16,7 @@ module ABMeter
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def self.from_json(variant)
|
|
19
|
-
parameter_values = variant[:parameter_values].
|
|
19
|
+
parameter_values = variant[:parameter_values].to_h { |pv| [pv[:slug], pv[:value]] }
|
|
20
20
|
Variant.new(id: variant[:id], parameter_values: parameter_values)
|
|
21
21
|
end
|
|
22
22
|
|
data/lib/abmeter/core.rb
CHANGED
data/lib/abmeter/version.rb
CHANGED
data/lib/abmeter.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
2
2
|
require 'digest'
|
|
3
|
-
require 'ostruct'
|
|
4
3
|
|
|
5
4
|
# Core (zero-dependency assignment logic)
|
|
6
5
|
require_relative 'abmeter/core'
|
|
@@ -17,6 +16,7 @@ require_relative 'abmeter/error_safety'
|
|
|
17
16
|
module ABMeter
|
|
18
17
|
class << self
|
|
19
18
|
include ErrorSafety
|
|
19
|
+
|
|
20
20
|
def config
|
|
21
21
|
raise 'ABMeter not configured. Call ABMeter.configure { |config| ... } first.' unless @config
|
|
22
22
|
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: abmeter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ABMeter
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-06-13 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: activesupport
|
|
@@ -77,6 +78,7 @@ metadata:
|
|
|
77
78
|
homepage_uri: https://github.com/abmeter/abmeter-ruby
|
|
78
79
|
source_code_uri: https://github.com/abmeter/abmeter-ruby
|
|
79
80
|
rubygems_mfa_required: 'true'
|
|
81
|
+
post_install_message:
|
|
80
82
|
rdoc_options: []
|
|
81
83
|
require_paths:
|
|
82
84
|
- lib
|
|
@@ -91,7 +93,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
91
93
|
- !ruby/object:Gem::Version
|
|
92
94
|
version: '0'
|
|
93
95
|
requirements: []
|
|
94
|
-
rubygems_version: 3.
|
|
96
|
+
rubygems_version: 3.5.22
|
|
97
|
+
signing_key:
|
|
95
98
|
specification_version: 4
|
|
96
99
|
summary: ABMeter SDK for feature flags and A/B testing
|
|
97
100
|
test_files: []
|