contextualizer 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ba2f6d3bc6a1441c65d5e01d3598319db2cacb4
4
- data.tar.gz: ff72919a81bd9013f0c893b77f3d54ad4268938b
3
+ metadata.gz: 656da6e97d5a4805a96b5aae76332fd738c9727a
4
+ data.tar.gz: 0ec330dd1f6919269230eda301084792ac83be30
5
5
  SHA512:
6
- metadata.gz: e3c6a460e6c8c8d493d27c3e6ea94da7a24c59344bd39d9c647bda89caa86d4169c9e2298935c4fd4bbd49cf6a5695408984cf715dcefe70e5642136a94545de
7
- data.tar.gz: f1a826eae8fa1fdfd8a48397782901d544f38dfbbf0e50a57a8b37ae7c63cac810a929223a7a5519963d204f35ca06fcc6b76aabe097246440316585d68ecb01
6
+ metadata.gz: 70d5adca95a69de4c41a852ccc290920008ab7fc7b58d95675039b7394adadb447f7ea15df842a2e4653b415c3c643d5d1e5976dcce7a3048e257d63445f1fd8
7
+ data.tar.gz: d83fac648dadc104b6c898dbdbf61c0d39f251a6bf73194eb6d3b7a41ec0947c1c6df7cd499d40957055f3eaceea3e0ca1dc9b196ebbbbb637e10aa0e5d26b33
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Contextualizer
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/contextualizer.svg)](https://badge.fury.io/rb/contextualizer)
3
4
  [![CircleCI](https://circleci.com/gh/pabloh/contextualizer/tree/master.svg?style=shield)](https://circleci.com/gh/pabloh/contextualizer/tree/master)
4
5
  [![Coverage Status](https://coveralls.io/repos/github/pabloh/contextualizer/badge.svg?branch=master)](https://coveralls.io/github/pabloh/contextualizer?branch=master)
5
6
 
@@ -2,33 +2,33 @@ require 'contextualizer/version'
2
2
 
3
3
  module Contextualizer
4
4
  def context(*attrs, **opt_attrs)
5
- unless @_setter
6
- @_setter = Setter.new
7
- include Contextualizer.init_for(@_setter)
5
+ unless @__setter
6
+ @__setter = Setter.new
7
+ include Contextualizer.init_for(@__setter)
8
8
  end
9
9
 
10
- @_setter.add_attrs(*attrs, **opt_attrs)
10
+ @__setter.add_attrs(*attrs, **opt_attrs)
11
11
  attr_reader *attrs, *opt_attrs.keys
12
12
  end
13
13
 
14
14
  def self.extended(klass)
15
15
  klass.class_eval do
16
16
  attr_reader :context
17
- @_setter = Setter.new
18
- include Contextualizer.init_for(@_setter, true)
17
+ @__setter = Setter.new
18
+ include Contextualizer.init_for(@__setter, false)
19
19
  end
20
20
  end
21
21
 
22
- def self.init_for(setter, first = false)
22
+ def self.init_for(setter, inherited = true)
23
23
  Module.new do |mod|
24
- if first
24
+ if inherited
25
25
  mod.send(:define_method, :initialize) do |args = {}|
26
- super()
26
+ super(args)
27
27
  setter.set(self, args)
28
28
  end
29
29
  else
30
30
  mod.send(:define_method, :initialize) do |args = {}|
31
- super(args)
31
+ super()
32
32
  setter.set(self, args)
33
33
  end
34
34
  end
@@ -48,11 +48,13 @@ module Contextualizer
48
48
  def set(obj, args)
49
49
  context = obj.context&.dup || {}
50
50
 
51
- @opt_attrs.each { |key, val| context[key] = args[key] || val }
52
- @attrs.each { |key| context[key] = args[key] }
51
+ @opt_attrs.each { |key, default| context[key] = args.key?(key) ? args[key] : default }
52
+ @attrs.each do |key|
53
+ fail ":#{key} was not found in scope" unless args.key?(key)
54
+ context[key] = args[key]
55
+ end
53
56
 
54
57
  context.each do |attr, value|
55
- fail ":#{attr} was not found in scope" if value.nil?
56
58
  obj.instance_variable_set :"@#{attr}", value
57
59
  end
58
60
 
@@ -1,3 +1,3 @@
1
1
  module Contextualizer
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contextualizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Herrero