wlang 0.8.5 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/CHANGELOG.rdoc +65 -0
  2. data/README.rdoc +85 -31
  3. data/bin/wlang +5 -0
  4. data/doc/specification/dialect.wtpl +14 -0
  5. data/doc/specification/dialects.wtpl +3 -0
  6. data/doc/specification/glossary.wtpl +4 -4
  7. data/doc/specification/rulesets.wtpl +9 -9
  8. data/doc/specification/specification.css +1 -0
  9. data/doc/specification/specification.html +68 -5
  10. data/doc/specification/specification.wtpl +12 -12
  11. data/doc/specification/specification.yml +9 -9
  12. data/doc/specification/symbols.wtpl +8 -8
  13. data/lib/wlang.rb +297 -75
  14. data/lib/wlang/dialect.rb +7 -3
  15. data/lib/wlang/dialects/coderay_dialect.rb +4 -4
  16. data/lib/wlang/dialects/plain_text_dialect.rb +13 -19
  17. data/lib/wlang/dialects/redcloth_dialect.rb +16 -0
  18. data/lib/wlang/dialects/ruby_dialect.rb +16 -2
  19. data/lib/wlang/dialects/standard_dialects.rb +20 -0
  20. data/lib/wlang/dialects/xhtml_dialect.rb +24 -1
  21. data/lib/wlang/encoder.rb +1 -1
  22. data/lib/wlang/encoder_set.rb +5 -0
  23. data/lib/wlang/errors.rb +70 -6
  24. data/lib/wlang/ext/hash_methodize.rb +13 -0
  25. data/lib/wlang/{ruby_extensions.rb → ext/string.rb} +9 -5
  26. data/lib/wlang/hash_scope.rb +89 -0
  27. data/lib/wlang/hosted_language.rb +146 -0
  28. data/lib/wlang/parser.rb +189 -126
  29. data/lib/wlang/parser_state.rb +94 -0
  30. data/lib/wlang/rule_set.rb +16 -3
  31. data/lib/wlang/rulesets/basic_ruleset.rb +14 -6
  32. data/lib/wlang/rulesets/buffering_ruleset.rb +20 -29
  33. data/lib/wlang/rulesets/context_ruleset.rb +16 -20
  34. data/lib/wlang/rulesets/imperative_ruleset.rb +4 -4
  35. data/lib/wlang/rulesets/ruleset_utils.rb +26 -5
  36. data/lib/wlang/template.rb +16 -34
  37. data/lib/wlang/wlang_command.rb +4 -7
  38. data/lib/wlang/wlang_command_options.rb +5 -0
  39. data/test/blackbox/basic/execution_1.exp +1 -0
  40. data/test/blackbox/basic/execution_1.tpl +1 -0
  41. data/test/blackbox/basic/execution_2.exp +1 -0
  42. data/test/blackbox/basic/execution_2.tpl +1 -0
  43. data/test/blackbox/basic/execution_3.exp +1 -0
  44. data/test/blackbox/basic/execution_3.tpl +1 -0
  45. data/test/blackbox/basic/execution_4.exp +1 -0
  46. data/test/blackbox/basic/execution_4.tpl +1 -0
  47. data/test/blackbox/basic/inclusion_1.exp +1 -0
  48. data/test/blackbox/basic/inclusion_1.tpl +1 -0
  49. data/test/blackbox/basic/inclusion_2.exp +1 -0
  50. data/test/blackbox/basic/inclusion_2.tpl +1 -0
  51. data/test/blackbox/basic/injection_1.exp +1 -0
  52. data/test/blackbox/basic/injection_1.tpl +1 -0
  53. data/test/blackbox/basic/injection_2.exp +1 -0
  54. data/test/blackbox/basic/injection_2.tpl +1 -0
  55. data/test/blackbox/basic/modulation_1.exp +1 -0
  56. data/test/blackbox/basic/modulation_1.tpl +1 -0
  57. data/test/blackbox/basic/modulation_2.exp +1 -0
  58. data/test/blackbox/basic/modulation_2.tpl +1 -0
  59. data/test/blackbox/basic/recursive_app_1.exp +1 -0
  60. data/test/blackbox/basic/recursive_app_1.tpl +1 -0
  61. data/test/blackbox/basic/recursive_app_2.exp +1 -0
  62. data/test/blackbox/basic/recursive_app_2.tpl +1 -0
  63. data/test/blackbox/buffering/data_1.rb +1 -0
  64. data/test/blackbox/buffering/data_assignment_1.exp +1 -0
  65. data/test/blackbox/buffering/data_assignment_1.tpl +1 -0
  66. data/test/blackbox/buffering/data_assignment_2.exp +1 -0
  67. data/test/blackbox/buffering/data_assignment_2.tpl +1 -0
  68. data/test/blackbox/buffering/data_assignment_3.exp +1 -0
  69. data/test/blackbox/buffering/data_assignment_3.tpl +1 -0
  70. data/test/blackbox/buffering/data_assignment_4.exp +1 -0
  71. data/test/blackbox/buffering/data_assignment_4.tpl +1 -0
  72. data/test/blackbox/buffering/input_1.exp +1 -0
  73. data/test/blackbox/buffering/input_1.tpl +1 -0
  74. data/test/blackbox/buffering/input_2.exp +1 -0
  75. data/test/blackbox/buffering/input_2.tpl +1 -0
  76. data/test/blackbox/buffering/input_3.exp +1 -0
  77. data/test/blackbox/buffering/input_3.tpl +1 -0
  78. data/test/blackbox/buffering/input_inclusion.exp +1 -0
  79. data/test/blackbox/buffering/input_inclusion.tpl +1 -0
  80. data/test/blackbox/buffering/input_inclusion_1.exp +0 -0
  81. data/test/blackbox/buffering/input_inclusion_1.tpl +1 -0
  82. data/test/blackbox/buffering/input_inclusion_2.exp +1 -0
  83. data/test/blackbox/buffering/input_inclusion_2.tpl +1 -0
  84. data/test/blackbox/buffering/input_inclusion_3.exp +1 -0
  85. data/test/blackbox/buffering/input_inclusion_3.tpl +1 -0
  86. data/test/blackbox/buffering/input_inclusion_4.exp +0 -0
  87. data/test/blackbox/buffering/input_inclusion_4.tpl +1 -0
  88. data/test/blackbox/buffering/input_inclusion_5.exp +1 -0
  89. data/test/blackbox/buffering/input_inclusion_5.tpl +1 -0
  90. data/test/blackbox/buffering/input_inclusion_6.exp +1 -0
  91. data/test/blackbox/buffering/input_inclusion_6.tpl +1 -0
  92. data/test/blackbox/buffering/input_inclusion_7.exp +0 -0
  93. data/test/blackbox/buffering/input_inclusion_7.tpl +1 -0
  94. data/test/blackbox/buffering/text_1.txt +1 -0
  95. data/test/blackbox/buffering/wlang.txt +1 -0
  96. data/test/blackbox/context/assignment_1.exp +1 -0
  97. data/test/blackbox/context/assignment_1.tpl +1 -0
  98. data/test/blackbox/context/assignment_2.exp +1 -0
  99. data/test/blackbox/context/assignment_2.tpl +1 -0
  100. data/test/blackbox/context/assignment_3.exp +2 -0
  101. data/test/blackbox/context/assignment_3.tpl +2 -0
  102. data/test/blackbox/context/assignment_4.exp +1 -0
  103. data/test/blackbox/context/assignment_4.tpl +1 -0
  104. data/test/blackbox/context/block_assignment_1.exp +1 -0
  105. data/test/blackbox/context/block_assignment_1.tpl +1 -0
  106. data/test/blackbox/context/block_assignment_2.exp +1 -0
  107. data/test/blackbox/context/block_assignment_2.tpl +1 -0
  108. data/test/blackbox/context/modulo_assignment_1.exp +1 -0
  109. data/test/blackbox/context/modulo_assignment_1.tpl +1 -0
  110. data/test/blackbox/context/modulo_assignment_2.exp +1 -0
  111. data/test/blackbox/context/modulo_assignment_2.tpl +1 -0
  112. data/test/blackbox/data_1.rb +1 -0
  113. data/test/blackbox/test_all.rb +59 -0
  114. data/test/spec/basic_object.spec +40 -0
  115. data/test/spec/global_extensions.rb +2 -0
  116. data/test/spec/hash_scope.spec +76 -0
  117. data/test/spec/redcloth_dialect.spec +24 -0
  118. data/test/spec/test_all.rb +8 -0
  119. data/test/spec/wlang.spec +53 -0
  120. data/test/spec/xhtml_dialect.spec +23 -0
  121. data/test/{test_all.rb → unit/test_all.rb} +1 -1
  122. data/test/{wlang → unit/wlang}/anagram_bugs_test.rb +2 -2
  123. data/test/{wlang → unit/wlang}/basic_ruleset_test.rb +1 -1
  124. data/test/{wlang → unit/wlang}/buffering_ruleset_test.rb +4 -4
  125. data/test/{wlang → unit/wlang}/buffering_template1.wtpl +0 -0
  126. data/test/{wlang → unit/wlang}/buffering_template2.wtpl +0 -0
  127. data/test/{wlang → unit/wlang}/buffering_template3.wtpl +0 -0
  128. data/test/unit/wlang/buffering_template4.wtpl +1 -0
  129. data/test/unit/wlang/buffering_template5.wtpl +1 -0
  130. data/test/{wlang → unit/wlang}/context_ruleset_test.rb +0 -0
  131. data/test/{wlang → unit/wlang}/data.rb +0 -0
  132. data/test/{wlang → unit/wlang}/encoder_set_test.rb +0 -0
  133. data/test/{wlang → unit/wlang}/imperative_ruleset_test.rb +0 -0
  134. data/test/{wlang → unit/wlang}/intelligent_buffer_test.rb +0 -0
  135. data/test/{wlang → unit/wlang}/othersymbols_test.rb +0 -0
  136. data/test/{wlang → unit/wlang}/parser_test.rb +10 -11
  137. data/test/{wlang → unit/wlang}/plain_text_dialect_test.rb +0 -0
  138. data/test/{wlang → unit/wlang}/ruby_dialect_test.rb +0 -0
  139. data/test/{wlang → unit/wlang}/ruby_expected.rb +0 -0
  140. data/test/{wlang → unit/wlang}/ruby_template.wrb +0 -0
  141. data/test/{wlang → unit/wlang}/ruleset_utils_test.rb +0 -0
  142. data/test/{wlang → unit/wlang}/specification_examples_test.rb +2 -2
  143. data/test/{wlang → unit/wlang}/test_utils.rb +1 -1
  144. data/test/{wlang → unit/wlang}/wlang_test.rb +0 -0
  145. metadata +135 -42
  146. data/lib/wlang/basic_object.rb +0 -19
  147. data/lib/wlang/parser_context.rb +0 -139
  148. data/test/sandbox.rb +0 -1
  149. data/test/wlang/buffering_template4.wtpl +0 -1
  150. data/test/wlang/buffering_template5.wtpl +0 -1
  151. data/test/wlang/parser_context_test.rb +0 -29
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
2
+ require 'wlang'
3
+ require 'spec/autorun'
4
+ test_files = Dir[File.join(File.dirname(__FILE__), '**/*.spec')]
5
+ test_files.each { |file|
6
+ load(file)
7
+ }
8
+
@@ -0,0 +1,53 @@
1
+ require 'wlang'
2
+ describe ::WLang do
3
+
4
+ it("should allow easy use of encoders") {
5
+ WLang::encode('&', 'xhtml/entities-encoding').should == '&'
6
+ WLang::encode("O'Neil", 'ruby/single-quoting').should == "O\\'Neil"
7
+ WLang::encode('O"Neil', 'ruby/double-quoting').should == 'O\\"Neil'
8
+ WLang::encode("O'Neil", 'sql/single-quoting').should == "O\\'Neil"
9
+ WLang::encode("O'Neil", 'sql/sybase/single-quoting').should == "O''Neil"
10
+ }
11
+
12
+ it "should allow easy upper camel casing" do
13
+ WLang::encode('hello_world', 'plain-text/camel-case').should == "HelloWorld"
14
+ WLang::encode('hello_world', 'plain-text/camel').should == "HelloWorld"
15
+ WLang::encode('hello_world', 'plain-text/upper-camel').should == "HelloWorld"
16
+ WLang::encode('this is another example', 'plain-text/camel-case').should == "ThisIsAnotherExample"
17
+ WLang::encode("this is yet \n another example", 'plain-text/camel-case').should == "ThisIsYetAnotherExample"
18
+
19
+ WLang::encode('hello_world', 'plain-text/lower-camel').should == "helloWorld"
20
+ end
21
+
22
+ it "should allow easy ruby method casing" do
23
+ WLang::encode('helloWorld', 'ruby/method-case').should == "hello_world"
24
+ WLang::encode('HelloWorld', 'ruby/method-case').should == "hello_world"
25
+ WLang::encode('hello world', 'ruby/method-case').should == "hello_world"
26
+ WLang::encode('Hello123World', 'ruby/method-case').should == "hello123_world"
27
+ WLang::encode('HelloWorld_123', 'ruby/method-case').should == "hello_world_123"
28
+ WLang::encode('123_HelloWorld', 'ruby/method-case').should == "_123_hello_world"
29
+ end
30
+
31
+ it "should have correct examples in README.rdoc" do
32
+ expected = "Hello world!"
33
+ "Hello ${who}!".wlang(:who => 'world').should == expected
34
+
35
+ expected = "Hello cruel & world!"
36
+ "Hello ${who}!".wlang({:who => 'cruel & world'}, 'wlang/xhtml').should == expected
37
+
38
+ expected = "Hello blambeau, llambeau"
39
+ "Hello *{authors as a}{${a}}{, }".wlang(:authors => ['blambeau', 'llambeau']).should == expected
40
+
41
+ expected = "INSERT INTO people VALUES ('O\\'Neil')"
42
+ "INSERT INTO people VALUES ('{who}')".wlang({:who => "O'Neil"}, 'wlang/sql')
43
+
44
+ expected = "Hello wlang!"
45
+ tpl = "Hello $(${varname})!".wlang(:varname => 'who')
46
+ tpl.wlang({:who => 'wlang'}, 'wlang/active-string', :parentheses).should == expected
47
+
48
+ context = {:varname => 'who', :who => 'wlang'}
49
+ expected = "Hello wlang!"
50
+ "Hello ${${varname}}!".wlang(context).should == expected
51
+ end
52
+
53
+ end
@@ -0,0 +1,23 @@
1
+ require "wlang"
2
+
3
+ describe "The wlang/xhtml dialect" do
4
+
5
+ it("should provide helpers to create links") {
6
+ "@{/details}".wlang({}, 'wlang/xhtml').should == "/details"
7
+ "@{/details}{Details}".wlang({}, 'wlang/xhtml').should == '<a href="/details">Details</a>'
8
+ }
9
+
10
+ it("should provide to_xhtml_link callback on links") {
11
+ ::String.module_eval do
12
+ def to_xhtml_link(url, label)
13
+ "#{url}:#{label}"
14
+ end
15
+ def to_xhtml_href(url)
16
+ "Hello:#{url}"
17
+ end
18
+ end
19
+ "@{/details}{Details}".wlang({}, 'wlang/xhtml').should == '/details:Details'
20
+ "@{/details}".wlang({}, 'wlang/xhtml').should == 'Hello:/details'
21
+ }
22
+
23
+ end
@@ -1,4 +1,4 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__),'..', 'lib'))
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
2
2
  require 'wlang'
3
3
  require 'test/unit'
4
4
  test_files = Dir[File.join(File.dirname(__FILE__), '**/*_test.rb')]
@@ -25,7 +25,7 @@ module WLang
25
25
  }
26
26
  }.gsub(/^ {8}/, '').strip
27
27
  result = template.wlang_instantiate({}, "anagram")
28
- assert IntelligentBuffer===result
28
+ #assert IntelligentBuffer===result
29
29
  # assert_equal("this is an anagram template", result)
30
30
 
31
31
  template = %q{
@@ -35,7 +35,7 @@ module WLang
35
35
  }
36
36
  }.gsub(/^ {8}/, '').strip
37
37
  result = template.wlang_instantiate({}, "anagram")
38
- assert IntelligentBuffer===result
38
+ #assert IntelligentBuffer===result
39
39
  assert_equal("module MyModule\nend\n", result)
40
40
  end
41
41
 
@@ -1,6 +1,6 @@
1
1
  require 'test/unit'
2
2
  require 'wlang'
3
- require 'wlang/test_utils'
3
+ require File.join(File.dirname(__FILE__), 'test_utils.rb')
4
4
  require 'wlang/rulesets/basic_ruleset'
5
5
  require 'wlang/rulesets/context_ruleset'
6
6
  require 'wlang/rulesets/buffering_ruleset'
@@ -1,6 +1,6 @@
1
1
  require 'test/unit'
2
2
  require 'wlang'
3
- require 'wlang/test_utils.rb'
3
+ require File.join(File.dirname(__FILE__), 'test_utils.rb')
4
4
  require 'wlang/rulesets/buffering_ruleset'
5
5
 
6
6
  # Tests the Scoping ruleset
@@ -31,7 +31,7 @@ class WLang::BufferingRuleSetTest < Test::Unit::TestCase
31
31
  def test_input_accepts_injection
32
32
  expected = read_relative_file("ruby_template.wrb", __FILE__)
33
33
  template = relative_template("<<{ruby_template.wrb}", "buffering-test", __FILE__)
34
- result = template.instantiate("", "ext" => "wrb")
34
+ result = template.instantiate("ext" => "wrb")
35
35
  assert_equal(expected, result)
36
36
  end
37
37
 
@@ -40,7 +40,7 @@ class WLang::BufferingRuleSetTest < Test::Unit::TestCase
40
40
  output = relative_file("buffering_ruleset_test_output.txt", __FILE__)
41
41
  File.delete(output) if File.exists?(output)
42
42
  template = relative_template(">>{buffering_ruleset_test_output.txt}{an output}", "buffering-test", __FILE__)
43
- assert_equal("", template.instantiate())
43
+ assert_equal("", template.instantiate)
44
44
  assert_equal("an output", File.read(output))
45
45
  File.delete(output) if File.exists?(output)
46
46
  end
@@ -50,7 +50,7 @@ class WLang::BufferingRuleSetTest < Test::Unit::TestCase
50
50
  output = relative_file("buffering_ruleset_test_output.txt", __FILE__)
51
51
  File.delete(output) if File.exists?(output)
52
52
  template = relative_template(">>{buffering_ruleset_test_output.${ext}}{an output}", "buffering-test", __FILE__)
53
- assert_equal("", template.instantiate("", "ext" => "txt"))
53
+ assert_equal("", template.instantiate("ext" => "txt"))
54
54
  assert_equal("an output", File.read(output))
55
55
  File.delete(output) if File.exists?(output)
56
56
  end
@@ -0,0 +1 @@
1
+ <<+{buffering_template5.wtpl share all with who2: who, hello: 'world'}
@@ -0,0 +1 @@
1
+ +{who2} +{hello}
File without changes
@@ -21,42 +21,41 @@ class ParserTest < Test::Unit::TestCase
21
21
 
22
22
  # Instantiate the given string as template
23
23
  def instantiate_str(str)
24
- Parser.instantiator(Template.new(str, "example")).instantiate()[0]
24
+ WLang::template(str, "example").instantiate
25
25
  end
26
26
 
27
27
  # Asserts the result of an instanciation
28
- def assert_instanciation_equal(expected, template, msg=nil)
29
- template = Template.new(template, "example")
30
- parser = Parser.instantiator(template)
31
- assert_equal(expected, parser.instantiate()[0])
28
+ def assert_instantiation_equal(expected, template, msg=nil)
29
+ template = WLang::template(template, "example")
30
+ assert_equal(expected, template.instantiate)
32
31
  end
33
32
 
34
33
  def test_parser_accepts_whole_tag
35
34
  template, expected = "+{hello}", "HELLO"
36
- assert_instanciation_equal(expected, template)
35
+ assert_instantiation_equal(expected, template)
37
36
  template, expected = " +{hello} ", " HELLO "
38
- assert_instanciation_equal(expected, template)
37
+ assert_instantiation_equal(expected, template)
39
38
  end
40
39
 
41
40
  def test_parser_accepts_whole_block
42
41
  template, expected = "{hello}", "{hello}"
43
- assert_instanciation_equal(expected, template)
42
+ assert_instantiation_equal(expected, template)
44
43
  end
45
44
 
46
45
  def test_parser_ignores_backslashed_tags
47
46
  template, expected = "\\+{hello\\}", "+{hello}"
48
- assert_instanciation_equal(expected, template)
47
+ assert_instantiation_equal(expected, template)
49
48
  end
50
49
 
51
50
  def test_parser_ignores_backslashed_blocks
52
51
  template, expected = "\\{hello\\} world", "{hello} world"
53
- assert_instanciation_equal(expected, template)
52
+ assert_instantiation_equal(expected, template)
54
53
  end
55
54
 
56
55
  def test_parser_on_a_complex_case
57
56
  template = "Hello \\\\} world! -{ITEMS AS I}{do +{something} \\{with \\} i} here is my name:+{name} and { that's not -{COMMON} text } !\\{"
58
57
  expected = "Hello \\} world! items as i{do SOMETHING {with } i} here is my name:NAME and { that's not common text } !\{"
59
- assert_instanciation_equal(expected, template)
58
+ assert_instantiation_equal(expected, template)
60
59
  end
61
60
 
62
61
  def test_parser_raises_error
@@ -1,4 +1,4 @@
1
- require 'test/unit/testcase'
1
+ require 'test/unit'
2
2
  require 'wlang'
3
3
  require 'wlang/dialects/standard_dialects'
4
4
  require "yaml"
@@ -11,7 +11,7 @@ class WLang::SpecificationExamplesTest < Test::Unit::TestCase
11
11
  context = {"name" => "O'Neil",
12
12
  "author" => "blambeau",
13
13
  "authors" => ["blambeau", "llambeau", "ancailliau"]}
14
- spec_file = File.join(File.dirname(__FILE__),"../../doc/specification/specification.yml")
14
+ spec_file = File.join(File.dirname(__FILE__),"../../../doc/specification/specification.yml")
15
15
  spec = YAML.load(File.open(spec_file))
16
16
  spec["rulesets"].each do |ruleset|
17
17
  next if ruleset["examples"].nil?
@@ -17,7 +17,7 @@ module WLang::TestUtils
17
17
 
18
18
  # Factors a template and fakes its source-file as from
19
19
  def relative_template(src, dialect, from=__FILE__)
20
- template = WLang::Template.new(src, dialect)
20
+ template = WLang::template(src, dialect)
21
21
  template.source_file = from
22
22
  template
23
23
  end
File without changes
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wlang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5
4
+ hash: 57
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 1
10
+ version: 0.9.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - Bernard Lambeau
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-01-21 00:00:00 +01:00
18
+ date: 2010-05-20 00:00:00 +02:00
13
19
  default_executable:
14
20
  dependencies: []
15
21
 
@@ -22,16 +28,15 @@ extensions: []
22
28
  extra_rdoc_files:
23
29
  - README.rdoc
24
30
  - LICENCE.rdoc
31
+ - CHANGELOG.rdoc
25
32
  files:
26
- - lib/wlang
27
- - lib/wlang/basic_object.rb
28
33
  - lib/wlang/dialect.rb
29
34
  - lib/wlang/dialect_dsl.rb
30
35
  - lib/wlang/dialect_loader.rb
31
- - lib/wlang/dialects
32
36
  - lib/wlang/dialects/coderay_dialect.rb
33
37
  - lib/wlang/dialects/plain_text_dialect.rb
34
38
  - lib/wlang/dialects/rdoc_dialect.rb
39
+ - lib/wlang/dialects/redcloth_dialect.rb
35
40
  - lib/wlang/dialects/ruby_dialect.rb
36
41
  - lib/wlang/dialects/sql_dialect.rb
37
42
  - lib/wlang/dialects/standard_dialects.rb
@@ -39,13 +44,15 @@ files:
39
44
  - lib/wlang/encoder.rb
40
45
  - lib/wlang/encoder_set.rb
41
46
  - lib/wlang/errors.rb
47
+ - lib/wlang/ext/hash_methodize.rb
48
+ - lib/wlang/ext/string.rb
49
+ - lib/wlang/hash_scope.rb
50
+ - lib/wlang/hosted_language.rb
42
51
  - lib/wlang/intelligent_buffer.rb
43
52
  - lib/wlang/parser.rb
44
- - lib/wlang/parser_context.rb
45
- - lib/wlang/ruby_extensions.rb
53
+ - lib/wlang/parser_state.rb
46
54
  - lib/wlang/rule.rb
47
55
  - lib/wlang/rule_set.rb
48
- - lib/wlang/rulesets
49
56
  - lib/wlang/rulesets/basic_ruleset.rb
50
57
  - lib/wlang/rulesets/buffering_ruleset.rb
51
58
  - lib/wlang/rulesets/context_ruleset.rb
@@ -56,38 +63,115 @@ files:
56
63
  - lib/wlang/wlang_command.rb
57
64
  - lib/wlang/wlang_command_options.rb
58
65
  - lib/wlang.rb
59
- - test/sandbox.rb
60
- - test/test_all.rb
61
- - test/wlang
62
- - test/wlang/anagram_bugs_test.rb
63
- - test/wlang/basic_ruleset_test.rb
64
- - test/wlang/buffering_ruleset_output
65
- - test/wlang/buffering_ruleset_output/subdir
66
- - test/wlang/buffering_ruleset_output/subdir/subdir
67
- - test/wlang/buffering_ruleset_test.rb
68
- - test/wlang/buffering_template1.wtpl
69
- - test/wlang/buffering_template2.wtpl
70
- - test/wlang/buffering_template3.wtpl
71
- - test/wlang/buffering_template4.wtpl
72
- - test/wlang/buffering_template5.wtpl
73
- - test/wlang/context_ruleset_test.rb
74
- - test/wlang/data.rb
75
- - test/wlang/encoder_set_test.rb
76
- - test/wlang/imperative_ruleset_test.rb
77
- - test/wlang/intelligent_buffer_test.rb
78
- - test/wlang/othersymbols_test.rb
79
- - test/wlang/parser_context_test.rb
80
- - test/wlang/parser_test.rb
81
- - test/wlang/plain_text_dialect_test.rb
82
- - test/wlang/ruby_dialect_test.rb
83
- - test/wlang/ruby_expected.rb
84
- - test/wlang/ruby_template.wrb
85
- - test/wlang/ruleset_utils_test.rb
86
- - test/wlang/specification_examples_test.rb
87
- - test/wlang/test_utils.rb
88
- - test/wlang/wlang_test.rb
66
+ - test/blackbox/basic/execution_1.exp
67
+ - test/blackbox/basic/execution_1.tpl
68
+ - test/blackbox/basic/execution_2.exp
69
+ - test/blackbox/basic/execution_2.tpl
70
+ - test/blackbox/basic/execution_3.exp
71
+ - test/blackbox/basic/execution_3.tpl
72
+ - test/blackbox/basic/execution_4.exp
73
+ - test/blackbox/basic/execution_4.tpl
74
+ - test/blackbox/basic/inclusion_1.exp
75
+ - test/blackbox/basic/inclusion_1.tpl
76
+ - test/blackbox/basic/inclusion_2.exp
77
+ - test/blackbox/basic/inclusion_2.tpl
78
+ - test/blackbox/basic/injection_1.exp
79
+ - test/blackbox/basic/injection_1.tpl
80
+ - test/blackbox/basic/injection_2.exp
81
+ - test/blackbox/basic/injection_2.tpl
82
+ - test/blackbox/basic/modulation_1.exp
83
+ - test/blackbox/basic/modulation_1.tpl
84
+ - test/blackbox/basic/modulation_2.exp
85
+ - test/blackbox/basic/modulation_2.tpl
86
+ - test/blackbox/basic/recursive_app_1.exp
87
+ - test/blackbox/basic/recursive_app_1.tpl
88
+ - test/blackbox/basic/recursive_app_2.exp
89
+ - test/blackbox/basic/recursive_app_2.tpl
90
+ - test/blackbox/buffering/data_1.rb
91
+ - test/blackbox/buffering/data_assignment_1.exp
92
+ - test/blackbox/buffering/data_assignment_1.tpl
93
+ - test/blackbox/buffering/data_assignment_2.exp
94
+ - test/blackbox/buffering/data_assignment_2.tpl
95
+ - test/blackbox/buffering/data_assignment_3.exp
96
+ - test/blackbox/buffering/data_assignment_3.tpl
97
+ - test/blackbox/buffering/data_assignment_4.exp
98
+ - test/blackbox/buffering/data_assignment_4.tpl
99
+ - test/blackbox/buffering/input_1.exp
100
+ - test/blackbox/buffering/input_1.tpl
101
+ - test/blackbox/buffering/input_2.exp
102
+ - test/blackbox/buffering/input_2.tpl
103
+ - test/blackbox/buffering/input_3.exp
104
+ - test/blackbox/buffering/input_3.tpl
105
+ - test/blackbox/buffering/input_inclusion.exp
106
+ - test/blackbox/buffering/input_inclusion.tpl
107
+ - test/blackbox/buffering/input_inclusion_1.exp
108
+ - test/blackbox/buffering/input_inclusion_1.tpl
109
+ - test/blackbox/buffering/input_inclusion_2.exp
110
+ - test/blackbox/buffering/input_inclusion_2.tpl
111
+ - test/blackbox/buffering/input_inclusion_3.exp
112
+ - test/blackbox/buffering/input_inclusion_3.tpl
113
+ - test/blackbox/buffering/input_inclusion_4.exp
114
+ - test/blackbox/buffering/input_inclusion_4.tpl
115
+ - test/blackbox/buffering/input_inclusion_5.exp
116
+ - test/blackbox/buffering/input_inclusion_5.tpl
117
+ - test/blackbox/buffering/input_inclusion_6.exp
118
+ - test/blackbox/buffering/input_inclusion_6.tpl
119
+ - test/blackbox/buffering/input_inclusion_7.exp
120
+ - test/blackbox/buffering/input_inclusion_7.tpl
121
+ - test/blackbox/buffering/text_1.txt
122
+ - test/blackbox/buffering/wlang.txt
123
+ - test/blackbox/context/assignment_1.exp
124
+ - test/blackbox/context/assignment_1.tpl
125
+ - test/blackbox/context/assignment_2.exp
126
+ - test/blackbox/context/assignment_2.tpl
127
+ - test/blackbox/context/assignment_3.exp
128
+ - test/blackbox/context/assignment_3.tpl
129
+ - test/blackbox/context/assignment_4.exp
130
+ - test/blackbox/context/assignment_4.tpl
131
+ - test/blackbox/context/block_assignment_1.exp
132
+ - test/blackbox/context/block_assignment_1.tpl
133
+ - test/blackbox/context/block_assignment_2.exp
134
+ - test/blackbox/context/block_assignment_2.tpl
135
+ - test/blackbox/context/modulo_assignment_1.exp
136
+ - test/blackbox/context/modulo_assignment_1.tpl
137
+ - test/blackbox/context/modulo_assignment_2.exp
138
+ - test/blackbox/context/modulo_assignment_2.tpl
139
+ - test/blackbox/data_1.rb
140
+ - test/blackbox/test_all.rb
141
+ - test/spec/basic_object.spec
142
+ - test/spec/global_extensions.rb
143
+ - test/spec/hash_scope.spec
144
+ - test/spec/redcloth_dialect.spec
145
+ - test/spec/test_all.rb
146
+ - test/spec/wlang.spec
147
+ - test/spec/xhtml_dialect.spec
148
+ - test/unit/test_all.rb
149
+ - test/unit/wlang/anagram_bugs_test.rb
150
+ - test/unit/wlang/basic_ruleset_test.rb
151
+ - test/unit/wlang/buffering_ruleset_test.rb
152
+ - test/unit/wlang/buffering_template1.wtpl
153
+ - test/unit/wlang/buffering_template2.wtpl
154
+ - test/unit/wlang/buffering_template3.wtpl
155
+ - test/unit/wlang/buffering_template4.wtpl
156
+ - test/unit/wlang/buffering_template5.wtpl
157
+ - test/unit/wlang/context_ruleset_test.rb
158
+ - test/unit/wlang/data.rb
159
+ - test/unit/wlang/encoder_set_test.rb
160
+ - test/unit/wlang/imperative_ruleset_test.rb
161
+ - test/unit/wlang/intelligent_buffer_test.rb
162
+ - test/unit/wlang/othersymbols_test.rb
163
+ - test/unit/wlang/parser_test.rb
164
+ - test/unit/wlang/plain_text_dialect_test.rb
165
+ - test/unit/wlang/ruby_dialect_test.rb
166
+ - test/unit/wlang/ruby_expected.rb
167
+ - test/unit/wlang/ruby_template.wrb
168
+ - test/unit/wlang/ruleset_utils_test.rb
169
+ - test/unit/wlang/specification_examples_test.rb
170
+ - test/unit/wlang/test_utils.rb
171
+ - test/unit/wlang/wlang_test.rb
89
172
  - bin/wlang
90
173
  - doc/specification/about.rdoc
174
+ - doc/specification/dialect.wtpl
91
175
  - doc/specification/dialects.wtpl
92
176
  - doc/specification/examples.rb
93
177
  - doc/specification/glossary.wtpl
@@ -102,8 +186,11 @@ files:
102
186
  - doc/specification/symbols.wtpl
103
187
  - README.rdoc
104
188
  - LICENCE.rdoc
189
+ - CHANGELOG.rdoc
105
190
  has_rdoc: true
106
191
  homepage: http://blambeau.github.com/wlang/
192
+ licenses: []
193
+
107
194
  post_install_message:
108
195
  rdoc_options:
109
196
  - --title
@@ -114,23 +201,29 @@ rdoc_options:
114
201
  require_paths:
115
202
  - lib
116
203
  required_ruby_version: !ruby/object:Gem::Requirement
204
+ none: false
117
205
  requirements:
118
206
  - - ">="
119
207
  - !ruby/object:Gem::Version
208
+ hash: 3
209
+ segments:
210
+ - 0
120
211
  version: "0"
121
- version:
122
212
  required_rubygems_version: !ruby/object:Gem::Requirement
213
+ none: false
123
214
  requirements:
124
215
  - - ">="
125
216
  - !ruby/object:Gem::Version
217
+ hash: 3
218
+ segments:
219
+ - 0
126
220
  version: "0"
127
- version:
128
221
  requirements: []
129
222
 
130
223
  rubyforge_project:
131
- rubygems_version: 1.3.1
224
+ rubygems_version: 1.3.7
132
225
  signing_key:
133
- specification_version: 2
226
+ specification_version: 3
134
227
  summary: WLang code generator
135
228
  test_files: []
136
229