dslkit 0.2.10 → 0.2.11

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,7 +15,8 @@ GemHadar do
15
15
  readme 'README.rdoc'
16
16
 
17
17
  dependency 'term-ansicolor', '~>1.0'
18
- dependency 'tins', '~>0.3'
18
+ dependency 'tins', '~>0.5.6'
19
+ development_dependency 'utils'
19
20
 
20
21
  install_library do
21
22
  libdir = CONFIG["sitelibdir"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.10
1
+ 0.2.11
@@ -2,37 +2,40 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "dslkit"
5
- s.version = "0.2.10"
5
+ s.version = "0.2.11"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Florian Frank"]
9
- s.date = "2012-01-12"
9
+ s.date = "2012-10-02"
10
10
  s.description = "This library contains recurring patterns, that are useful in the creation of internal Domain Specific Languages (DSL) in Ruby."
11
11
  s.email = "flori@ping.de"
12
- s.extra_rdoc_files = ["README.rdoc", "lib/dslkit/version.rb", "lib/dslkit/rude.rb", "lib/dslkit/polite.rb", "lib/dslkit.rb"]
13
- s.files = [".gitignore", ".rvmrc", ".travis.yml", "CHANGES", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "dslkit.gemspec", "examples/add_one.pdf", "examples/add_one.stm", "examples/bb3.pdf", "examples/bb3.stm", "examples/bb3_19.stm", "examples/concatenate_compare.mtm", "examples/concatenate_compare.pdf", "examples/concatenate_compare_19.mtm", "examples/length_difference.mtm", "examples/length_difference.pdf", "examples/length_difference_19.mtm", "examples/let.rb", "examples/mail.rb", "examples/minsky.rb", "examples/multiply.reg", "examples/null_pattern.rb", "examples/ones_difference-mtm.pdf", "examples/ones_difference-stm.pdf", "examples/ones_difference.mtm", "examples/ones_difference.stm", "examples/ones_difference_19.mtm", "examples/ones_difference_19.stm", "examples/prefix-equals-suffix-reversed-with-infix.pdf", "examples/prefix-equals-suffix-reversed-with-infix.stm", "examples/prefix-equals-suffix-reversed-with-infix_19.stm", "examples/recipe.rb", "examples/recipe2.rb", "examples/recipe_common.rb", "examples/subtract.reg", "examples/turing-graph.rb", "examples/turing.rb", "lib/dslkit.rb", "lib/dslkit/polite.rb", "lib/dslkit/rude.rb", "lib/dslkit/version.rb", "tests/concern_test.rb", "tests/dynamic_scope_test.rb", "tests/from_module_test.rb", "tests/polite_test.rb", "tests/scope_test.rb", "tests/test_helper.rb"]
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/dslkit/polite.rb", "lib/dslkit/rude.rb", "lib/dslkit/version.rb", "lib/dslkit.rb"]
13
+ s.files = [".gitignore", ".rvmrc", ".travis.yml", "CHANGES", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "dslkit.gemspec", "examples/add_one.png", "examples/add_one.stm", "examples/bb3.png", "examples/bb3.stm", "examples/bb3_19.stm", "examples/concatenate_compare.mtm", "examples/concatenate_compare.png", "examples/concatenate_compare_19.mtm", "examples/length_difference.mtm", "examples/length_difference.png", "examples/length_difference_19.mtm", "examples/let.rb", "examples/mail.rb", "examples/minsky.rb", "examples/multiply.reg", "examples/null_pattern.rb", "examples/ones_difference-mtm.png", "examples/ones_difference-stm.png", "examples/ones_difference.mtm", "examples/ones_difference.stm", "examples/ones_difference_19.mtm", "examples/ones_difference_19.stm", "examples/prefix-equals-suffix-reversed-with-infix.png", "examples/prefix-equals-suffix-reversed-with-infix.stm", "examples/prefix-equals-suffix-reversed-with-infix_19.stm", "examples/recipe.rb", "examples/recipe2.rb", "examples/recipe_common.rb", "examples/subtract.reg", "examples/turing-graph.rb", "examples/turing.rb", "lib/dslkit.rb", "lib/dslkit/polite.rb", "lib/dslkit/rude.rb", "lib/dslkit/version.rb", "tests/concern_test.rb", "tests/dynamic_scope_test.rb", "tests/from_module_test.rb", "tests/polite_test.rb", "tests/scope_test.rb", "tests/test_helper.rb"]
14
14
  s.homepage = "http://flori.github.com/dslkit"
15
15
  s.rdoc_options = ["--title", "Dslkit - Kit for building DSLs in Ruby", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
- s.rubygems_version = "1.8.13"
17
+ s.rubygems_version = "1.8.24"
18
18
  s.summary = "Kit for building DSLs in Ruby"
19
- s.test_files = ["tests/concern_test.rb", "tests/from_module_test.rb", "tests/dynamic_scope_test.rb", "tests/scope_test.rb", "tests/test_helper.rb", "tests/polite_test.rb"]
19
+ s.test_files = ["tests/concern_test.rb", "tests/dynamic_scope_test.rb", "tests/from_module_test.rb", "tests/polite_test.rb", "tests/scope_test.rb", "tests/test_helper.rb"]
20
20
 
21
21
  if s.respond_to? :specification_version then
22
22
  s.specification_version = 3
23
23
 
24
24
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
- s.add_development_dependency(%q<gem_hadar>, ["~> 0.1.4"])
25
+ s.add_development_dependency(%q<gem_hadar>, ["~> 0.1.8"])
26
+ s.add_development_dependency(%q<utils>, [">= 0"])
26
27
  s.add_runtime_dependency(%q<term-ansicolor>, ["~> 1.0"])
27
- s.add_runtime_dependency(%q<tins>, ["~> 0.3"])
28
+ s.add_runtime_dependency(%q<tins>, ["~> 0.5.6"])
28
29
  else
29
- s.add_dependency(%q<gem_hadar>, ["~> 0.1.4"])
30
+ s.add_dependency(%q<gem_hadar>, ["~> 0.1.8"])
31
+ s.add_dependency(%q<utils>, [">= 0"])
30
32
  s.add_dependency(%q<term-ansicolor>, ["~> 1.0"])
31
- s.add_dependency(%q<tins>, ["~> 0.3"])
33
+ s.add_dependency(%q<tins>, ["~> 0.5.6"])
32
34
  end
33
35
  else
34
- s.add_dependency(%q<gem_hadar>, ["~> 0.1.4"])
36
+ s.add_dependency(%q<gem_hadar>, ["~> 0.1.8"])
37
+ s.add_dependency(%q<utils>, [">= 0"])
35
38
  s.add_dependency(%q<term-ansicolor>, ["~> 1.0"])
36
- s.add_dependency(%q<tins>, ["~> 0.3"])
39
+ s.add_dependency(%q<tins>, ["~> 0.5.6"])
37
40
  end
38
41
  end
Binary file
Binary file
@@ -169,13 +169,13 @@ module Turing
169
169
  end
170
170
 
171
171
  class BaseMachine
172
- def initialize(program = nil)
172
+ def initialize(program = nil, &block)
173
173
  @states = []
174
174
  if program
175
175
  block_given? and raise "use either program source string or a block"
176
176
  interpret program
177
177
  else
178
- instance_eval(&Proc.new)
178
+ instance_eval(&block)
179
179
  end
180
180
  end
181
181
 
@@ -11,9 +11,13 @@ module DSLKit
11
11
  #
12
12
  # The module can be included into other modules/classes to make the methods available.
13
13
  module Eigenclass
14
- # Returns the eigenclass of this object.
15
- def eigenclass
16
- class << self; self; end
14
+ if Object.respond_to?(:singleton_class)
15
+ alias eigenclass singleton_class
16
+ else
17
+ # Returns the eigenclass of this object.
18
+ def eigenclass
19
+ class << self; self; end
20
+ end
17
21
  end
18
22
 
19
23
  # Evaluates the _block_ in context of the eigenclass of this object.
@@ -375,8 +379,9 @@ module DSLKit
375
379
  # <i>*ids</i>. ids can be Symbols, Strings, and Regexps that have to match
376
380
  # the method name with #===.
377
381
  def self.with(*ids)
382
+ opts = Hash === ids.last ? ids.pop : {}
378
383
  ids = ids.map { |id| Regexp === id ? id : id.to_s }
379
- klass = Class.new
384
+ klass = opts[:superclass] ? Class.new(opts[:superclass]) : Class.new
380
385
  klass.instance_eval do
381
386
  instance_methods.each do |m|
382
387
  m = m.to_s
@@ -691,37 +696,13 @@ module DSLKit
691
696
  super
692
697
  elsif args.size == 1 and id.to_s =~ /(.*?)=\Z/
693
698
  c = scope_top(dynamic_scope_name) or super
694
- c[$1.to_sym] = args.first
699
+ c[$1] = args.first
695
700
  else
696
701
  super
697
702
  end
698
703
  end
699
704
  end
700
705
 
701
- module Concern
702
- def self.extended(base)
703
- base.instance_variable_set("@_dependencies", [])
704
- end
705
-
706
- def append_features(base)
707
- if base.instance_variable_defined?("@_dependencies")
708
- base.instance_variable_get("@_dependencies") << self
709
- return false
710
- else
711
- return false if base < self
712
- @_dependencies.each { |dep| base.send(:include, dep) }
713
- super
714
- base.extend const_get("ClassMethods") if const_defined?("ClassMethods")
715
- base.class_eval(&@_included_block) if instance_variable_defined?("@_included_block")
716
- end
717
- end
718
-
719
- def included(base = nil, &block)
720
- if base.nil?
721
- @_included_block = block
722
- else
723
- super
724
- end
725
- end
726
- end
706
+ require 'tins/concern'
707
+ Concern = ::Tins::Concern
727
708
  end
@@ -1,6 +1,6 @@
1
1
  module DSLKit
2
2
  # DSLKit version
3
- VERSION = '0.2.10'
3
+ VERSION = '0.2.11'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dslkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ version: 0.2.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-12 00:00:00.000000000 Z
12
+ date: 2012-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gem_hadar
16
- requirement: &73147590 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.1.4
21
+ version: 0.1.8
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *73147590
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.1.8
30
+ - !ruby/object:Gem::Dependency
31
+ name: utils
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: term-ansicolor
27
- requirement: &73162410 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ~>
@@ -32,18 +53,28 @@ dependencies:
32
53
  version: '1.0'
33
54
  type: :runtime
34
55
  prerelease: false
35
- version_requirements: *73162410
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
36
62
  - !ruby/object:Gem::Dependency
37
63
  name: tins
38
- requirement: &73161340 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
39
65
  none: false
40
66
  requirements:
41
67
  - - ~>
42
68
  - !ruby/object:Gem::Version
43
- version: '0.3'
69
+ version: 0.5.6
44
70
  type: :runtime
45
71
  prerelease: false
46
- version_requirements: *73161340
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.5.6
47
78
  description: This library contains recurring patterns, that are useful in the creation
48
79
  of internal Domain Specific Languages (DSL) in Ruby.
49
80
  email: flori@ping.de
@@ -51,9 +82,9 @@ executables: []
51
82
  extensions: []
52
83
  extra_rdoc_files:
53
84
  - README.rdoc
54
- - lib/dslkit/version.rb
55
- - lib/dslkit/rude.rb
56
85
  - lib/dslkit/polite.rb
86
+ - lib/dslkit/rude.rb
87
+ - lib/dslkit/version.rb
57
88
  - lib/dslkit.rb
58
89
  files:
59
90
  - .gitignore
@@ -67,29 +98,29 @@ files:
67
98
  - TODO
68
99
  - VERSION
69
100
  - dslkit.gemspec
70
- - examples/add_one.pdf
101
+ - examples/add_one.png
71
102
  - examples/add_one.stm
72
- - examples/bb3.pdf
103
+ - examples/bb3.png
73
104
  - examples/bb3.stm
74
105
  - examples/bb3_19.stm
75
106
  - examples/concatenate_compare.mtm
76
- - examples/concatenate_compare.pdf
107
+ - examples/concatenate_compare.png
77
108
  - examples/concatenate_compare_19.mtm
78
109
  - examples/length_difference.mtm
79
- - examples/length_difference.pdf
110
+ - examples/length_difference.png
80
111
  - examples/length_difference_19.mtm
81
112
  - examples/let.rb
82
113
  - examples/mail.rb
83
114
  - examples/minsky.rb
84
115
  - examples/multiply.reg
85
116
  - examples/null_pattern.rb
86
- - examples/ones_difference-mtm.pdf
87
- - examples/ones_difference-stm.pdf
117
+ - examples/ones_difference-mtm.png
118
+ - examples/ones_difference-stm.png
88
119
  - examples/ones_difference.mtm
89
120
  - examples/ones_difference.stm
90
121
  - examples/ones_difference_19.mtm
91
122
  - examples/ones_difference_19.stm
92
- - examples/prefix-equals-suffix-reversed-with-infix.pdf
123
+ - examples/prefix-equals-suffix-reversed-with-infix.png
93
124
  - examples/prefix-equals-suffix-reversed-with-infix.stm
94
125
  - examples/prefix-equals-suffix-reversed-with-infix_19.stm
95
126
  - examples/recipe.rb
@@ -124,6 +155,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
155
  - - ! '>='
125
156
  - !ruby/object:Gem::Version
126
157
  version: '0'
158
+ segments:
159
+ - 0
160
+ hash: -2565139679419943526
127
161
  required_rubygems_version: !ruby/object:Gem::Requirement
128
162
  none: false
129
163
  requirements:
@@ -132,14 +166,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
166
  version: '0'
133
167
  requirements: []
134
168
  rubyforge_project:
135
- rubygems_version: 1.8.13
169
+ rubygems_version: 1.8.24
136
170
  signing_key:
137
171
  specification_version: 3
138
172
  summary: Kit for building DSLs in Ruby
139
173
  test_files:
140
174
  - tests/concern_test.rb
141
- - tests/from_module_test.rb
142
175
  - tests/dynamic_scope_test.rb
176
+ - tests/from_module_test.rb
177
+ - tests/polite_test.rb
143
178
  - tests/scope_test.rb
144
179
  - tests/test_helper.rb
145
- - tests/polite_test.rb
Binary file
Binary file