unparser 0.1.13 → 0.1.14
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 -7
- data/.travis.yml +5 -2
- data/Changelog.md +4 -0
- data/config/flay.yml +1 -1
- data/config/flog.yml +1 -1
- data/config/reek.yml +1 -1
- data/lib/unparser.rb +1 -0
- data/lib/unparser/dsl.rb +71 -0
- data/lib/unparser/emitter.rb +12 -62
- data/lib/unparser/emitter/case.rb +6 -5
- data/lib/unparser/emitter/literal/dynamic_body.rb +1 -3
- data/lib/unparser/emitter/literal/regexp.rb +1 -3
- data/lib/unparser/emitter/rescue.rb +1 -11
- data/lib/unparser/emitter/root.rb +0 -1
- data/lib/unparser/emitter/send.rb +7 -29
- data/lib/unparser/emitter/send/index.rb +14 -15
- data/spec/integration/unparser/corpus_spec.rb +5 -2
- data/spec/unit/unparser_spec.rb +11 -9
- data/unparser.gemspec +2 -2
- metadata +94 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
5
|
-
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6fbc42b2270dfea79002ff8d2bf543618237f65e
|
4
|
+
data.tar.gz: 992ce6239c5de55bf3cb5f3b182a2e6d8368ae06
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 90e80a39138d2cf49d9be5e303f9255be55ff8200ddb1dcb5181951ddce109816749e8cd72388a5a935b966ab6d67a23175eb714fa5038dde99cb846a547a6f4
|
7
|
+
data.tar.gz: f51ab9def69f2641e819f1c57741d808f61f25cfc2738257ea846daff6a1a4562683e9972d8fde4f58b023fdc0e1edf1a03fe996157c89bc9efe5a2aa940f75f
|
data/.travis.yml
CHANGED
@@ -4,10 +4,13 @@ rvm:
|
|
4
4
|
- 1.9.3
|
5
5
|
- 2.0.0
|
6
6
|
- 2.1.2
|
7
|
-
- jruby-19mode
|
8
|
-
- jruby-20mode
|
9
7
|
- rbx-2
|
10
8
|
matrix:
|
9
|
+
include:
|
10
|
+
- rvm: jruby
|
11
|
+
env: JRUBY_OPTS="$JRUBY_OPTS --debug --1.9" # for simplecov
|
12
|
+
- rvm: jruby
|
13
|
+
env: JRUBY_OPTS="$JRUBY_OPTS --debug --2.0" # for simplecov
|
11
14
|
allow_failures:
|
12
15
|
- rvm: rbx-2
|
13
16
|
notifications:
|
data/Changelog.md
CHANGED
data/config/flay.yml
CHANGED
data/config/flog.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
---
|
2
|
-
threshold:
|
2
|
+
threshold: 21.3
|
data/config/reek.yml
CHANGED
@@ -17,7 +17,7 @@ TooManyInstanceVariables:
|
|
17
17
|
TooManyMethods:
|
18
18
|
exclude:
|
19
19
|
- Unparser::Emitter # TODO: 13 methods, mostly helpers for deduplicate sublcasses
|
20
|
-
- Unparser::Buffer #
|
20
|
+
- Unparser::Buffer # 11 methods
|
21
21
|
- Unparser::CLI::Source # 11 methods
|
22
22
|
enabled: true
|
23
23
|
max_methods: 10
|
data/lib/unparser.rb
CHANGED
data/lib/unparser/dsl.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
module Unparser
|
2
|
+
# DSL to help defining emitters
|
3
|
+
module DSL
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
# Define remaining children
|
8
|
+
#
|
9
|
+
# @param [Enumerable<Symbol>] names
|
10
|
+
#
|
11
|
+
# @return [undefined]
|
12
|
+
#
|
13
|
+
# @api private
|
14
|
+
#
|
15
|
+
def define_remaining_children(names)
|
16
|
+
range = names.length .. -1
|
17
|
+
define_method(:remaining_children) do
|
18
|
+
children[range]
|
19
|
+
end
|
20
|
+
private :remaining_children
|
21
|
+
end
|
22
|
+
|
23
|
+
# Define named child
|
24
|
+
#
|
25
|
+
# @param [Symbol] name
|
26
|
+
# @param [Fixnum] index
|
27
|
+
#
|
28
|
+
# @return [undefined]
|
29
|
+
#
|
30
|
+
# @api private
|
31
|
+
#
|
32
|
+
def define_child(name, index)
|
33
|
+
define_method(name) do
|
34
|
+
children.at(index)
|
35
|
+
end
|
36
|
+
private name
|
37
|
+
end
|
38
|
+
|
39
|
+
# Define a group of children
|
40
|
+
#
|
41
|
+
# @param [Symbol] name
|
42
|
+
# @param [Range] range
|
43
|
+
#
|
44
|
+
# @return [undefined]
|
45
|
+
#
|
46
|
+
# @pai private
|
47
|
+
#
|
48
|
+
def define_group(name, range)
|
49
|
+
define_method(name) do
|
50
|
+
children[range]
|
51
|
+
end
|
52
|
+
private(name)
|
53
|
+
memoize(name)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Create name helpers
|
57
|
+
#
|
58
|
+
# @return [undefined]
|
59
|
+
#
|
60
|
+
# @api private
|
61
|
+
#
|
62
|
+
def children(*names)
|
63
|
+
define_remaining_children(names)
|
64
|
+
|
65
|
+
names.each_with_index do |name, index|
|
66
|
+
define_child(name, index)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end # DSL
|
71
|
+
end # Unparser
|
data/lib/unparser/emitter.rb
CHANGED
@@ -6,6 +6,16 @@ module Unparser
|
|
6
6
|
class Emitter
|
7
7
|
include Adamantium::Flat, AbstractType, Constants, NodeHelpers
|
8
8
|
include Concord.new(:node, :parent)
|
9
|
+
extend DSL
|
10
|
+
|
11
|
+
# Registry for node emitters
|
12
|
+
REGISTRY = {}
|
13
|
+
|
14
|
+
NOINDENT = [:rescue, :ensure].to_set.freeze
|
15
|
+
|
16
|
+
DEFAULT_DELIMITER = ', '.freeze
|
17
|
+
|
18
|
+
CURLY_BRACKETS = IceNine.deep_freeze(%w({ }))
|
9
19
|
|
10
20
|
module LocalVariableRoot
|
11
21
|
|
@@ -25,7 +35,7 @@ module Unparser
|
|
25
35
|
end
|
26
36
|
end
|
27
37
|
|
28
|
-
end
|
38
|
+
end # LocalVariableRoot
|
29
39
|
|
30
40
|
# Return local variable root
|
31
41
|
#
|
@@ -37,15 +47,6 @@ module Unparser
|
|
37
47
|
parent.local_variable_scope
|
38
48
|
end
|
39
49
|
|
40
|
-
# Registry for node emitters
|
41
|
-
REGISTRY = {}
|
42
|
-
|
43
|
-
NOINDENT = [:rescue, :ensure].to_set.freeze
|
44
|
-
|
45
|
-
DEFAULT_DELIMITER = ', '.freeze
|
46
|
-
|
47
|
-
CURLY_BRACKETS = IceNine.deep_freeze(%w({ }))
|
48
|
-
|
49
50
|
# Return assigned lvars
|
50
51
|
#
|
51
52
|
# @return [Array<Symbol>]
|
@@ -64,54 +65,6 @@ module Unparser
|
|
64
65
|
node.type
|
65
66
|
end
|
66
67
|
|
67
|
-
# Define remaining children
|
68
|
-
#
|
69
|
-
# @param [Enumerable<Symbol>] names
|
70
|
-
#
|
71
|
-
# @return [undefined]
|
72
|
-
#
|
73
|
-
# @api private
|
74
|
-
#
|
75
|
-
def self.define_remaining_children(names)
|
76
|
-
define_method(:remaining_children) do
|
77
|
-
children[names.length..-1]
|
78
|
-
end
|
79
|
-
private :remaining_children
|
80
|
-
end
|
81
|
-
private_class_method :define_remaining_children
|
82
|
-
|
83
|
-
# Define named child
|
84
|
-
#
|
85
|
-
# @param [Symbol] name
|
86
|
-
# @param [Fixnum] index
|
87
|
-
#
|
88
|
-
# @return [undefined]
|
89
|
-
#
|
90
|
-
# @api private
|
91
|
-
#
|
92
|
-
def self.define_child(name, index)
|
93
|
-
define_method(name) do
|
94
|
-
children.at(index)
|
95
|
-
end
|
96
|
-
protected name
|
97
|
-
end
|
98
|
-
private_class_method :define_child
|
99
|
-
|
100
|
-
# Create name helpers
|
101
|
-
#
|
102
|
-
# @return [undefined]
|
103
|
-
#
|
104
|
-
# @api private
|
105
|
-
#
|
106
|
-
def self.children(*names)
|
107
|
-
define_remaining_children(names)
|
108
|
-
|
109
|
-
names.each_with_index do |name, index|
|
110
|
-
define_child(name, index)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
private_class_method :children
|
114
|
-
|
115
68
|
# Register emitter for type
|
116
69
|
#
|
117
70
|
# @param [Symbol] type
|
@@ -176,10 +129,7 @@ module Unparser
|
|
176
129
|
|
177
130
|
# Test if node is emitted as terminated expression
|
178
131
|
#
|
179
|
-
# @return [
|
180
|
-
# if emitted node is unambigous
|
181
|
-
#
|
182
|
-
# @return [true]
|
132
|
+
# @return [Boolean]
|
183
133
|
#
|
184
134
|
# @api private
|
185
135
|
#
|
@@ -8,6 +8,7 @@ module Unparser
|
|
8
8
|
handle :case
|
9
9
|
|
10
10
|
children :condition
|
11
|
+
define_group :whens, 1..-2
|
11
12
|
|
12
13
|
private
|
13
14
|
|
@@ -46,9 +47,7 @@ module Unparser
|
|
46
47
|
#
|
47
48
|
def emit_whens
|
48
49
|
nl
|
49
|
-
|
50
|
-
visit(child)
|
51
|
-
end
|
50
|
+
whens.each(&method(:visit))
|
52
51
|
end
|
53
52
|
|
54
53
|
# Emit condition
|
@@ -70,6 +69,8 @@ module Unparser
|
|
70
69
|
|
71
70
|
handle :when
|
72
71
|
|
72
|
+
define_group :captures, 0 .. -2
|
73
|
+
|
73
74
|
private
|
74
75
|
|
75
76
|
# Perform dispatch
|
@@ -92,9 +93,9 @@ module Unparser
|
|
92
93
|
# @api private
|
93
94
|
#
|
94
95
|
def emit_captures
|
95
|
-
delimited(
|
96
|
+
delimited(captures)
|
96
97
|
end
|
97
98
|
|
98
|
-
end
|
99
|
+
end # When
|
99
100
|
end # Emitter
|
100
101
|
end # Unparser
|
@@ -9,7 +9,7 @@ module Unparser
|
|
9
9
|
|
10
10
|
children :body, :rescue_body
|
11
11
|
|
12
|
-
|
12
|
+
define_group :rescue_bodies, 1..-2
|
13
13
|
|
14
14
|
EMBEDDED_TYPES = [:def, :defs, :kwbegin, :ensure].to_set.freeze
|
15
15
|
|
@@ -83,16 +83,6 @@ module Unparser
|
|
83
83
|
emit_else
|
84
84
|
end
|
85
85
|
|
86
|
-
# Return rescue bodies
|
87
|
-
#
|
88
|
-
# @return [Enumerable<Parser::AST::Node>]
|
89
|
-
#
|
90
|
-
# @api private
|
91
|
-
#
|
92
|
-
def rescue_bodies
|
93
|
-
children[RESCUE_BODIES_RANGE]
|
94
|
-
end
|
95
|
-
|
96
86
|
# Emit else
|
97
87
|
#
|
98
88
|
# @return [undefined]
|
@@ -14,17 +14,11 @@ module Unparser
|
|
14
14
|
INDEX_ASSIGN = :'[]='
|
15
15
|
ASSIGN_SUFFIX = '='.freeze
|
16
16
|
|
17
|
-
AMBIGOUS = [:irange, :erange].to_set.freeze
|
18
|
-
|
19
17
|
children :receiver, :selector
|
20
18
|
|
21
19
|
# Test for terminated expression
|
22
20
|
#
|
23
|
-
# @return [
|
24
|
-
# if send is terminated
|
25
|
-
#
|
26
|
-
# @return [false]
|
27
|
-
# otherwise
|
21
|
+
# @return [Boolean]
|
28
22
|
#
|
29
23
|
# @api private
|
30
24
|
#
|
@@ -44,7 +38,7 @@ module Unparser
|
|
44
38
|
# @api private
|
45
39
|
#
|
46
40
|
def dispatch
|
47
|
-
|
41
|
+
effective_emitter.new(node, parent).write_to_buffer
|
48
42
|
end
|
49
43
|
|
50
44
|
# Return effective emitter
|
@@ -96,11 +90,7 @@ module Unparser
|
|
96
90
|
|
97
91
|
# Test for unary operator implemented as method
|
98
92
|
#
|
99
|
-
# @return [
|
100
|
-
# if node is a unary operator
|
101
|
-
#
|
102
|
-
# @return [false]
|
103
|
-
# otherwise
|
93
|
+
# @return [Boolean]
|
104
94
|
#
|
105
95
|
# @api private
|
106
96
|
#
|
@@ -110,11 +100,7 @@ module Unparser
|
|
110
100
|
|
111
101
|
# Test for binary operator implemented as method
|
112
102
|
#
|
113
|
-
# @return [
|
114
|
-
# if node is a binary operator
|
115
|
-
#
|
116
|
-
# @return [false]
|
117
|
-
# otherwise
|
103
|
+
# @return [Boolean]
|
118
104
|
#
|
119
105
|
# @api private
|
120
106
|
#
|
@@ -138,27 +124,19 @@ module Unparser
|
|
138
124
|
|
139
125
|
# Test for mlhs
|
140
126
|
#
|
141
|
-
# @return [
|
142
|
-
# if node is within an mlhs
|
143
|
-
#
|
144
|
-
# @return [false]
|
145
|
-
# otherwise
|
127
|
+
# @return [Boolean]
|
146
128
|
#
|
147
129
|
# @api private
|
148
130
|
#
|
149
131
|
def mlhs?
|
150
|
-
|
132
|
+
parent_type.equal?(:mlhs)
|
151
133
|
end
|
152
134
|
|
153
135
|
# Test for assignment
|
154
136
|
#
|
155
137
|
# FIXME: This also returns true for <= operator!
|
156
138
|
#
|
157
|
-
# @return [
|
158
|
-
# if node represents attribute / element assignment
|
159
|
-
#
|
160
|
-
# @return [false]
|
161
|
-
# otherwise
|
139
|
+
# @return [Boolean]
|
162
140
|
#
|
163
141
|
# @api private
|
164
142
|
#
|
@@ -16,7 +16,7 @@ module Unparser
|
|
16
16
|
#
|
17
17
|
def dispatch
|
18
18
|
emit_receiver
|
19
|
-
|
19
|
+
emit_operation
|
20
20
|
end
|
21
21
|
|
22
22
|
# Emit receiver
|
@@ -40,7 +40,7 @@ module Unparser
|
|
40
40
|
#
|
41
41
|
# @api private
|
42
42
|
#
|
43
|
-
def
|
43
|
+
def emit_operation
|
44
44
|
parentheses(*INDEX_PARENS) do
|
45
45
|
delimited(arguments)
|
46
46
|
end
|
@@ -50,20 +50,24 @@ module Unparser
|
|
50
50
|
# Emitter for assign to index nodes
|
51
51
|
class Assign < self
|
52
52
|
|
53
|
+
define_group(:indices, 2..-2)
|
54
|
+
define_child(:value, -1)
|
55
|
+
|
53
56
|
# Emit arguments
|
54
57
|
#
|
55
58
|
# @return [undefined]
|
56
59
|
#
|
57
60
|
# @api private
|
58
61
|
#
|
59
|
-
def
|
60
|
-
|
61
|
-
when 0
|
62
|
+
def emit_operation
|
63
|
+
if arguments.empty?
|
62
64
|
emit_regular_with_empty_args
|
63
|
-
when 1
|
64
|
-
emit_mlhs_arguments
|
65
65
|
else
|
66
|
-
|
66
|
+
if mlhs?
|
67
|
+
emit_mlhs_operation
|
68
|
+
else
|
69
|
+
emit_normal_operation
|
70
|
+
end
|
67
71
|
end
|
68
72
|
end
|
69
73
|
|
@@ -73,7 +77,7 @@ module Unparser
|
|
73
77
|
#
|
74
78
|
# @api private
|
75
79
|
#
|
76
|
-
def
|
80
|
+
def emit_mlhs_operation
|
77
81
|
parentheses(*INDEX_PARENS) do
|
78
82
|
delimited(arguments)
|
79
83
|
end
|
@@ -85,12 +89,7 @@ module Unparser
|
|
85
89
|
#
|
86
90
|
# @api private
|
87
91
|
#
|
88
|
-
def
|
89
|
-
# Workaround bug in RBX causes to crash here on
|
90
|
-
# *indices, value = arguments
|
91
|
-
#
|
92
|
-
# https://github.com/rubinius/rubinius/issues/3037
|
93
|
-
indices, value = arguments[0..-2], arguments.last
|
92
|
+
def emit_normal_operation
|
94
93
|
parentheses(*INDEX_PARENS) do
|
95
94
|
delimited(indices)
|
96
95
|
end
|
@@ -5,10 +5,13 @@ require 'spec_helper'
|
|
5
5
|
describe 'Unparser on ruby corpus' do
|
6
6
|
before do
|
7
7
|
if RUBY_VERSION == '1.9.3'
|
8
|
-
|
8
|
+
skip 'Corpus test not active for 1.9.3 because of limitations in encoding signalling, see Readme'
|
9
|
+
end
|
10
|
+
if RUBY_ENGINE == 'jruby'
|
11
|
+
skip 'Corpus test exhausts jruby heap space on travis'
|
9
12
|
end
|
10
13
|
if ENV['GUARD']
|
11
|
-
|
14
|
+
skip 'Do not execute corpus spec under guard'
|
12
15
|
end
|
13
16
|
end
|
14
17
|
ROOT = Pathname.new(__FILE__).parent.parent.parent.parent
|
data/spec/unit/unparser_spec.rb
CHANGED
@@ -392,6 +392,7 @@ describe Unparser do
|
|
392
392
|
assert_source 'self.foo'
|
393
393
|
assert_source 'a.foo'
|
394
394
|
assert_source 'A.foo'
|
395
|
+
assert_source 'foo[]'
|
395
396
|
assert_source 'foo[1]'
|
396
397
|
assert_source 'foo[*baz]'
|
397
398
|
assert_source 'foo(1)'
|
@@ -515,9 +516,9 @@ describe Unparser do
|
|
515
516
|
assert_source 'yield.foo'
|
516
517
|
assert_source 'Foo::Bar.foo'
|
517
518
|
assert_source '::BAZ.foo'
|
518
|
-
assert_source '
|
519
|
-
assert_source '(
|
520
|
-
assert_source '
|
519
|
+
assert_source 'foo[i].foo'
|
520
|
+
assert_source '(foo[i] = 1).foo'
|
521
|
+
assert_source 'foo[1..2].foo'
|
521
522
|
assert_source '(a.attribute ||= foo).bar'
|
522
523
|
assert_source 'foo.bar = baz[1]'
|
523
524
|
assert_source 'foo.bar = (baz || foo)'
|
@@ -1304,15 +1305,16 @@ describe Unparser do
|
|
1304
1305
|
end
|
1305
1306
|
|
1306
1307
|
context 'element assignment' do
|
1307
|
-
assert_source '
|
1308
|
-
assert_source '
|
1309
|
-
assert_source '
|
1310
|
-
assert_source '
|
1308
|
+
assert_source 'foo[index] = value'
|
1309
|
+
assert_source 'foo[*index] = value'
|
1310
|
+
assert_source 'foo[a, b] = value'
|
1311
|
+
assert_source 'foo.[]=()'
|
1312
|
+
assert_source 'foo[] = 1'
|
1311
1313
|
|
1312
1314
|
%w(+ - * / % & | || &&).each do |operator|
|
1313
1315
|
context "with #{operator}" do
|
1314
|
-
assert_source "
|
1315
|
-
assert_source "
|
1316
|
+
assert_source "foo[index] #{operator}= 2"
|
1317
|
+
assert_source "foo[] #{operator}= 2"
|
1316
1318
|
end
|
1317
1319
|
end
|
1318
1320
|
end
|
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.1.
|
5
|
+
gem.version = '0.1.14'
|
6
6
|
|
7
7
|
gem.authors = ['Markus Schirp']
|
8
8
|
gem.email = 'mbj@schir-dso.com'
|
@@ -17,7 +17,7 @@ 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 = '>= 1.9.3'
|
21
21
|
|
22
22
|
gem.add_dependency('parser', '~> 2.1')
|
23
23
|
gem.add_dependency('procto', '~> 0.0.2')
|
metadata
CHANGED
@@ -1,89 +1,111 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: unparser
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Markus Schirp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-06-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
15
14
|
name: parser
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
version: "2.1"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
22
20
|
type: :runtime
|
23
|
-
version_requirements: *id001
|
24
|
-
- !ruby/object:Gem::Dependency
|
25
|
-
name: procto
|
26
21
|
prerelease: false
|
27
|
-
|
28
|
-
requirements:
|
29
|
-
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: procto
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
31
33
|
version: 0.0.2
|
32
34
|
type: :runtime
|
33
|
-
version_requirements: *id002
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: concord
|
36
35
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
39
|
-
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: concord
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
41
47
|
version: 0.1.5
|
42
48
|
type: :runtime
|
43
|
-
version_requirements: *id003
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: adamantium
|
46
49
|
prerelease: false
|
47
|
-
|
48
|
-
requirements:
|
49
|
-
- - ~>
|
50
|
-
- !ruby/object:Gem::Version
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.5
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: adamantium
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
51
61
|
version: 0.2.0
|
52
62
|
type: :runtime
|
53
|
-
version_requirements: *id004
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: equalizer
|
56
63
|
prerelease: false
|
57
|
-
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: equalizer
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
61
75
|
version: 0.0.9
|
62
76
|
type: :runtime
|
63
|
-
version_requirements: *id005
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: abstract_type
|
66
77
|
prerelease: false
|
67
|
-
|
68
|
-
requirements:
|
69
|
-
- - ~>
|
70
|
-
- !ruby/object:Gem::Version
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.0.9
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: abstract_type
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
71
89
|
version: 0.0.7
|
72
90
|
type: :runtime
|
73
|
-
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.0.7
|
74
97
|
description: Generate equivalent source for parser gem AST nodes
|
75
98
|
email: mbj@schir-dso.com
|
76
|
-
executables:
|
99
|
+
executables:
|
77
100
|
- unparser
|
78
101
|
extensions: []
|
79
|
-
|
80
|
-
extra_rdoc_files:
|
102
|
+
extra_rdoc_files:
|
81
103
|
- README.md
|
82
|
-
files:
|
83
|
-
- .gitignore
|
84
|
-
- .rspec
|
85
|
-
- .rubocop.yml
|
86
|
-
- .travis.yml
|
104
|
+
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- ".rspec"
|
107
|
+
- ".rubocop.yml"
|
108
|
+
- ".travis.yml"
|
87
109
|
- Changelog.md
|
88
110
|
- Gemfile
|
89
111
|
- Gemfile.devtools
|
@@ -111,6 +133,7 @@ files:
|
|
111
133
|
- lib/unparser/cli/source.rb
|
112
134
|
- lib/unparser/comments.rb
|
113
135
|
- lib/unparser/constants.rb
|
136
|
+
- lib/unparser/dsl.rb
|
114
137
|
- lib/unparser/emitter.rb
|
115
138
|
- lib/unparser/emitter/alias.rb
|
116
139
|
- lib/unparser/emitter/argument.rb
|
@@ -184,32 +207,30 @@ files:
|
|
184
207
|
- spec/unit/unparser_spec.rb
|
185
208
|
- unparser.gemspec
|
186
209
|
homepage: http://github.com/mbj/unparser
|
187
|
-
licenses:
|
210
|
+
licenses:
|
188
211
|
- MIT
|
189
212
|
metadata: {}
|
190
|
-
|
191
213
|
post_install_message:
|
192
214
|
rdoc_options: []
|
193
|
-
|
194
|
-
require_paths:
|
215
|
+
require_paths:
|
195
216
|
- lib
|
196
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
197
|
-
requirements:
|
198
|
-
-
|
199
|
-
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
217
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - ">="
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: 1.9.3
|
222
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
|
+
requirements:
|
224
|
+
- - ">="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '0'
|
205
227
|
requirements: []
|
206
|
-
|
207
228
|
rubyforge_project:
|
208
229
|
rubygems_version: 2.2.2
|
209
230
|
signing_key:
|
210
231
|
specification_version: 4
|
211
232
|
summary: Generate equivalent source for parser gem AST nodes
|
212
|
-
test_files:
|
233
|
+
test_files:
|
213
234
|
- spec/integration/unparser/corpus_spec.rb
|
214
235
|
- spec/integrations.yml
|
215
236
|
- spec/spec_helper.rb
|