unparser 0.1.16 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -5
- data/Changelog.md +5 -0
- data/Gemfile +1 -0
- data/Gemfile.devtools +9 -41
- data/README.md +1 -2
- data/config/flay.yml +1 -1
- data/config/rubocop.yml +10 -1
- data/lib/unparser/emitter.rb +2 -2
- data/lib/unparser/emitter/literal/dynamic_body.rb +2 -2
- data/lib/unparser/emitter/literal/primitive.rb +1 -1
- data/lib/unparser/emitter/send/index.rb +1 -1
- data/lib/unparser/preprocessor.rb +2 -2
- data/spec/spec_helper.rb +4 -0
- data/spec/unit/unparser_spec.rb +27 -21
- data/unparser.gemspec +4 -3
- metadata +19 -6
- data/rubyspec.sh +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a41fab2f00404023369e2884e52cbfee6b9c185
|
4
|
+
data.tar.gz: b1a7581222eff7a3a688403181fce2a7f79f18f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80c8b0f4341d2d7db23b5d182ec844eecf87f693b6aea4d3763a09bc69b9441b33a884ba031b33be1029dcad43625fed2d658162445b0fc2fff2b1cad2e59df9
|
7
|
+
data.tar.gz: fbdcc36729c937e203c302064ea6543db2f704eb95ecd678af19b3b4a58b4a7248a177160315633da59ac8aff74315cc07168661749ce6c7b35964dc1c138521
|
data/.travis.yml
CHANGED
@@ -1,15 +1,13 @@
|
|
1
|
+
sudo: false
|
1
2
|
language: ruby
|
2
3
|
script: 'bundle exec rake ci'
|
3
4
|
rvm:
|
4
|
-
- 1.9.3
|
5
5
|
- 2.0.0
|
6
|
-
- 2.1.
|
7
|
-
- 2.
|
6
|
+
- 2.1.4
|
7
|
+
- 2.2.0
|
8
8
|
- rbx-2
|
9
9
|
matrix:
|
10
10
|
include:
|
11
|
-
- rvm: jruby
|
12
|
-
env: JRUBY_OPTS="$JRUBY_OPTS --debug --1.9" # for simplecov
|
13
11
|
- rvm: jruby
|
14
12
|
env: JRUBY_OPTS="$JRUBY_OPTS --debug --2.0" # for simplecov
|
15
13
|
allow_failures:
|
data/Changelog.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.devtools
CHANGED
@@ -1,69 +1,37 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
group :development do
|
4
|
-
gem 'rake', '~> 10.3.2'
|
5
|
-
gem 'rspec', '~> 3.1.0'
|
6
|
-
gem 'rspec-its', '~> 1.0.1'
|
7
|
-
gem 'yard', '~> 0.8.7.4'
|
8
|
-
|
9
2
|
platform :rbx do
|
10
3
|
gem 'rubysl-singleton', '~> 2.0.0'
|
11
4
|
end
|
12
5
|
end
|
13
6
|
|
14
|
-
group :yard do
|
15
|
-
gem 'kramdown', '~> 1.3.3'
|
16
|
-
end
|
17
|
-
|
18
7
|
group :guard do
|
19
|
-
gem 'guard', '~> 2.
|
20
|
-
gem 'guard-bundler', '~> 2.
|
21
|
-
gem 'guard-rspec', '~> 4.
|
22
|
-
gem 'guard-rubocop', '~> 1.
|
8
|
+
gem 'guard', '~> 2.10.3'
|
9
|
+
gem 'guard-bundler', '~> 2.1.0'
|
10
|
+
gem 'guard-rspec', '~> 4.5.0'
|
11
|
+
gem 'guard-rubocop', '~> 1.2.0'
|
23
12
|
|
24
13
|
# file system change event handling
|
25
|
-
gem 'listen', '~> 2.
|
14
|
+
gem 'listen', '~> 2.8.4'
|
26
15
|
gem 'rb-fchange', '~> 0.0.6', require: false
|
27
16
|
gem 'rb-fsevent', '~> 0.9.4', require: false
|
28
17
|
gem 'rb-inotify', '~> 0.9.5', require: false
|
29
18
|
|
30
19
|
# notification handling
|
31
|
-
gem 'libnotify', '~> 0.
|
20
|
+
gem 'libnotify', '~> 0.9.0', require: false
|
32
21
|
gem 'rb-notifu', '~> 0.0.4', require: false
|
33
|
-
gem 'terminal-notifier-guard', '~> 1.
|
22
|
+
gem 'terminal-notifier-guard', '~> 1.6.4', require: false
|
34
23
|
end
|
35
24
|
|
36
25
|
group :metrics do
|
37
|
-
gem 'coveralls', '~> 0.7.0'
|
38
|
-
gem 'flay', '~> 2.5.0'
|
39
|
-
gem 'flog', '~> 4.2.1'
|
40
|
-
gem 'reek', '~> 1.3.7'
|
41
|
-
gem 'rubocop', '~> 0.26.1'
|
42
|
-
gem 'simplecov', '~> 0.7.1'
|
43
|
-
gem 'yardstick', '~> 0.9.9'
|
44
|
-
|
45
|
-
platforms :mri do
|
46
|
-
gem 'mutant', '~> 0.6.3'
|
47
|
-
gem 'mutant-rspec', '~> 0.6.3'
|
48
|
-
end
|
49
|
-
|
50
|
-
platforms :ruby_19, :ruby_20 do
|
51
|
-
gem 'yard-spellcheck', '~> 0.1.5'
|
52
|
-
end
|
53
|
-
|
54
26
|
platform :rbx do
|
55
27
|
gem 'json', '~> 1.8.1'
|
56
|
-
gem 'racc', '~> 1.4.
|
57
|
-
gem 'rubysl-logger', '~> 2.
|
28
|
+
gem 'racc', '~> 1.4.12'
|
29
|
+
gem 'rubysl-logger', '~> 2.1.0'
|
58
30
|
gem 'rubysl-open-uri', '~> 2.0.0'
|
59
31
|
gem 'rubysl-prettyprint', '~> 2.0.3'
|
60
32
|
end
|
61
33
|
end
|
62
34
|
|
63
|
-
group :benchmarks do
|
64
|
-
gem 'rbench', '~> 0.2.3'
|
65
|
-
end
|
66
|
-
|
67
35
|
platform :jruby do
|
68
36
|
group :jruby do
|
69
37
|
gem 'jruby-openssl', '~> 0.9.4'
|
data/README.md
CHANGED
@@ -110,8 +110,7 @@ Install the gem `unparser` via your prefered method.
|
|
110
110
|
People
|
111
111
|
------
|
112
112
|
|
113
|
-
|
114
|
-
* [Trent Ogren (misfo)](https://github.com/misfo) Adding comment reproduction
|
113
|
+
Various people contributed to this repository. See [Contributors](https://github.com/mbj/unparser/graphs/contributors).
|
115
114
|
|
116
115
|
Contributing
|
117
116
|
-------------
|
data/config/flay.yml
CHANGED
data/config/rubocop.yml
CHANGED
@@ -15,6 +15,9 @@ MethodLength:
|
|
15
15
|
CountComments: false
|
16
16
|
Max: 17
|
17
17
|
|
18
|
+
AbcSize:
|
19
|
+
Max: 18
|
20
|
+
|
18
21
|
# Avoid more than `Max` levels of nesting.
|
19
22
|
BlockNesting:
|
20
23
|
Max: 3
|
@@ -74,7 +77,13 @@ Blocks:
|
|
74
77
|
Enabled: false
|
75
78
|
|
76
79
|
# I like to have an empty line before closing the currently opened body
|
77
|
-
|
80
|
+
EmptyLinesAroundBlockBody:
|
81
|
+
Enabled: false
|
82
|
+
|
83
|
+
EmptyLinesAroundClassBody:
|
84
|
+
Enabled: false
|
85
|
+
|
86
|
+
EmptyLinesAroundModuleBody:
|
78
87
|
Enabled: false
|
79
88
|
|
80
89
|
# I like my style more
|
data/lib/unparser/emitter.rb
CHANGED
@@ -446,7 +446,7 @@ module Unparser
|
|
446
446
|
#
|
447
447
|
# @api private
|
448
448
|
#
|
449
|
-
def emit_body(body = body)
|
449
|
+
def emit_body(body = body())
|
450
450
|
unless body
|
451
451
|
buffer.indent
|
452
452
|
nl
|
@@ -494,7 +494,7 @@ module Unparser
|
|
494
494
|
#
|
495
495
|
# @api private
|
496
496
|
#
|
497
|
-
def run(emitter, node = node)
|
497
|
+
def run(emitter, node = node())
|
498
498
|
emitter.new(node, self).write_to_buffer
|
499
499
|
end
|
500
500
|
|
@@ -83,8 +83,8 @@ module Unparser
|
|
83
83
|
util = self.class
|
84
84
|
string = node.children.first
|
85
85
|
segment = string
|
86
|
-
|
87
|
-
|
86
|
+
.gsub(REPLACEMENTS, ESCAPES)
|
87
|
+
.gsub(util::DELIMITER, util::REPLACEMENT)
|
88
88
|
write(segment)
|
89
89
|
end
|
90
90
|
|
@@ -184,7 +184,7 @@ module Unparser
|
|
184
184
|
register :float
|
185
185
|
register :int
|
186
186
|
|
187
|
-
NEG_INFINITY = Float::INFINITY - 1
|
187
|
+
NEG_INFINITY = -(Float::INFINITY - 1)
|
188
188
|
|
189
189
|
# Return preprocessor result
|
190
190
|
#
|
@@ -197,7 +197,7 @@ module Unparser
|
|
197
197
|
case value
|
198
198
|
when Float::INFINITY
|
199
199
|
s(:const, s(:const, nil, :Float), :INFINITY)
|
200
|
-
when
|
200
|
+
when NEG_INFINITY
|
201
201
|
s(:send, s(:const, s(:const, nil, :Float), :INFINITY), :-@)
|
202
202
|
else
|
203
203
|
node
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,10 @@ require 'morpher'
|
|
8
8
|
require 'devtools/spec_helper'
|
9
9
|
|
10
10
|
require 'parser/current'
|
11
|
+
require 'parser/ruby19'
|
12
|
+
require 'parser/ruby20'
|
11
13
|
require 'parser/ruby21'
|
14
|
+
require 'parser/ruby22'
|
12
15
|
|
13
16
|
module SpecHelper
|
14
17
|
def s(type, *children)
|
@@ -26,4 +29,5 @@ end
|
|
26
29
|
RSpec.configure do |config|
|
27
30
|
config.include(SpecHelper)
|
28
31
|
config.extend(SpecHelper)
|
32
|
+
config.raise_errors_for_deprecations!
|
29
33
|
end
|
data/spec/unit/unparser_spec.rb
CHANGED
@@ -8,7 +8,8 @@ describe Unparser do
|
|
8
8
|
PARSERS = IceNine.deep_freeze(
|
9
9
|
'1.9' => Parser::Ruby19,
|
10
10
|
'2.0' => Parser::Ruby20,
|
11
|
-
'2.1' => Parser::Ruby21
|
11
|
+
'2.1' => Parser::Ruby21,
|
12
|
+
'2.2' => Parser::Ruby22
|
12
13
|
)
|
13
14
|
|
14
15
|
RUBIES = PARSERS.keys.freeze
|
@@ -28,7 +29,7 @@ describe Unparser do
|
|
28
29
|
def assert_round_trip(input, parser)
|
29
30
|
ast, comments = parser.parse_with_comments(input)
|
30
31
|
generated = Unparser.unparse(ast, comments)
|
31
|
-
generated.
|
32
|
+
expect(generated).to eql(input)
|
32
33
|
generated_ast, _ = parser.parse_with_comments(generated)
|
33
34
|
expect(ast == generated_ast).to be(true)
|
34
35
|
end
|
@@ -41,9 +42,9 @@ describe Unparser do
|
|
41
42
|
|
42
43
|
def assert_generates_from_ast(parser, ast_with_comments, expected)
|
43
44
|
generated = Unparser.unparse(*ast_with_comments)
|
44
|
-
generated.
|
45
|
+
expect(generated).to eql(expected)
|
45
46
|
ast, comments = parser.parse_with_comments(generated)
|
46
|
-
Unparser.unparse(ast, comments).
|
47
|
+
expect(Unparser.unparse(ast, comments)).to eql(expected)
|
47
48
|
end
|
48
49
|
|
49
50
|
def self.assert_unterminated(expression)
|
@@ -111,25 +112,29 @@ describe Unparser do
|
|
111
112
|
assert_generates '-10e10000000000', '-Float::INFINITY'
|
112
113
|
end
|
113
114
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
115
|
+
# Rubies < 2.0 do not have these literals, parser can parse them
|
116
|
+
# but there are subtible differencies. Excluding them under those rubies.
|
117
|
+
if RUBY_VERSION >= '2.0'
|
118
|
+
context 'rational' do
|
119
|
+
assert_terminated '1r', %w(2.1)
|
120
|
+
assert_generates '1.0r', '1r', %w(2.1)
|
121
|
+
assert_generates '-0r', '0r', %w(2.1)
|
118
122
|
|
119
|
-
|
120
|
-
|
121
|
-
|
123
|
+
assert_terminated '1.5r', %w(2.1)
|
124
|
+
assert_terminated '1.3r', %w(2.1)
|
125
|
+
end
|
122
126
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
127
|
+
context 'complex' do
|
128
|
+
%w(
|
129
|
+
5i
|
130
|
+
-5i
|
131
|
+
0.6i
|
132
|
+
-0.6i
|
133
|
+
1000000000000000000000000000000i
|
134
|
+
1ri
|
135
|
+
).each do |expression|
|
136
|
+
assert_terminated(expression, %w(2.1))
|
137
|
+
end
|
133
138
|
end
|
134
139
|
end
|
135
140
|
|
@@ -1308,6 +1313,7 @@ describe Unparser do
|
|
1308
1313
|
assert_source 'foo[index] = value'
|
1309
1314
|
assert_source 'foo[*index] = value'
|
1310
1315
|
assert_source 'foo[a, b] = value'
|
1316
|
+
assert_source 'foo[1..2] = value'
|
1311
1317
|
assert_source 'foo.[]=()'
|
1312
1318
|
assert_source 'foo[] = 1'
|
1313
1319
|
|
data/unparser.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = 'unparser'
|
5
|
-
gem.version = '0.
|
5
|
+
gem.version = '0.2.0'
|
6
6
|
|
7
7
|
gem.authors = ['Markus Schirp']
|
8
8
|
gem.email = 'mbj@schir-dso.com'
|
@@ -17,12 +17,13 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.extra_rdoc_files = %w(README.md)
|
18
18
|
gem.executables = [ 'unparser' ]
|
19
19
|
|
20
|
-
gem.required_ruby_version = '>=
|
20
|
+
gem.required_ruby_version = '>= 2.0.0'
|
21
21
|
|
22
|
-
gem.add_dependency('parser', '~> 2.2.0.
|
22
|
+
gem.add_dependency('parser', '~> 2.2.0.2')
|
23
23
|
gem.add_dependency('procto', '~> 0.0.2')
|
24
24
|
gem.add_dependency('concord', '~> 0.1.5')
|
25
25
|
gem.add_dependency('adamantium', '~> 0.2.0')
|
26
26
|
gem.add_dependency('equalizer', '~> 0.0.9')
|
27
27
|
gem.add_dependency('abstract_type', '~> 0.0.7')
|
28
|
+
gem.add_dependency('diff-lcs', '~> 1.2.5')
|
28
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unparser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Markus Schirp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.2.0.
|
19
|
+
version: 2.2.0.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.2.0.
|
26
|
+
version: 2.2.0.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: procto
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.0.7
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: diff-lcs
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.2.5
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.2.5
|
97
111
|
description: Generate equivalent source for parser gem AST nodes
|
98
112
|
email: mbj@schir-dso.com
|
99
113
|
executables:
|
@@ -187,7 +201,6 @@ files:
|
|
187
201
|
- lib/unparser/finalize.rb
|
188
202
|
- lib/unparser/node_helpers.rb
|
189
203
|
- lib/unparser/preprocessor.rb
|
190
|
-
- rubyspec.sh
|
191
204
|
- spec/integration/unparser/corpus_spec.rb
|
192
205
|
- spec/integrations.yml
|
193
206
|
- spec/spec_helper.rb
|
@@ -218,7 +231,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
231
|
requirements:
|
219
232
|
- - ">="
|
220
233
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
234
|
+
version: 2.0.0
|
222
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
236
|
requirements:
|
224
237
|
- - ">="
|
data/rubyspec.sh
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
exec bundle exec bin/unparser ../rubyspec --fail-fast \
|
3
|
-
--ignore '../rubyspec/core/array/pack/{b,h,u}_spec.rb' \
|
4
|
-
--ignore '../rubyspec/language/versions/*1.8*' \
|
5
|
-
--ignore '../rubyspec/core/array/pack/shared/float.rb' \
|
6
|
-
--ignore '../rubyspec/core/array/pack/shared/integer.rb' \
|
7
|
-
--ignore '../rubyspec/core/array/pack/{c,m,w}_spec.rb' \
|
8
|
-
--ignore '../rubyspec/core/regexp/shared/new.rb' \
|
9
|
-
--ignore '../rubyspec/core/regexp/shared/quote.rb' \
|
10
|
-
--ignore '../rubyspec/core/encoding/compatible_spec.rb' \
|
11
|
-
--ignore '../rubyspec/core/io/readpartial_spec.rb' \
|
12
|
-
--ignore '../rubyspec/core/env/element_reference_spec.rb' \
|
13
|
-
--ignore '../rubyspec/core/dir/pwd_spec.rb' \
|
14
|
-
--ignore '../rubyspec/core/string/casecmp_spec.rb' \
|
15
|
-
--ignore '../rubyspec/core/string/unpack/{b,c,h,m,u,w}_spec.rb' \
|
16
|
-
--ignore '../rubyspec/core/string/unpack/b_spec.rb' \
|
17
|
-
--ignore '../rubyspec/core/string/unpack/shared/float.rb' \
|
18
|
-
--ignore '../rubyspec/core/string/unpack/shared/integer.rb' \
|
19
|
-
--ignore '../rubyspec/core/symbol/casecmp_spec.rb' \
|
20
|
-
$*
|