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.
@@ -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