dslkit 0.2.10 → 0.2.11

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