parser 2.3.1.2 → 2.3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 510fea6b1b64b2a9573e905d9640c0de0f3be4ce
4
- data.tar.gz: 76a898e7833105f9fc41b8733c6c1e30e235316f
3
+ metadata.gz: 55f92d909ef9936b5de562036dfca9b1c0f080c7
4
+ data.tar.gz: a6b6013d253ee25ee86458e1b4c7a4b8f56ffd28
5
5
  SHA512:
6
- metadata.gz: d500c0b1f3ab3db025246843159f69f0e52b1c98ac30782d33e5223f75869de16a254cf3889c7a6f6063aa039ac11ceb0e8e1a5e397f2262ea9588412cbf3cfe
7
- data.tar.gz: 0843bbcecadaee915a1680470523046c86abb732d10f46cfc4444b69acaa3c8228695b90c508f1b87519e3906dfa61b3840c0c46b4db05eab85a5286127f7d15
6
+ metadata.gz: db2be0308e370feac7834afc58a64e7a63db55af0d6ed16d048f45389ba24662327e1114487979775ba62aaad91ea9a3d359943ca35542a7445228e8c935bc21
7
+ data.tar.gz: eae6a4291f22c79258b2986cde1d77954002df10f7d6a4f51ca2bb5ae145bfa6b2b285717e48d864ece4760844eb843868186de55fe21c6d65547997d7b219c9
@@ -4,8 +4,8 @@ rvm:
4
4
  - 1.9.2
5
5
  - 1.9.3
6
6
  - 2.0.0
7
- - 2.2.4
8
- - 2.3.0
7
+ - 2.2.5
8
+ - 2.3.1
9
9
  - ruby-head
10
10
  - jruby-18mode
11
11
  - jruby-19mode
@@ -17,7 +17,7 @@ matrix:
17
17
  before_install:
18
18
  - gem update bundler
19
19
  - bundle --version
20
- - gem update --system 2.1.11
20
+ - gem update --system 2.6.6
21
21
  - gem --version
22
22
  script:
23
23
  - bundle exec rake test_cov
data/.yardopts CHANGED
@@ -12,6 +12,8 @@
12
12
  --exclude lib/parser/ruby20.rb
13
13
  --exclude lib/parser/ruby21.rb
14
14
  --exclude lib/parser/ruby22.rb
15
+ --exclude lib/parser/ruby23.rb
16
+ --exclude lib/parser/ruby24.rb
15
17
  --exclude lib/parser/macruby.rb
16
18
  --exclude lib/parser/rubymotion.rb
17
19
  -
@@ -1,6 +1,23 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ v2.3.1.3 (2016-09-17)
5
+ ---------------------
6
+
7
+ API modifications:
8
+ * parser/current: latest 2.3 release is 2.3.2. (Chris Riddoch)
9
+
10
+ Features implemented:
11
+ * ruby24.y: "f (g rescue nil)": allow stmt after tLPAREN_ARG. (whitequark)
12
+
13
+ Bugs fixed:
14
+ * ruby{18,19,20,21,22,23,24}.y: parse trailing commas as mlhs for block args "a.b{ |c,| d }" (fixes #312) (John Backus)
15
+ * Builders::Default: "begin; 1; else; 2; end": do not drop else. (whitequark)
16
+ * Builders::Default: "a&.b &&= c": fix safe navigation in lhs of op-assignment. (Ilya Bylich)
17
+ * AST::Processor: handle "csend" as "send". (#301) (Ilya Bylich)
18
+ * Parser::AST::Processor: do not spuriously modify ASTs. (Ilya Bylich)
19
+ * lexer.rl: "%w\a b\": lex backslash-delimited words literals. (Masataka Kuwabara)
20
+
4
21
  v2.3.1.2 (2016-06-02)
5
22
  ---------------------
6
23
 
@@ -72,7 +89,7 @@ Bugs fixed:
72
89
  * Add :csend to Parser::Meta::NODE_TYPES (Markus Schirp)
73
90
  * lexer/dedenter: "\<\<x\n y\\n z\nx": don't dedent after escaped newline. (whitequark)
74
91
 
75
- v2.3.1.2 (2016-01-16)
92
+ v2.3.1.3 (2016-01-16)
76
93
  ---------------------
77
94
 
78
95
  v2.3.0.1 (2016-01-14)
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/parser.svg)](https://badge.fury.io/rb/parser)
4
4
  [![Build Status](https://travis-ci.org/whitequark/parser.svg?branch=master)](https://travis-ci.org/whitequark/parser)
5
- [![Coverage Status](https://coveralls.io/repos/whitequark/parser/badge.svg?branch=master)](https://coveralls.io/r/whitequark/parser)
6
5
 
7
6
  _Parser_ is a production-ready Ruby parser written in pure Ruby. It recognizes as
8
7
  much or more code than Ripper, Melbourne, JRubyParser or ruby\_parser, and
data/Rakefile CHANGED
@@ -9,6 +9,7 @@ task :default => [:test]
9
9
  Rake::TestTask.new do |t|
10
10
  t.libs = %w(test/ lib/)
11
11
  t.test_files = FileList["test/**/test_*.rb"]
12
+ t.warning = false
12
13
  end
13
14
 
14
15
  task :test_cov do
@@ -39,9 +39,13 @@ module Parser
39
39
  def on_vasgn(node)
40
40
  name, value_node = *node
41
41
 
42
- node.updated(nil, [
43
- name, process(value_node)
44
- ])
42
+ if !value_node.nil?
43
+ node.updated(nil, [
44
+ name, process(value_node)
45
+ ])
46
+ else
47
+ node
48
+ end
45
49
  end
46
50
 
47
51
  # @private
@@ -79,9 +83,15 @@ module Parser
79
83
  def on_casgn(node)
80
84
  scope_node, name, value_node = *node
81
85
 
82
- node.updated(nil, [
83
- process(scope_node), name, process(value_node)
84
- ])
86
+ if !value_node.nil?
87
+ node.updated(nil, [
88
+ process(scope_node), name, process(value_node)
89
+ ])
90
+ else
91
+ node.updated(nil, [
92
+ process(scope_node), name
93
+ ])
94
+ end
85
95
  end
86
96
 
87
97
  alias on_args process_regular_node
@@ -89,9 +99,13 @@ module Parser
89
99
  def on_argument(node)
90
100
  arg_name, value_node = *node
91
101
 
92
- node.updated(nil, [
93
- arg_name, process(value_node)
94
- ])
102
+ if !value_node.nil?
103
+ node.updated(nil, [
104
+ arg_name, process(value_node)
105
+ ])
106
+ else
107
+ node
108
+ end
95
109
  end
96
110
 
97
111
  # @private
@@ -147,6 +161,8 @@ module Parser
147
161
  ])
148
162
  end
149
163
 
164
+ alias on_csend on_send
165
+
150
166
  alias on_block process_regular_node
151
167
 
152
168
  alias on_while process_regular_node
@@ -487,7 +487,7 @@ module Parser
487
487
 
488
488
  def op_assign(lhs, op_t, rhs)
489
489
  case lhs.type
490
- when :gvasgn, :ivasgn, :lvasgn, :cvasgn, :casgn, :send
490
+ when :gvasgn, :ivasgn, :lvasgn, :cvasgn, :casgn, :send, :csend
491
491
  operator = value(op_t)[0..-1].to_sym
492
492
  source_map = lhs.loc.
493
493
  with_operator(loc(op_t)).
@@ -982,6 +982,19 @@ module Parser
982
982
  [ compound_stmt, *(rescue_bodies + [ nil ]) ],
983
983
  eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil))
984
984
  end
985
+ elsif else_t
986
+ statements = []
987
+ if compound_stmt.type == :begin
988
+ statements += compound_stmt.children
989
+ else
990
+ statements.push(compound_stmt)
991
+ end
992
+ statements.push(
993
+ n(:begin, [ else_ ],
994
+ collection_map(else_t, [ else_ ], nil)))
995
+ compound_stmt =
996
+ n(:begin, statements,
997
+ collection_map(nil, statements, nil))
985
998
  end
986
999
 
987
1000
  if ensure_t
@@ -55,7 +55,7 @@ module Parser
55
55
  CurrentRuby = Ruby22
56
56
 
57
57
  when /^2\.3\./
58
- current_version = '2.3.1'
58
+ current_version = '2.3.2'
59
59
  if RUBY_VERSION != current_version
60
60
  warn_syntax_deviation 'parser/ruby23', current_version
61
61
  end
@@ -385,13 +385,19 @@ class Parser::Lexer
385
385
  new_literal = Literal.new(self, *args)
386
386
  @literal_stack.push(new_literal)
387
387
 
388
- if new_literal.words?
388
+ if new_literal.words? && new_literal.backslash_delimited?
389
+ if new_literal.interpolate?
390
+ self.class.lex_en_interp_backslash_delimited_words
391
+ else
392
+ self.class.lex_en_plain_backslash_delimited_words
393
+ end
394
+ elsif new_literal.words? && !new_literal.backslash_delimited?
389
395
  if new_literal.interpolate?
390
396
  self.class.lex_en_interp_words
391
397
  else
392
398
  self.class.lex_en_plain_words
393
399
  end
394
- elsif new_literal.backslash_delimited?
400
+ elsif !new_literal.words? && new_literal.backslash_delimited?
395
401
  if new_literal.interpolate?
396
402
  self.class.lex_en_interp_backslash_delimited
397
403
  else
@@ -1066,6 +1072,20 @@ class Parser::Lexer
1066
1072
  c_any => extend_string;
1067
1073
  *|;
1068
1074
 
1075
+ interp_backslash_delimited_words := |*
1076
+ interp_code => extend_interp_code;
1077
+ interp_var => extend_interp_var;
1078
+ c_space+ => extend_string_space;
1079
+ c_eol => extend_string_eol;
1080
+ c_any => extend_string;
1081
+ *|;
1082
+
1083
+ plain_backslash_delimited_words := |*
1084
+ c_space+ => extend_string_space;
1085
+ c_eol => extend_string_eol;
1086
+ c_any => extend_string;
1087
+ *|;
1088
+
1069
1089
  regexp_modifiers := |*
1070
1090
  [A-Za-z]+
1071
1091
  => {
@@ -1350,6 +1350,9 @@ rule
1350
1350
  concat(val[3])
1351
1351
  }
1352
1352
  | f_arg tCOMMA
1353
+ {
1354
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1355
+ }
1353
1356
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
1354
1357
  {
1355
1358
  result = val[0].
@@ -1259,6 +1259,9 @@ rule
1259
1259
 
1260
1260
  block_var: block_par
1261
1261
  | block_par tCOMMA
1262
+ {
1263
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1264
+ }
1262
1265
  | block_par tCOMMA tAMPER lhs
1263
1266
  {
1264
1267
  result = val[0].
@@ -1330,6 +1330,9 @@ rule
1330
1330
  concat(val[3])
1331
1331
  }
1332
1332
  | f_arg tCOMMA
1333
+ {
1334
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1335
+ }
1333
1336
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
1334
1337
  {
1335
1338
  result = val[0].
@@ -1385,6 +1385,9 @@ opt_block_args_tail:
1385
1385
  concat(val[3])
1386
1386
  }
1387
1387
  | f_arg tCOMMA
1388
+ {
1389
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1390
+ }
1388
1391
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1389
1392
  {
1390
1393
  result = val[0].
@@ -1365,6 +1365,9 @@ opt_block_args_tail:
1365
1365
  concat(val[3])
1366
1366
  }
1367
1367
  | f_arg tCOMMA
1368
+ {
1369
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1370
+ }
1368
1371
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1369
1372
  {
1370
1373
  result = val[0].
@@ -1364,6 +1364,9 @@ opt_block_args_tail:
1364
1364
  concat(val[3])
1365
1365
  }
1366
1366
  | f_arg tCOMMA
1367
+ {
1368
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1369
+ }
1367
1370
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1368
1371
  {
1369
1372
  result = val[0].
@@ -1364,6 +1364,9 @@ opt_block_args_tail:
1364
1364
  concat(val[3])
1365
1365
  }
1366
1366
  | f_arg tCOMMA
1367
+ {
1368
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1369
+ }
1367
1370
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1368
1371
  {
1369
1372
  result = val[0].
@@ -945,15 +945,15 @@ rule
945
945
  result = @lexer.cmdarg.dup
946
946
  @lexer.cmdarg.clear
947
947
  }
948
- expr
948
+ stmt
949
949
  {
950
950
  @lexer.state = :expr_endarg
951
951
  }
952
- opt_nl tRPAREN
952
+ rparen
953
953
  {
954
954
  @lexer.cmdarg = val[1]
955
955
 
956
- result = @builder.begin(val[0], val[2], val[5])
956
+ result = @builder.begin(val[0], val[2], val[4])
957
957
  }
958
958
  | tLPAREN_ARG
959
959
  {
@@ -1364,6 +1364,9 @@ opt_block_args_tail:
1364
1364
  concat(val[3])
1365
1365
  }
1366
1366
  | f_arg tCOMMA
1367
+ {
1368
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1369
+ }
1367
1370
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1368
1371
  {
1369
1372
  result = val[0].
@@ -1323,6 +1323,9 @@ rule
1323
1323
  concat(val[3])
1324
1324
  }
1325
1325
  | f_arg tCOMMA
1326
+ {
1327
+ result = [@builder.multi_lhs(nil, val[0], nil)]
1328
+ }
1326
1329
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_f_block_arg
1327
1330
  {
1328
1331
  result = val[0].
@@ -388,8 +388,6 @@ module Parser
388
388
  end
389
389
 
390
390
  def merge_replacements(actions)
391
- # `actions` must be sorted by beginning position
392
- begin_pos = actions.first.range.begin_pos
393
391
  result = ''
394
392
  prev_act = nil
395
393
 
@@ -1,3 +1,3 @@
1
1
  module Parser
2
- VERSION = '2.3.1.2'
2
+ VERSION = '2.3.1.3'
3
3
  end
@@ -41,12 +41,6 @@ Gem::Specification.new do |spec|
41
41
 
42
42
  spec.add_development_dependency 'minitest', '~> 5.0'
43
43
  spec.add_development_dependency 'simplecov', '~> 0.8.2'
44
- spec.add_development_dependency 'coveralls'
45
- spec.add_development_dependency 'json_pure' # for coveralls on 1.9.2
46
- spec.add_development_dependency 'mime-types', '~> 1.25' # for coveralls on 1.8.7
47
- spec.add_development_dependency 'rest-client', '~> 1.6.7' # 1.8.7
48
-
49
- spec.add_development_dependency 'simplecov-sublime-ruby-coverage'
50
44
 
51
45
  spec.add_development_dependency 'gauntlet'
52
46
  end
@@ -2,7 +2,6 @@ require 'tempfile'
2
2
  require 'minitest/test'
3
3
 
4
4
  require 'simplecov'
5
- require 'coveralls'
6
5
 
7
6
  if ENV.include?('COVERAGE') && SimpleCov.usable?
8
7
  if defined?(TracePoint)
@@ -15,13 +14,9 @@ if ENV.include?('COVERAGE') && SimpleCov.usable?
15
14
  at_exit { RaccCoverage.stop }
16
15
  end
17
16
 
18
- require 'simplecov-sublime-ruby-coverage'
19
-
20
17
  SimpleCov.start do
21
18
  self.formatter = SimpleCov::Formatter::MultiFormatter[
22
19
  SimpleCov::Formatter::HTMLFormatter,
23
- SimpleCov::Formatter::SublimeRubyCoverageFormatter,
24
- Coveralls::SimpleCov::Formatter
25
20
  ]
26
21
 
27
22
  add_group 'Grammars' do |source_file|
@@ -10,7 +10,7 @@ module ParseHelper
10
10
  require 'parser/macruby'
11
11
  require 'parser/rubymotion'
12
12
 
13
- ALL_VERSIONS = %w(1.8 1.9 2.0 2.1 2.2 2.3 mac ios)
13
+ ALL_VERSIONS = %w(1.8 1.9 2.0 2.1 2.2 2.3 2.4 mac ios)
14
14
  end
15
15
 
16
16
  def setup
@@ -2188,6 +2188,55 @@ class TestLexer < Minitest::Test
2188
2188
  :tSTRING_END, "\\", [3, 4])
2189
2189
  end
2190
2190
 
2191
+ def test_string_pct_w_backslash
2192
+ assert_scanned("%w\\s1 s2 \\",
2193
+ :tQWORDS_BEG, "%w\\", [0, 3],
2194
+ :tSTRING_CONTENT, "s1", [3, 5],
2195
+ :tSPACE, nil, [5, 6],
2196
+ :tSTRING_CONTENT, "s2", [6, 8],
2197
+ :tSPACE, nil, [8, 9],
2198
+ :tSTRING_END, "\\", [9, 10])
2199
+ end
2200
+
2201
+ def test_string_pct_w_backslash_nl
2202
+ assert_scanned("%w\\s1 s2 \\\n",
2203
+ :tQWORDS_BEG, "%w\\", [0, 3],
2204
+ :tSTRING_CONTENT, "s1", [3, 5],
2205
+ :tSPACE, nil, [5, 6],
2206
+ :tSTRING_CONTENT, "s2", [6, 8],
2207
+ :tSPACE, nil, [8, 9],
2208
+ :tSTRING_END, "\\", [9, 10],
2209
+ :tNL, nil, [10, 11])
2210
+ end
2211
+
2212
+ def test_string_pct_w_backslash_interp_nl
2213
+ assert_scanned("%W\\blah #x a \#@a b \#$b c \#{3} # \\",
2214
+ :tWORDS_BEG, "%W\\", [0, 3],
2215
+ :tSTRING_CONTENT, "blah", [3, 7],
2216
+ :tSPACE, nil, [7, 8],
2217
+ :tSTRING_CONTENT, "#x", [8, 10],
2218
+ :tSPACE, nil, [10, 11],
2219
+ :tSTRING_CONTENT, "a", [11, 12],
2220
+ :tSPACE, nil, [12, 13],
2221
+ :tSTRING_DVAR, nil, [13, 14],
2222
+ :tIVAR, "@a", [14, 16],
2223
+ :tSPACE, nil, [16, 17],
2224
+ :tSTRING_CONTENT, "b", [17, 18],
2225
+ :tSPACE, nil, [18, 19],
2226
+ :tSTRING_DVAR, nil, [19, 20],
2227
+ :tGVAR, "$b", [20, 22],
2228
+ :tSPACE, nil, [22, 23],
2229
+ :tSTRING_CONTENT, "c", [23, 24],
2230
+ :tSPACE, nil, [24, 25],
2231
+ :tSTRING_DBEG, '#{', [25, 27],
2232
+ :tINTEGER, 3, [27, 28],
2233
+ :tRCURLY, "}", [28, 29],
2234
+ :tSPACE, nil, [29, 30],
2235
+ :tSTRING_CONTENT, "#", [30, 31],
2236
+ :tSPACE, nil, [31, 32],
2237
+ :tSTRING_END, "\\", [32, 33])
2238
+ end
2239
+
2191
2240
  def test_string_pct_backslash_with_bad_escape
2192
2241
  # No escapes are allowed in a backslash-delimited string
2193
2242
  refute_scanned("%\\a\\n\\",
@@ -2350,8 +2350,9 @@ class TestParser < Minitest::Test
2350
2350
  %w(1.8))
2351
2351
 
2352
2352
  assert_parses_blockargs(
2353
- s(:args, s(:arg, :a)),
2354
- %q{|a,|})
2353
+ s(:args, s(:mlhs, s(:arg, :a))),
2354
+ %q{|a,|}
2355
+ )
2355
2356
 
2356
2357
  assert_parses_blockargs(
2357
2358
  s(:args, s(:arg, :a), s(:blockarg, :b)),
@@ -3436,6 +3437,14 @@ class TestParser < Minitest::Test
3436
3437
  ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 ios mac))
3437
3438
  end
3438
3439
 
3440
+ def test_send_op_asgn_conditional
3441
+ assert_parses(
3442
+ s(:and_asgn, s(:csend, s(:send, nil, :a), :b), s(:int, 1)),
3443
+ %q{a&.b &&= 1},
3444
+ %q{},
3445
+ ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 ios mac))
3446
+ end
3447
+
3439
3448
  def test_lvar_injecting_match
3440
3449
  assert_parses(
3441
3450
  s(:begin,
@@ -4207,10 +4216,11 @@ class TestParser < Minitest::Test
4207
4216
  end
4208
4217
 
4209
4218
  def test_if_masgn__24
4210
- assert_diagnoses(
4211
- [:error, :masgn_as_condition],
4219
+ assert_parses(
4220
+ s(:if,
4221
+ s(:begin, nil), nil, nil),
4212
4222
  %q{if (a, b = foo); end},
4213
- %q{ ~~~~~~~~~~ location},
4223
+ %q{},
4214
4224
  ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 2.3 ios mac))
4215
4225
  end
4216
4226
 
@@ -4710,6 +4720,23 @@ class TestParser < Minitest::Test
4710
4720
  end
4711
4721
 
4712
4722
  def test_rescue_else_useless
4723
+ assert_parses(
4724
+ s(:kwbegin,
4725
+ s(:int, 1),
4726
+ s(:begin,
4727
+ s(:int, 2))),
4728
+ %q{begin; 1; else; 2; end},
4729
+ %q{ ~~~~ begin (begin)})
4730
+
4731
+ assert_parses(
4732
+ s(:kwbegin,
4733
+ s(:int, 1),
4734
+ s(:int, 2),
4735
+ s(:begin,
4736
+ s(:int, 3))),
4737
+ %q{begin; 1; 2; else; 3; end},
4738
+ %q{ ~~~~ begin (begin)})
4739
+
4713
4740
  assert_diagnoses(
4714
4741
  [:warning, :useless_else],
4715
4742
  %q{begin; 1; else; 2; end},
@@ -5450,6 +5477,24 @@ class TestParser < Minitest::Test
5450
5477
  ALL_VERSIONS - %w(1.8))
5451
5478
  end
5452
5479
 
5480
+ def test_ruby_bug_12686
5481
+ assert_parses(
5482
+ s(:send, nil, :f,
5483
+ s(:begin,
5484
+ s(:rescue,
5485
+ s(:send, nil, :g),
5486
+ s(:resbody, nil, nil,
5487
+ s(:nil)), nil))),
5488
+ %q{f (g rescue nil)},
5489
+ %q{},
5490
+ ALL_VERSIONS - %w(1.8 1.9 2.0 2.1 2.2 2.3 ios mac))
5491
+
5492
+ assert_diagnoses(
5493
+ [:error, :unexpected_token, {:token => 'kRESCUE_MOD'}],
5494
+ %q{f(g rescue nil)},
5495
+ %q{ ^^^^^^ location})
5496
+ end
5497
+
5453
5498
  def test_parser_bug_198
5454
5499
  assert_parses(
5455
5500
  s(:array,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1.2
4
+ version: 2.3.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - whitequark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2016-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -136,76 +136,6 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.8.2
139
- - !ruby/object:Gem::Dependency
140
- name: coveralls
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: json_pure
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: mime-types
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '1.25'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '1.25'
181
- - !ruby/object:Gem::Dependency
182
- name: rest-client
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 1.6.7
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 1.6.7
195
- - !ruby/object:Gem::Dependency
196
- name: simplecov-sublime-ruby-coverage
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
139
  - !ruby/object:Gem::Dependency
210
140
  name: gauntlet
211
141
  requirement: !ruby/object:Gem::Requirement