esprima 1.4.2 → 1.4.3
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.
- checksums.yaml +7 -0
- data/History.txt +4 -0
- data/lib/esprima/parser.rb +4 -4
- data/lib/esprima/version.rb +1 -1
- data/spec/parser_spec.rb +41 -1
- metadata +10 -29
checksums.yaml
ADDED
@@ -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
|
data/History.txt
CHANGED
data/lib/esprima/parser.rb
CHANGED
@@ -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
|
data/lib/esprima/version.rb
CHANGED
data/spec/parser_spec.rb
CHANGED
@@ -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.
|
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-
|
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:
|
141
|
+
rubygems_version: 2.0.3
|
162
142
|
signing_key:
|
163
|
-
specification_version:
|
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
|