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 CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- metadata.gz: d4a7819ea2d8ce95d148c52ee34b15ebe1ff90b2
4
- data.tar.gz: 0e9816a2e5d51a4e69f3a08e85ecfde8ae481a9f
5
- SHA512:
6
- metadata.gz: b06c3a9e8f10304d8acfb49504f4830400817506faaaa01e60a22c5b4da509f004ae5c5034604cb72568c1df6861ed0eaa495796988b839ce94fb217fd61b5d1
7
- data.tar.gz: 4c1e6bb60efa42743788669d69aae5c67d47f278d2b97f357bd40eda44642da6daaa5e5fc58a90cc28e99214df03b76587d5593bc5e6b497caea116e2e9227b4
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6fbc42b2270dfea79002ff8d2bf543618237f65e
4
+ data.tar.gz: 992ce6239c5de55bf3cb5f3b182a2e6d8368ae06
5
+ SHA512:
6
+ metadata.gz: 90e80a39138d2cf49d9be5e303f9255be55ff8200ddb1dcb5181951ddce109816749e8cd72388a5a935b966ab6d67a23175eb714fa5038dde99cb846a547a6f4
7
+ data.tar.gz: f51ab9def69f2641e819f1c57741d808f61f25cfc2738257ea846daff6a1a4562683e9972d8fde4f58b023fdc0e1edf1a03fe996157c89bc9efe5a2aa940f75f
@@ -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:
@@ -1,3 +1,7 @@
1
+ # v0.1.14 2014-06-15
2
+
3
+ * Fix emitter to correctly unparse foo[] = 1
4
+
1
5
  # v0.1.13 2014-06-08
2
6
 
3
7
  * Add support for rubinius.
@@ -1,3 +1,3 @@
1
1
  ---
2
2
  threshold: 13
3
- total_score: 728
3
+ total_score: 701
@@ -1,2 +1,2 @@
1
1
  ---
2
- threshold: 20.7
2
+ threshold: 21.3
@@ -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 # TODO: 11 methods, mostly helpers for deduplicate sublcasses
20
+ - Unparser::Buffer # 11 methods
21
21
  - Unparser::CLI::Source # 11 methods
22
22
  enabled: true
23
23
  max_methods: 10
@@ -39,6 +39,7 @@ require 'unparser/node_helpers'
39
39
  require 'unparser/preprocessor'
40
40
  require 'unparser/comments'
41
41
  require 'unparser/constants'
42
+ require 'unparser/dsl'
42
43
  require 'unparser/ast'
43
44
  require 'unparser/ast/local_variable_scope'
44
45
  require 'unparser/emitter'
@@ -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
@@ -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 [false]
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
- children[1..-2].each do |child|
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(children[0..-2])
96
+ delimited(captures)
96
97
  end
97
98
 
98
- end
99
+ end # When
99
100
  end # Emitter
100
101
  end # Unparser
@@ -42,9 +42,7 @@ module Unparser
42
42
  # @api private
43
43
  #
44
44
  def dispatch
45
- children.each do |node|
46
- emit_segment(node)
47
- end
45
+ children.each(&method(:emit_segment))
48
46
  end
49
47
 
50
48
  # Emit segment
@@ -21,9 +21,7 @@ module Unparser
21
21
  #
22
22
  def dispatch
23
23
  parentheses(DELIMITER, DELIMITER) do
24
- body.each do |child|
25
- write_body(child)
26
- end
24
+ body.each(&method(:write_body))
27
25
  end
28
26
  visit(children.last)
29
27
  end
@@ -9,7 +9,7 @@ module Unparser
9
9
 
10
10
  children :body, :rescue_body
11
11
 
12
- RESCUE_BODIES_RANGE = (1..-2).freeze
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]
@@ -6,7 +6,6 @@ module Unparser
6
6
  class Root < self
7
7
  include Concord::Public.new(:node, :buffer, :comments)
8
8
  include LocalVariableRoot
9
-
10
9
  end # Root
11
10
  end # Emitter
12
11
  end # Unparser
@@ -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 [true]
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
- run(effective_emitter)
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 [true]
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 [true]
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 [true]
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
- assignment? && !arguments?
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 [true]
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
- emit_arguments
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 emit_arguments
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 emit_arguments
60
- case arguments.length
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
- emit_normal_arguments
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 emit_mlhs_arguments
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 emit_normal_arguments
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
- pending 'Corpus test not active for 1.9.3 because of limitations in encoding singalling, see Readme'
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
- pending 'Do not execute corpus spec under guard'
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
@@ -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 'array[i].foo'
519
- assert_source '(array[i] = 1).foo'
520
- assert_source 'array[1..2].foo'
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 'array[index] = value'
1308
- assert_source 'array[*index] = value'
1309
- assert_source 'array[a, b] = value'
1310
- assert_source 'array.[]=()'
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 "array[index] #{operator}= 2"
1315
- assert_source "array[] #{operator}= 2"
1316
+ assert_source "foo[index] #{operator}= 2"
1317
+ assert_source "foo[] #{operator}= 2"
1316
1318
  end
1317
1319
  end
1318
1320
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'unparser'
5
- gem.version = '0.1.13'
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.13
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
- date: 2014-06-08 00:00:00 Z
13
- dependencies:
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
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- requirement: &id004 !ruby/object:Gem::Requirement
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
- requirement: &id005 !ruby/object:Gem::Requirement
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
- requirement: &id006 !ruby/object:Gem::Requirement
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
- version_requirements: *id006
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
- - &id007
199
- - ">="
200
- - !ruby/object:Gem::Version
201
- version: "0"
202
- required_rubygems_version: !ruby/object:Gem::Requirement
203
- requirements:
204
- - *id007
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