esprima 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cb99d449d7a2ebbfffc9a8d830f9afc19344b894
4
+ data.tar.gz: 3d6de655fc553f08ca5a1a70eb767123fccb458d
5
+ SHA512:
6
+ metadata.gz: 5a4a17a292e8fee72249267e8237a5481b3dfafa50e0561e55a62d773a9fa5cf594e2a9b4efd124f5f7d372bca51a974c95bfc5f50d1c514c5de56a477200f2b
7
+ data.tar.gz: ee86661fe2fcbd77658745ac0a6eb1768fa5e881584f741156567c6a0c1bf1b4fde2f67f639c5e5da7ea5bee0ddae6a1a8920b9cef403d80475d527825d2bbfe
@@ -1,3 +1,7 @@
1
+ === 1.4.3
2
+
3
+ * Allow options to be passed to Esprima parser
4
+
1
5
  === 1.4.2
2
6
 
3
7
  * Added AST#each_raw for better performance when iterating over elements of a parse tree.
@@ -6,12 +6,12 @@ module Esprima
6
6
  @esprima = Esprima.new_environment
7
7
  end
8
8
 
9
- def parse(code)
10
- Esprima::AST.new(to_ruby_hash(@esprima.parse(code)), @esprima)
9
+ def parse(code, opts = {})
10
+ Esprima::AST.new(to_ruby_hash(@esprima.parse(code, opts)), @esprima)
11
11
  end
12
12
 
13
- def parse_file(file)
14
- parse(read_file(file))
13
+ def parse_file(file, opts = {})
14
+ parse(read_file(file), opts)
15
15
  end
16
16
 
17
17
  protected
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Esprima
4
- VERSION = "1.4.2"
4
+ VERSION = "1.4.3"
5
5
  end
@@ -19,6 +19,31 @@ AST_RESULT = [{
19
19
  }
20
20
  }]
21
21
 
22
+ AST_RESULT_LOC = [{
23
+ :type => "ExpressionStatement",
24
+ :expression => {
25
+ :type => "BinaryExpression",
26
+ :operator => "+",
27
+ :left => {
28
+ :type => "Literal",
29
+ :value => 7,
30
+ :loc => {
31
+ :start => {:line => 1, :column => 0},
32
+ :end => { :line => 1, :column => 1},
33
+ }
34
+ },
35
+ :right => {
36
+ :type => "Literal",
37
+ :value => 8,
38
+ :loc => {
39
+ :start => {:line => 1, :column => 4},
40
+ :end => {:line => 1, :column => 5}
41
+ }},
42
+ :loc => {:start=>{:line=>1, :column=>0}, :end=>{:line=>1, :column=>5}}
43
+ },
44
+ :loc=>{:start=>{:line=>1, :column=>0}, :end=>{:line=>1, :column=>5}}
45
+ }]
46
+
22
47
  class MockV8
23
48
  class Array
24
49
  end
@@ -38,6 +63,12 @@ describe Esprima::Parser do
38
63
  result.should be_a(Esprima::AST)
39
64
  result[:body].should == AST_RESULT
40
65
  end
66
+
67
+ it "should accept esprima options" do
68
+ result = Esprima::Parser.new.parse(EXPRESSION, :loc => true)
69
+ result.should be_a(Esprima::AST)
70
+ result[:body].should == AST_RESULT_LOC
71
+ end
41
72
  end
42
73
 
43
74
  describe "#parse_file" do
@@ -48,8 +79,17 @@ describe Esprima::Parser do
48
79
  result.should be_a(Esprima::AST)
49
80
  result[:body].should == AST_RESULT
50
81
  end
82
+
83
+ it "should parse a basic js file with esprima options" do
84
+ parser = Esprima::Parser.new
85
+ mock(parser).read_file("my_file.js") { EXPRESSION }
86
+ result = parser.parse_file("my_file.js", :loc => true)
87
+ result.should be_a(Esprima::AST)
88
+ result[:body].should == AST_RESULT_LOC
89
+ end
51
90
  end
52
91
 
92
+
53
93
  describe "#js_type_of?" do
54
94
  it "returns true if the object's class name includes the given text, false otherwise" do
55
95
  parser = Esprima::Parser.new
@@ -63,4 +103,4 @@ describe Esprima::Parser do
63
103
  parser.send(:js_type_of?, mock_obj, :object).should be_true
64
104
  end
65
105
  end
66
- end
106
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esprima
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
5
- prerelease:
4
+ version: 1.4.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Cameron Dutro
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-04-24 00:00:00.000000000 Z
12
+ date: 2013-09-12 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: execjs
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: commonjs
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: escodegen
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,23 +56,20 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: rake
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: rspec
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: rr
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -134,32 +121,26 @@ files:
134
121
  - esprima.gemspec
135
122
  homepage: http://esprima.org
136
123
  licenses: []
124
+ metadata: {}
137
125
  post_install_message:
138
126
  rdoc_options: []
139
127
  require_paths:
140
128
  - lib
141
129
  required_ruby_version: !ruby/object:Gem::Requirement
142
- none: false
143
130
  requirements:
144
- - - ! '>='
131
+ - - '>='
145
132
  - !ruby/object:Gem::Version
146
133
  version: '0'
147
- segments:
148
- - 0
149
- hash: 926408375024729005
150
134
  required_rubygems_version: !ruby/object:Gem::Requirement
151
- none: false
152
135
  requirements:
153
- - - ! '>='
136
+ - - '>='
154
137
  - !ruby/object:Gem::Version
155
138
  version: '0'
156
- segments:
157
- - 0
158
- hash: 926408375024729005
159
139
  requirements: []
160
140
  rubyforge_project:
161
- rubygems_version: 1.8.25
141
+ rubygems_version: 2.0.3
162
142
  signing_key:
163
- specification_version: 3
143
+ specification_version: 4
164
144
  summary: Ruby wrapper around the Esprima static code analyzer for JavaScript.
165
145
  test_files: []
146
+ has_rdoc: true