contextualizer 0.0.3 → 0.0.6
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 +5 -5
- data/.github/workflows/tests.yml +28 -0
- data/Gemfile +0 -2
- data/README.md +1 -1
- data/contextualizer.gemspec +7 -4
- data/lib/contextualizer/callable.rb +2 -1
- data/lib/contextualizer/version.rb +1 -1
- data/lib/contextualizer.rb +11 -5
- metadata +40 -13
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e4e8936f90745f3f7bcc2d55b9ed9ea80a3701f88bcbac199761d5e8c198bbb2
|
|
4
|
+
data.tar.gz: 8a52995c0569c7d8271b5aff3623cce888ee1eea8f3d9e809612eb2fe53ba3da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ddf97150f7a70d16b157ec0e6ae7f9fb4c5a042aa84ada0a5a585ba94f137eb3537200ce96e52134402482e9719bb9361d3b8878df8315148ce197cdf570b480
|
|
7
|
+
data.tar.gz: f72fead3e5c3013f1fa27d8b5948f9c531079cd253496a8da74f6d161c6e25a6eaa12f636f6f0b36ad3514e91236b834dced720ca4b7b9263097ae72bc6d6e64
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
ruby-version: [2.6, 2.7, 3.0, 3.1]
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v2
|
|
17
|
+
- name: Set up Ruby
|
|
18
|
+
uses: ruby/setup-ruby@v1
|
|
19
|
+
with:
|
|
20
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
21
|
+
bundler-cache: true
|
|
22
|
+
- name: Run tests
|
|
23
|
+
run: bundle exec rake
|
|
24
|
+
- name: Coveralls GitHub Action
|
|
25
|
+
if: matrix.ruby-version == '3.1'
|
|
26
|
+
uses: coverallsapp/github-action@1.1.3
|
|
27
|
+
with:
|
|
28
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Contextualizer
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/rb/contextualizer)
|
|
4
|
-
[](https://github.com/oabloh/contextualizer/actions?query=workflow%3ATests)
|
|
5
5
|
[](https://coveralls.io/github/pabloh/contextualizer?branch=master)
|
|
6
6
|
|
|
7
7
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/contextualizer`. To experiment with that code, run `bin/console` for an interactive prompt.
|
data/contextualizer.gemspec
CHANGED
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
|
11
11
|
|
|
12
12
|
spec.summary = %q{Allows to define context values for your objects}
|
|
13
13
|
spec.description = %q{Allows to define context values for your objects}
|
|
14
|
-
|
|
14
|
+
spec.homepage = "http://github.com/pabloh/contextualizer"
|
|
15
15
|
spec.license = "MIT"
|
|
16
16
|
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
@@ -23,10 +23,13 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
|
|
24
24
|
spec.required_ruby_version = ">= 2.4.0"
|
|
25
25
|
|
|
26
|
-
spec.
|
|
27
|
-
|
|
26
|
+
spec.add_dependency "ruby2_keywords"
|
|
27
|
+
|
|
28
|
+
spec.add_development_dependency "bundler", "~> 2.3.7"
|
|
29
|
+
spec.add_development_dependency "rake", "~> 12.3.3"
|
|
28
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
29
|
-
spec.add_development_dependency "
|
|
31
|
+
spec.add_development_dependency "simplecov-lcov", '~> 0.8.0'
|
|
32
|
+
spec.add_development_dependency "simplecov"
|
|
30
33
|
spec.add_development_dependency "pry"
|
|
31
34
|
spec.add_development_dependency "pry-byebug"
|
|
32
35
|
end
|
data/lib/contextualizer.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
require 'contextualizer/version'
|
|
2
2
|
|
|
3
3
|
module Contextualizer
|
|
4
|
+
OPTIONAL = Object.new.freeze
|
|
5
|
+
|
|
4
6
|
def context(*attrs, **opt_attrs)
|
|
5
7
|
unless @__setter
|
|
6
8
|
@__setter = Setter.new
|
|
@@ -37,19 +39,23 @@ module Contextualizer
|
|
|
37
39
|
|
|
38
40
|
class Setter
|
|
39
41
|
def initialize
|
|
40
|
-
@
|
|
42
|
+
@mandatory, @with_default, @optional = [], {}, []
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def add_attrs(*attrs, **opt_attrs)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
optional, with_default = opt_attrs.partition { |_, v| v == OPTIONAL }.map(&:to_h)
|
|
47
|
+
|
|
48
|
+
@mandatory |= attrs
|
|
49
|
+
@optional |= optional.keys
|
|
50
|
+
@with_default.merge!(with_default)
|
|
46
51
|
end
|
|
47
52
|
|
|
48
53
|
def set(obj, args)
|
|
49
54
|
context = obj.context&.dup || {}
|
|
50
55
|
|
|
51
|
-
@
|
|
52
|
-
@
|
|
56
|
+
@with_default.each { |key, default| context[key] = args.fetch(key, default) }
|
|
57
|
+
@optional.each { |key| context[key] = args[key] if args.key?(key) }
|
|
58
|
+
@mandatory.each do |key|
|
|
53
59
|
fail ":#{key} was not found in scope" unless args.key?(key)
|
|
54
60
|
context[key] = args[key]
|
|
55
61
|
end
|
metadata
CHANGED
|
@@ -1,43 +1,57 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: contextualizer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pablo Herrero
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-05-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: ruby2_keywords
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
-
type: :
|
|
19
|
+
version: '0'
|
|
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:
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: bundler
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 2.3.7
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 2.3.7
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: rake
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
30
44
|
requirements:
|
|
31
45
|
- - "~>"
|
|
32
46
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
47
|
+
version: 12.3.3
|
|
34
48
|
type: :development
|
|
35
49
|
prerelease: false
|
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
51
|
requirements:
|
|
38
52
|
- - "~>"
|
|
39
53
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
54
|
+
version: 12.3.3
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: rspec
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -53,7 +67,21 @@ dependencies:
|
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
68
|
version: '3.0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
70
|
+
name: simplecov-lcov
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.8.0
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.8.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: simplecov
|
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
|
58
86
|
requirements:
|
|
59
87
|
- - ">="
|
|
@@ -101,9 +129,9 @@ executables: []
|
|
|
101
129
|
extensions: []
|
|
102
130
|
extra_rdoc_files: []
|
|
103
131
|
files:
|
|
132
|
+
- ".github/workflows/tests.yml"
|
|
104
133
|
- ".gitignore"
|
|
105
134
|
- ".rspec"
|
|
106
|
-
- ".travis.yml"
|
|
107
135
|
- Gemfile
|
|
108
136
|
- LICENSE.txt
|
|
109
137
|
- README.md
|
|
@@ -116,7 +144,7 @@ files:
|
|
|
116
144
|
- lib/contextualizer.rb
|
|
117
145
|
- lib/contextualizer/callable.rb
|
|
118
146
|
- lib/contextualizer/version.rb
|
|
119
|
-
homepage:
|
|
147
|
+
homepage: http://github.com/pabloh/contextualizer
|
|
120
148
|
licenses:
|
|
121
149
|
- MIT
|
|
122
150
|
metadata: {}
|
|
@@ -135,8 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
135
163
|
- !ruby/object:Gem::Version
|
|
136
164
|
version: '0'
|
|
137
165
|
requirements: []
|
|
138
|
-
|
|
139
|
-
rubygems_version: 2.6.9
|
|
166
|
+
rubygems_version: 3.0.9
|
|
140
167
|
signing_key:
|
|
141
168
|
specification_version: 4
|
|
142
169
|
summary: Allows to define context values for your objects
|