minicontext 0.1.0 → 0.1.1

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: 3921cd064245ac91d6458de058aae081017e91d0
4
- data.tar.gz: 072368db78a1b5e9907feec2750fbd6d8620528f
3
+ metadata.gz: 6c1e4e27ace275f77773f39ef51a39bc75b99258
4
+ data.tar.gz: ed67bd70ede0a00ffbf919c541be9bcca2597825
5
5
  SHA512:
6
- metadata.gz: dc9af6210e1cb9d3ef79387b8aae07fd8a8a55db807fe401b66d8934a9a44db495b678275483177fad44a730eb02745830cd0949b759777a20604ba604a8734d
7
- data.tar.gz: 0b61e2812b9fffe72ed7a9450288b15fd7bfa77c7fa63d54f2cf2f8ab52ca2d9a27ae76111e27a4d46247a2d9e78fca9a96517340e266ecb5e2a0d21cd0dd1f8
6
+ metadata.gz: 1221980c7636234c8e4e225ef8d734a79b78ab0abd146d991daf6b3485bab1f5e6d82f3b4aeb1d6a2ded54463ca6c1e4c132e40335ea427b03b5f46d915114f6
7
+ data.tar.gz: 1c09c60814b3301a5773e8ab97c476d6d6247b7ecd6c7716ed1cc8a23c101000d8bda6a05fa4d38701cd522b03a8a6320ce7985df068d36a0c63a4a1b55b620e
data/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # Minicontext
2
2
 
3
+ [![Build Status](https://travis-ci.org/daisuko/minicontext.svg?branch=master)](https://travis-ci.org/daisuko/minicontext)
4
+
3
5
  Mimicontext is a DSL kit.
4
6
 
5
7
  ## Installation
6
8
 
7
- ` Gemfile`:
9
+ `Gemfile`:
8
10
 
9
11
  ```ruby
10
12
  gem 'minicontext'
@@ -18,6 +20,46 @@ Or install it yourself as:
18
20
 
19
21
  $ gem install minicontext
20
22
 
23
+ ## Usage
24
+
25
+ build:
26
+ ```ruby
27
+ require 'minicontext'
28
+
29
+ root = Minicontext::Context.new
30
+ env = Minicontext::Environment.new(1)
31
+
32
+ root.task(:a) { 10 }
33
+ # or
34
+ root.context(:i) do
35
+ task(:a) { 100 }
36
+ task(:b) { 'b' }
37
+ end
38
+ # or
39
+ root.load <source>
40
+ ```
41
+
42
+ invoke:
43
+ ```ruby
44
+ root[:a].value.(env)
45
+ #=> 10
46
+
47
+ root[:i][:a].value.(env)
48
+ # => 100
49
+
50
+ root[:a]
51
+ # => #<Minicontext::Router::Just ...>
52
+
53
+ root[:a].value
54
+ # => #<Proc ...>
55
+
56
+ root[:b]
57
+ # => #<Minicontext::Router::Noting ...>
58
+
59
+ root[:b].value
60
+ # => nil
61
+ ```
62
+
21
63
  ## License
22
64
 
23
65
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -24,8 +24,8 @@ module Minicontext
24
24
  raise AssignError, name if KEYWORD.include?(name)
25
25
 
26
26
  self[name] = -> (env) do
27
- env.memoized.fetch(name) do
28
- env.memoized[name] = env.(self, &block)
27
+ env.memoized.fetch([self, name]) do
28
+ env.memoized[[self, name]] = env.(self, &block)
29
29
  end
30
30
  end
31
31
  end
@@ -1,3 +1,3 @@
1
1
  module Minicontext
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minicontext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - daisuko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-07 00:00:00.000000000 Z
11
+ date: 2015-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler