dsl-block-engine 0.0.3 → 0.1.0

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.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ pkg
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dsl-block-engine}
8
- s.version = "0.0.3"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Niclas Nilsson"]
12
- s.date = %q{2009-10-05}
12
+ s.date = %q{2009-10-06}
13
13
  s.description = %q{...}
14
14
  s.email = %q{niclas.nilsson@factor10.com}
15
15
  s.extra_rdoc_files = [
@@ -17,8 +17,11 @@ Gem::Specification.new do |s|
17
17
  "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
- "README.rdoc",
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.rdoc",
21
23
  "Rakefile",
24
+ "VERSION",
22
25
  "dsl-block-engine.gemspec",
23
26
  "lib/dsl-block-engine.rb",
24
27
  "spec/dsl-block-engine_spec.rb",
@@ -1,54 +1,60 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
-
4
- module DslBlockEngine
5
- VERSION = '0.0.4'
6
-
7
- class Context
8
- def attr_accessor *names
9
- names.each do |name|
10
- self.class.send :attr_accessor, name
11
- end
12
- end
13
- end
14
-
15
- class DslBlockEngine
16
- attr_accessor :categories
17
-
18
- def initialize
19
- @blocks = {}
20
- @categories = []
21
- end
22
-
23
- def load code
24
- self.instance_eval code
25
- end
26
-
27
- def blocks
28
- @blocks
29
- end
30
-
31
- def create_context *attrs
32
- o = Object.new
33
- attrs.each do |attr|
34
- o.class.send :attr_accessor, attr
35
- end
36
- o
37
- end
38
-
39
- def execute_in_context ctx, category, event
40
- b = @blocks[category][event]
41
- ctx.instance_eval &b
42
- end
43
-
44
- def method_missing name, *args, &block
45
- category = name
46
- event = args[0]
47
- super.method_missing(name, args, &block) unless @categories.include? category
48
- @blocks[category] ||= {}
49
- @blocks[category][event] = block
50
- end
51
-
52
- end
53
-
54
- end
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module DslBlockEngine
5
+ VERSION = '0.0.4'
6
+
7
+ class Context
8
+ def attr_accessor *names
9
+ names.each do |name|
10
+ self.class.send :attr_accessor, name
11
+ end
12
+ end
13
+ end
14
+
15
+ class DslBlockEngine
16
+ attr_accessor :categories
17
+
18
+ def initialize
19
+ @blocks = {}
20
+ @categories = []
21
+ end
22
+
23
+ def load code
24
+ self.instance_eval code
25
+ end
26
+
27
+ def blocks
28
+ @blocks
29
+ end
30
+
31
+ def create_context *attrs
32
+ o = Object.new
33
+
34
+ def o.add_attribute name
35
+ self.class.send :attr_accessor, name
36
+ end
37
+
38
+ attrs.each do |attr|
39
+ o.add_attribute attr
40
+ end
41
+
42
+ o
43
+ end
44
+
45
+ def execute_in_context ctx, category, event
46
+ b = @blocks[category][event]
47
+ ctx.instance_eval &b
48
+ end
49
+
50
+ def method_missing name, *args, &block
51
+ category = name
52
+ event = args[0]
53
+ super.method_missing(name, args, &block) unless @categories.include? category
54
+ @blocks[category] ||= {}
55
+ @blocks[category][event] = block
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -1,64 +1,64 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe DslBlockEngine do
4
-
5
- before do
6
- @engine = DslBlockEngine::DslBlockEngine.new
7
- end
8
-
9
- it "should load named blocks" do
10
- code = %q{
11
- on :event1 do
12
- end
13
-
14
- on :event2 do
15
- end
16
- }
17
-
18
- @engine.categories = [:on]
19
- @engine.load code
20
- @engine.blocks[:on].size.should == 2
21
- end
22
-
23
- it "should provide properties accessible for the block" do
24
- code = %q{
25
- on :event1 do
26
- a + b
27
- end
28
- }
29
-
30
- @engine.categories = [:on]
31
- @engine.load code
32
- context = @engine.create_context :a, :b
33
-
34
- context.a = 2
35
- context.b = 4
36
-
37
- result = @engine.execute_in_context context, :on, :event1
38
- result.should == 6
39
- end
40
-
41
- it "should support different names for the categories" do
42
- code = %q{
43
- before :event1 do
44
- end
45
-
46
- on :event1 do
47
- end
48
-
49
- on :event2 do
50
- end
51
-
52
- after :event2 do
53
- end
54
- }
55
-
56
- @engine.categories = [:before, :on, :after]
57
- @engine.load code
58
- @engine.blocks[:before].size.should == 1
59
- @engine.blocks[:on].size.should == 2
60
- @engine.blocks[:after].size.should == 1
61
- end
62
-
63
- end
64
-
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe DslBlockEngine do
4
+
5
+ before do
6
+ @engine = DslBlockEngine::DslBlockEngine.new
7
+ end
8
+
9
+ it "should load named blocks" do
10
+ code = %q{
11
+ on :event1 do
12
+ end
13
+
14
+ on :event2 do
15
+ end
16
+ }
17
+
18
+ @engine.categories = [:on]
19
+ @engine.load code
20
+ @engine.blocks[:on].size.should == 2
21
+ end
22
+
23
+ it "should provide properties accessible for the block" do
24
+ code = %q{
25
+ on :event1 do
26
+ a + b
27
+ end
28
+ }
29
+
30
+ @engine.categories = [:on]
31
+ @engine.load code
32
+ context = @engine.create_context :a, :b
33
+
34
+ context.a = 2
35
+ context.b = 4
36
+
37
+ result = @engine.execute_in_context context, :on, :event1
38
+ result.should == 6
39
+ end
40
+
41
+ it "should support different names for the categories" do
42
+ code = %q{
43
+ before :event1 do
44
+ end
45
+
46
+ on :event1 do
47
+ end
48
+
49
+ on :event2 do
50
+ end
51
+
52
+ after :event2 do
53
+ end
54
+ }
55
+
56
+ @engine.categories = [:before, :on, :after]
57
+ @engine.load code
58
+ @engine.blocks[:before].size.should == 1
59
+ @engine.blocks[:on].size.should == 2
60
+ @engine.blocks[:after].size.should == 1
61
+ end
62
+
63
+ end
64
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsl-block-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niclas Nilsson
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-05 00:00:00 +02:00
12
+ date: 2009-10-06 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,14 +23,16 @@ extra_rdoc_files:
23
23
  - LICENSE
24
24
  - README.rdoc
25
25
  files:
26
+ - .gitignore
27
+ - LICENSE
26
28
  - README.rdoc
27
29
  - Rakefile
30
+ - VERSION
28
31
  - dsl-block-engine.gemspec
29
32
  - lib/dsl-block-engine.rb
30
33
  - spec/dsl-block-engine_spec.rb
31
34
  - spec/spec.opts
32
35
  - spec/spec_helper.rb
33
- - LICENSE
34
36
  has_rdoc: true
35
37
  homepage: http://github.com/niclasnilsson/dsl-block-engine
36
38
  licenses: []