ruby_parser 1.0.0 → 2.0.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.

Potentially problematic release.


This version of ruby_parser might be problematic. Click here for more details.

@@ -0,0 +1,177 @@
1
+ require 'test/unit'
2
+ require 'ruby_parser_extras'
3
+
4
+ class TestStackState < Test::Unit::TestCase
5
+ def test_stack_state
6
+ s = StackState.new :test
7
+ s.push true
8
+ s.push false
9
+ s.lexpop
10
+ assert_equal [false, true], s.stack
11
+ end
12
+
13
+ def test_is_in_state
14
+ s = StackState.new :test
15
+ assert_equal false, s.is_in_state
16
+ s.push false
17
+ assert_equal false, s.is_in_state
18
+ s.push true
19
+ assert_equal true, s.is_in_state
20
+ s.push false
21
+ assert_equal false, s.is_in_state
22
+ end
23
+
24
+ def test_lexpop
25
+ s = StackState.new :test
26
+ assert_equal [false], s.stack
27
+ s.push true
28
+ s.push false
29
+ assert_equal [false, true, false], s.stack
30
+ s.lexpop
31
+ assert_equal [false, true], s.stack
32
+ end
33
+
34
+ def test_pop
35
+ s = StackState.new :test
36
+ assert_equal [false], s.stack
37
+ s.push true
38
+ assert_equal [false, true], s.stack
39
+ assert_equal true, s.pop
40
+ assert_equal [false], s.stack
41
+ end
42
+
43
+ def test_push
44
+ s = StackState.new :test
45
+ assert_equal [false], s.stack
46
+ s.push true
47
+ s.push false
48
+ assert_equal [false, true, false], s.stack
49
+ end
50
+ end
51
+
52
+ class TestEnvironment < Test::Unit::TestCase
53
+ def deny t
54
+ assert ! t
55
+ end
56
+
57
+ def setup
58
+ @env = Environment.new
59
+ @env[:blah] = 42
60
+ assert_equal 42, @env[:blah]
61
+ end
62
+
63
+ def test_use
64
+ @env.use :blah
65
+ expected = [{ :blah => true }]
66
+ assert_equal expected, @env.instance_variable_get(:"@use")
67
+ end
68
+
69
+ def test_use_scoped
70
+ @env.use :blah
71
+ @env.extend
72
+ expected = [{}, { :blah => true }]
73
+ assert_equal expected, @env.instance_variable_get(:"@use")
74
+ end
75
+
76
+ def test_used_eh
77
+ @env.extend :dynamic
78
+ @env[:x] = :dvar
79
+ @env.use :x
80
+ assert_equal true, @env.used?(:x)
81
+ end
82
+
83
+ def test_used_eh_none
84
+ assert_equal nil, @env.used?(:x)
85
+ end
86
+
87
+ def test_used_eh_scoped
88
+ self.test_used_eh
89
+ @env.extend :dynamic
90
+ assert_equal true, @env.used?(:x)
91
+ end
92
+
93
+ def test_var_scope_dynamic
94
+ @env.extend :dynamic
95
+ assert_equal 42, @env[:blah]
96
+ @env.unextend
97
+ assert_equal 42, @env[:blah]
98
+ end
99
+
100
+ def test_var_scope_static
101
+ @env.extend
102
+ assert_equal nil, @env[:blah]
103
+ @env.unextend
104
+ assert_equal 42, @env[:blah]
105
+ end
106
+
107
+ def test_dynamic
108
+ expected1 = {}
109
+ expected2 = { :x => 42 }
110
+
111
+ assert_equal expected1, @env.dynamic
112
+ begin
113
+ @env.extend :dynamic
114
+ assert_equal expected1, @env.dynamic
115
+
116
+ @env[:x] = 42
117
+ assert_equal expected2, @env.dynamic
118
+
119
+ begin
120
+ @env.extend :dynamic
121
+ assert_equal expected2, @env.dynamic
122
+ @env.unextend
123
+ end
124
+
125
+ assert_equal expected2, @env.dynamic
126
+ @env.unextend
127
+ end
128
+ assert_equal expected1, @env.dynamic
129
+ end
130
+
131
+ def test_all_dynamic
132
+ expected = { :blah => 42 }
133
+
134
+ @env.extend :dynamic
135
+ assert_equal expected, @env.all
136
+ @env.unextend
137
+ assert_equal expected, @env.all
138
+ end
139
+
140
+ def test_all_static
141
+ @env.extend
142
+ expected = { }
143
+ assert_equal expected, @env.all
144
+
145
+ @env.unextend
146
+ expected = { :blah => 42 }
147
+ assert_equal expected, @env.all
148
+ end
149
+
150
+ def test_dynamic_eh
151
+ assert_equal false, @env.dynamic?
152
+ @env.extend :dynamic
153
+ assert_equal true, @env.dynamic?
154
+ @env.extend
155
+ assert_equal false, @env.dynamic?
156
+ end
157
+
158
+ def test_all_static_deeper
159
+ expected0 = { :blah => 42 }
160
+ expected1 = { :blah => 42, :blah2 => 24 }
161
+ expected2 = { :blah => 27 }
162
+
163
+ @env.extend :dynamic
164
+ @env[:blah2] = 24
165
+ assert_equal expected1, @env.all
166
+
167
+ @env.extend
168
+ @env[:blah] = 27
169
+ assert_equal expected2, @env.all
170
+
171
+ @env.unextend
172
+ assert_equal expected1, @env.all
173
+
174
+ @env.unextend
175
+ assert_equal expected0, @env.all
176
+ end
177
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -9,11 +9,12 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-12-22 00:00:00 -08:00
12
+ date: 2008-10-22 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ParseTree
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -21,19 +22,31 @@ dependencies:
21
22
  - !ruby/object:Gem::Version
22
23
  version: "0"
23
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: sexp_processor
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ version:
24
35
  - !ruby/object:Gem::Dependency
25
36
  name: hoe
37
+ type: :development
26
38
  version_requirement:
27
39
  version_requirements: !ruby/object:Gem::Requirement
28
40
  requirements:
29
41
  - - ">="
30
42
  - !ruby/object:Gem::Version
31
- version: 1.4.0
43
+ version: 1.8.0
32
44
  version:
33
- description: "ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension). RP's output is the same as ParseTree's output: s-expressions using ruby's arrays and base types. == FEATURES/PROBLEMS: * Pure ruby, no compiles. * Incredibly simple interface. * Output is 100% equivalent to ParseTree. * Can utilize PT's SexpProcessor and UnifiedRuby for language processing. * Known Issue: Speed sucks currently. 5500 tests currently run in 21 min. * Known Issue: Code is waaay ugly. Port of a port. Not my fault. Will fix RSN. * Known Issue: I don't currently support newline nodes. * Known Issue: Totally awesome. * Known Issue: dasgn_curr decls can be out of order from ParseTree's. * TODO: Add comment nodes. == SYNOPSIS: RubyParser.new.parse \"1+1\" # => s(:call, s(:lit, 1), :+, s(:array, s(:lit, 1)))"
34
- email: ryand-ruby@zenspider.com
35
- executables: []
36
-
45
+ description: "ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension). RP's output is the same as ParseTree's output: s-expressions using ruby's arrays and base types."
46
+ email:
47
+ - ryand-ruby@zenspider.com
48
+ executables:
49
+ - ruby_parse
37
50
  extensions: []
38
51
 
39
52
  extra_rdoc_files:
@@ -46,13 +59,16 @@ files:
46
59
  - Manifest.txt
47
60
  - README.txt
48
61
  - Rakefile
62
+ - bin/ruby_parse
49
63
  - lib/ruby_lexer.rb
50
64
  - lib/ruby_parser.y
65
+ - lib/ruby_parser_extras.rb
51
66
  - test/test_ruby_lexer.rb
52
67
  - test/test_ruby_parser.rb
68
+ - test/test_ruby_parser_extras.rb
53
69
  - lib/ruby_parser.rb
54
70
  has_rdoc: true
55
- homepage: " http://parsetree.rubyforge.org/"
71
+ homepage: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
56
72
  post_install_message:
57
73
  rdoc_options:
58
74
  - --main
@@ -74,10 +90,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
90
  requirements: []
75
91
 
76
92
  rubyforge_project: parsetree
77
- rubygems_version: 1.0.1
93
+ rubygems_version: 1.3.0
78
94
  signing_key:
79
95
  specification_version: 2
80
- summary: "ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension). RP's output is the same as ParseTree's output: s-expressions using ruby's arrays and base types."
96
+ summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which does by default use a C extension)
81
97
  test_files:
82
98
  - test/test_ruby_lexer.rb
83
99
  - test/test_ruby_parser.rb
100
+ - test/test_ruby_parser_extras.rb