contextualizer 0.0.2 → 0.0.3

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
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