unparser 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
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