contextualizer 0.0.3 → 0.0.6

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
- SHA1:
3
- metadata.gz: 656da6e97d5a4805a96b5aae76332fd738c9727a
4
- data.tar.gz: 0ec330dd1f6919269230eda301084792ac83be30
2
+ SHA256:
3
+ metadata.gz: e4e8936f90745f3f7bcc2d55b9ed9ea80a3701f88bcbac199761d5e8c198bbb2
4
+ data.tar.gz: 8a52995c0569c7d8271b5aff3623cce888ee1eea8f3d9e809612eb2fe53ba3da
5
5
  SHA512:
6
- metadata.gz: 70d5adca95a69de4c41a852ccc290920008ab7fc7b58d95675039b7394adadb447f7ea15df842a2e4653b415c3c643d5d1e5976dcce7a3048e257d63445f1fd8
7
- data.tar.gz: d83fac648dadc104b6c898dbdbf61c0d39f251a6bf73194eb6d3b7a41ec0947c1c6df7cd499d40957055f3eaceea3e0ca1dc9b196ebbbbb637e10aa0e5d26b33
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
@@ -1,5 +1,3 @@
1
- ruby '2.4.0'
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  # Specify your gem's dependencies in contextualizer.gemspec
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Contextualizer
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/contextualizer.svg)](https://badge.fury.io/rb/contextualizer)
4
- [![CircleCI](https://circleci.com/gh/pabloh/contextualizer/tree/master.svg?style=shield)](https://circleci.com/gh/pabloh/contextualizer/tree/master)
4
+ [![Tests](https://github.com/pabloh/contextualizer/workflows/Tests/badge.svg)](https://github.com/oabloh/contextualizer/actions?query=workflow%3ATests)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/pabloh/contextualizer/badge.svg?branch=master)](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.
@@ -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
- #spec.homepage = "http://github.com/pabloh/contextualizer"
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.add_development_dependency "bundler", ">= 1.14.0"
27
- spec.add_development_dependency "rake", "~> 10.0"
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 "coveralls"
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
@@ -1,8 +1,9 @@
1
1
  require 'contextualizer'
2
+ require 'ruby2_keywords'
2
3
 
3
4
  module Contextualizer
4
5
  module Callable
5
- def call(ctx, *args, &bl)
6
+ ruby2_keywords def call(ctx, *args, &bl)
6
7
  new(ctx).call(*args, &bl)
7
8
  end
8
9
 
@@ -1,3 +1,3 @@
1
1
  module Contextualizer
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -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
- @attrs, @opt_attrs = [], {}
42
+ @mandatory, @with_default, @optional = [], {}, []
41
43
  end
42
44
 
43
45
  def add_attrs(*attrs, **opt_attrs)
44
- @attrs |= attrs
45
- @opt_attrs.merge!(opt_attrs)
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
- @opt_attrs.each { |key, default| context[key] = args.key?(key) ? args[key] : default }
52
- @attrs.each do |key|
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.3
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: 2017-06-30 00:00:00.000000000 Z
11
+ date: 2022-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: ruby2_keywords
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.14.0
20
- type: :development
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: 1.14.0
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: '10.0'
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: '10.0'
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: coveralls
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
- rubyforge_project:
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
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.0
5
- before_install: gem install bundler -v 1.15.1