unparser 0.4.4 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/lib/unparser.rb +21 -3
  4. data/lib/unparser/ast.rb +1 -1
  5. data/lib/unparser/ast/local_variable_scope.rb +6 -6
  6. data/lib/unparser/cli.rb +65 -45
  7. data/lib/unparser/{cli/color.rb → color.rb} +0 -10
  8. data/lib/unparser/constants.rb +1 -1
  9. data/lib/unparser/diff.rb +115 -0
  10. data/lib/unparser/dsl.rb +1 -1
  11. data/lib/unparser/emitter.rb +4 -5
  12. data/lib/unparser/emitter/argument.rb +9 -13
  13. data/lib/unparser/emitter/literal/primitive.rb +1 -1
  14. data/lib/unparser/emitter/literal/range.rb +1 -1
  15. data/lib/unparser/node_helpers.rb +4 -2
  16. data/lib/unparser/preprocessor.rb +1 -1
  17. data/lib/unparser/validation.rb +149 -0
  18. metadata +97 -78
  19. data/.circleci/config.yml +0 -41
  20. data/.gitignore +0 -37
  21. data/.rspec +0 -4
  22. data/.rubocop.yml +0 -9
  23. data/Changelog.md +0 -142
  24. data/Gemfile +0 -7
  25. data/Gemfile.lock +0 -176
  26. data/LICENSE +0 -20
  27. data/Rakefile +0 -22
  28. data/config/devtools.yml +0 -2
  29. data/config/flay.yml +0 -3
  30. data/config/flog.yml +0 -2
  31. data/config/mutant.yml +0 -6
  32. data/config/reek.yml +0 -98
  33. data/config/rubocop.yml +0 -122
  34. data/config/yardstick.yml +0 -2
  35. data/lib/unparser/cli/differ.rb +0 -152
  36. data/lib/unparser/cli/source.rb +0 -267
  37. data/spec/integration/unparser/corpus_spec.rb +0 -111
  38. data/spec/integrations.yml +0 -87
  39. data/spec/spec_helper.rb +0 -20
  40. data/spec/unit/unparser/buffer/append_spec.rb +0 -24
  41. data/spec/unit/unparser/buffer/append_without_prefix_spec.rb +0 -23
  42. data/spec/unit/unparser/buffer/capture_content_spec.rb +0 -17
  43. data/spec/unit/unparser/buffer/content_spec.rb +0 -38
  44. data/spec/unit/unparser/buffer/fresh_line_spec.rb +0 -20
  45. data/spec/unit/unparser/buffer/indent_spec.rb +0 -20
  46. data/spec/unit/unparser/buffer/nl_spec.rb +0 -16
  47. data/spec/unit/unparser/buffer/unindent_spec.rb +0 -20
  48. data/spec/unit/unparser/comments/consume_spec.rb +0 -22
  49. data/spec/unit/unparser/comments/take_all_spec.rb +0 -19
  50. data/spec/unit/unparser/comments/take_before_spec.rb +0 -46
  51. data/spec/unit/unparser/comments/take_eol_comments_spec.rb +0 -32
  52. data/spec/unit/unparser/emitter/class_methods/handle_spec.rb +0 -17
  53. data/spec/unit/unparser_spec.rb +0 -1841
  54. data/unparser.gemspec +0 -30
@@ -1,41 +0,0 @@
1
- defaults: &defaults
2
- working_directory: ~/unparser
3
- docker:
4
- - image: circleci/ruby:2.5.5
5
- version: 2
6
- jobs:
7
- unit_specs:
8
- <<: *defaults
9
- steps:
10
- - checkout
11
- - run: bundle install
12
- - run: bundle exec rspec spec/unit
13
- integration_specs:
14
- <<: *defaults
15
- steps:
16
- - checkout
17
- - run: bundle install
18
- - run: bundle exec rspec spec/integration
19
- metrics:
20
- <<: *defaults
21
- steps:
22
- - checkout
23
- - run: bundle install
24
- - run: bundle exec rake metrics:rubocop
25
- - run: bundle exec rake metrics:reek
26
- - run: bundle exec rake metrics:flay
27
- - run: bundle exec rake metrics:flog
28
- mutant:
29
- <<: *defaults
30
- steps:
31
- - checkout
32
- - run: bundle install
33
- - run: bundle exec mutant --since origin/master --zombie -- 'Unparser*'
34
- workflows:
35
- version: 2
36
- test:
37
- jobs:
38
- - unit_specs
39
- - integration_specs
40
- - metrics
41
- - mutant
data/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.sw[op]
15
-
16
- ## Rubinius
17
- *.rbc
18
- .rbx
19
-
20
- ## PROJECT::GENERAL
21
- *.gem
22
- coverage
23
- profiling
24
- turbulence
25
- rdoc
26
- pkg
27
- tmp
28
- doc
29
- log
30
- .yardoc
31
- measurements
32
-
33
- ## BUNDLER
34
- .bundle
35
-
36
- ## PROJECT::SPECIFIC
37
- /vendor
data/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --color
2
- --format progress
3
- --warnings
4
- --order random
@@ -1,9 +0,0 @@
1
- AllCops:
2
- Include:
3
- - 'Gemfile'
4
- Exclude:
5
- - 'Gemfile.devtools'
6
- - 'vendor/**/*'
7
- - 'benchmarks/**/*'
8
- - 'tmp/**/*'
9
- TargetRubyVersion: 2.5
@@ -1,142 +0,0 @@
1
- # v0.4.4 2019-03-27
2
-
3
- * Bump parser dependency to ~> 2.6.2
4
-
5
- # v0.4.3 2019-02-24
6
-
7
- * Bump parser dependency to ~> 2.6.0
8
-
9
- # v0.4.2 2018-12-04
10
-
11
- * Drop hard ruby version requirement. Still officially I'll only support 2.5.
12
-
13
- # v0.4.1 2018-12-03
14
-
15
- * Fix unparsing of `def foo(bar: bar())`
16
-
17
- # v0.4.0 2018-12-03
18
-
19
- * Change to modern AST format.
20
- * Add experimental `Unparser.{parser,parse,parse_with_comments}`
21
-
22
- # v0.3.0 2018-11-16
23
-
24
- * Drop support for Ruby < 2.5
25
-
26
- # v0.2.7 2018-07-18
27
-
28
- * Add emitters for `__FILE__` and `__LINE__`
29
- https://github.com/mbj/unparser/pull/70
30
-
31
- # v0.2.7 2018-02-09
32
-
33
- * Allow ruby_parser 2.5
34
-
35
- # v0.2.6 2017-05-30
36
-
37
- * Reduce memory consumption via not requirering all possible parsers
38
- * Allow ruby 2.4
39
- * Update parser dependency
40
-
41
- # v0.2.5 2016-01-24
42
-
43
- * Add support for ruby 2.3
44
- * Bump parser dependency to ~>2.3.0
45
- * Trade uglier for more correct dstring / dsyms
46
- * Drop support for ruby < 2.1
47
-
48
- # v0.2.4 2015-05-30
49
-
50
- * Relax parser dependency to ~>2.2.2
51
-
52
- # v0.2.3 2015-04-28
53
-
54
- * Compatibility with parser ~>2.2.2, >2.2.2.2
55
-
56
- # v0.2.2 2015-01-14
57
-
58
- * Really add back unofficial support for 1.9.3
59
-
60
- # v0.2.1 2015-01-14
61
-
62
- * Add back unofficial support for 1.9.3
63
-
64
- # v0.2.0 2015-01-12
65
-
66
- * Bump required ruby version to 2.0.0
67
-
68
- # v0.1.17 2015-01-10
69
-
70
- * Fix jruby complex / rational generation edge case
71
- * Support generation under MRI 2.2
72
-
73
- # v0.1.16 2014-11-07
74
-
75
- * Add emitter for complex and rational literals
76
- * Fix edge cases for MLHS
77
- * Fix differencies from 2.2.pre7 series of parser
78
-
79
- # v0.1.15 2014-09-24
80
-
81
- * Handle syntax edge case for MRI 2.1.3 parser.
82
-
83
- # v0.1.14 2014-06-15
84
-
85
- * Fix emitter to correctly unparse foo[] = 1
86
-
87
- # v0.1.13 2014-06-08
88
-
89
- * Add support for rubinius.
90
-
91
- # v0.1.12 2014-04-13
92
-
93
- * Add support for 2.1 kwsplat
94
-
95
- # v0.1.11 2014-04-11
96
-
97
- * Fix performance on local variable scope inspection
98
-
99
- # v0.1.10 2014-04-06
100
-
101
- * Fix emit of inline rescues in combination with control flow keywords.
102
- * Begin corpus testing on rake ci against rubyspec
103
-
104
- # v0.1.9 2014-01-14
105
-
106
- * Fix emit of proc { |(a)| }
107
-
108
- # v0.1.8 2014-01-11
109
-
110
- * Fix all bugs found while round tripping rubyspec.
111
-
112
- # v0.1.7 2014-01-03
113
-
114
- * Add back support for root nodes of type resbody https://github.com/mbj/unparser/issues/24
115
-
116
- # v0.1.6 2013-12-31
117
-
118
- * Emit 1.9 style hashes where possible: https://github.com/mbj/unparser/pull/23
119
- * Fix invalid quoting of hash keys: https://github.com/mbj/unparser/issues/22
120
- * Fix crash on take before introduced by code refactorings: https://github.com/mbj/unparser/issues/20
121
- * Fix crash on comment reproduction https://github.com/mbj/unparser/issues/17
122
-
123
- # v0.1.5 2013-11-01
124
-
125
- * Fix crash with comment reproduction.
126
-
127
- # v0.1.4 2013-11-01
128
-
129
- * Code cleanups.
130
- * Remove warnings.
131
-
132
- # v0.0.3 2013-06-17
133
-
134
- * Adjust to changes in parser 2.0.0.beta5 => beta6
135
-
136
- # v0.0.2 2013-06-17
137
-
138
- Crappy release
139
-
140
- # v0.0.1 2013-06-15
141
-
142
- Initial release
data/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
7
- gem('mutant', git: 'https://github.com/mbj/mutant.git')
@@ -1,176 +0,0 @@
1
- GIT
2
- remote: https://github.com/mbj/mutant.git
3
- revision: 2b7791503fb12827afdf3397cef0db490a176134
4
- specs:
5
- mutant (0.8.25)
6
- abstract_type (~> 0.0.7)
7
- adamantium (~> 0.2.0)
8
- anima (~> 0.3.1)
9
- ast (~> 2.2)
10
- concord (~> 0.1.5)
11
- diff-lcs (~> 1.3)
12
- equalizer (~> 0.0.9)
13
- ice_nine (~> 0.11.1)
14
- memoizable (~> 0.4.2)
15
- parser (~> 2.6.0)
16
- procto (~> 0.0.2)
17
- unparser (~> 0.4.3)
18
- mutant-rspec (0.8.25)
19
- mutant (~> 0.8.25)
20
- rspec-core (>= 3.8.0, < 4.0.0)
21
-
22
- PATH
23
- remote: .
24
- specs:
25
- unparser (0.4.3)
26
- abstract_type (~> 0.0.7)
27
- adamantium (~> 0.2.0)
28
- concord (~> 0.1.5)
29
- diff-lcs (~> 1.3)
30
- equalizer (~> 0.0.9)
31
- parser (~> 2.6.2)
32
- procto (~> 0.0.2)
33
-
34
- GEM
35
- remote: https://rubygems.org/
36
- specs:
37
- abstract_type (0.0.7)
38
- adamantium (0.2.0)
39
- ice_nine (~> 0.11.0)
40
- memoizable (~> 0.4.0)
41
- anima (0.3.1)
42
- abstract_type (~> 0.0.7)
43
- adamantium (~> 0.2)
44
- equalizer (~> 0.0.11)
45
- ast (2.4.0)
46
- axiom-types (0.1.1)
47
- descendants_tracker (~> 0.0.4)
48
- ice_nine (~> 0.11.0)
49
- thread_safe (~> 0.3, >= 0.3.1)
50
- codeclimate-engine-rb (0.4.1)
51
- virtus (~> 1.0)
52
- coercible (1.0.0)
53
- descendants_tracker (~> 0.0.1)
54
- concord (0.1.5)
55
- adamantium (~> 0.2.0)
56
- equalizer (~> 0.0.9)
57
- descendants_tracker (0.0.4)
58
- thread_safe (~> 0.3, >= 0.3.1)
59
- devtools (0.1.23)
60
- abstract_type (~> 0.0.7)
61
- adamantium (~> 0.2.0)
62
- anima (~> 0.3.0)
63
- concord (~> 0.1.5)
64
- flay (~> 2.12.0)
65
- flog (~> 4.6.2)
66
- mutant (~> 0.8.24)
67
- mutant-rspec (~> 0.8.24)
68
- procto (~> 0.0.3)
69
- rake (~> 12.3.0)
70
- reek (~> 5.3.0)
71
- rspec (~> 3.8.0)
72
- rspec-core (~> 3.8.0)
73
- rspec-its (~> 1.2.0)
74
- rubocop (~> 0.61.1)
75
- simplecov (~> 0.16.1)
76
- yard (~> 0.9.16)
77
- yardstick (~> 0.9.9)
78
- diff-lcs (1.3)
79
- docile (1.3.1)
80
- equalizer (0.0.11)
81
- erubis (2.7.0)
82
- flay (2.12.0)
83
- erubis (~> 2.7.0)
84
- path_expander (~> 1.0)
85
- ruby_parser (~> 3.0)
86
- sexp_processor (~> 4.0)
87
- flog (4.6.2)
88
- path_expander (~> 1.0)
89
- ruby_parser (~> 3.1, > 3.1.0)
90
- sexp_processor (~> 4.8)
91
- ice_nine (0.11.2)
92
- jaro_winkler (1.5.2)
93
- json (2.2.0)
94
- kwalify (0.7.2)
95
- memoizable (0.4.2)
96
- thread_safe (~> 0.3, >= 0.3.1)
97
- morpher (0.2.6)
98
- abstract_type (~> 0.0.7)
99
- adamantium (~> 0.2.0)
100
- anima (~> 0.3.0)
101
- ast (~> 2.2)
102
- concord (~> 0.1.5)
103
- equalizer (~> 0.0.9)
104
- ice_nine (~> 0.11.0)
105
- procto (~> 0.0.2)
106
- parallel (1.13.0)
107
- parser (2.6.2.0)
108
- ast (~> 2.4.0)
109
- path_expander (1.0.3)
110
- powerpack (0.1.2)
111
- procto (0.0.3)
112
- psych (3.1.0)
113
- rainbow (3.0.0)
114
- rake (12.3.2)
115
- reek (5.3.1)
116
- codeclimate-engine-rb (~> 0.4.0)
117
- kwalify (~> 0.7.0)
118
- parser (>= 2.5.0.0, < 2.7, != 2.5.1.1)
119
- psych (~> 3.1.0)
120
- rainbow (>= 2.0, < 4.0)
121
- rspec (3.8.0)
122
- rspec-core (~> 3.8.0)
123
- rspec-expectations (~> 3.8.0)
124
- rspec-mocks (~> 3.8.0)
125
- rspec-core (3.8.0)
126
- rspec-support (~> 3.8.0)
127
- rspec-expectations (3.8.2)
128
- diff-lcs (>= 1.2.0, < 2.0)
129
- rspec-support (~> 3.8.0)
130
- rspec-its (1.2.0)
131
- rspec-core (>= 3.0.0)
132
- rspec-expectations (>= 3.0.0)
133
- rspec-mocks (3.8.0)
134
- diff-lcs (>= 1.2.0, < 2.0)
135
- rspec-support (~> 3.8.0)
136
- rspec-support (3.8.0)
137
- rubocop (0.61.1)
138
- jaro_winkler (~> 1.5.1)
139
- parallel (~> 1.10)
140
- parser (>= 2.5, != 2.5.1.1)
141
- powerpack (~> 0.1)
142
- rainbow (>= 2.2.2, < 4.0)
143
- ruby-progressbar (~> 1.7)
144
- unicode-display_width (~> 1.4.0)
145
- ruby-progressbar (1.10.0)
146
- ruby_parser (3.12.0)
147
- sexp_processor (~> 4.9)
148
- sexp_processor (4.11.0)
149
- simplecov (0.16.1)
150
- docile (~> 1.1)
151
- json (>= 1.8, < 3)
152
- simplecov-html (~> 0.10.0)
153
- simplecov-html (0.10.2)
154
- thread_safe (0.3.6)
155
- unicode-display_width (1.4.1)
156
- virtus (1.0.5)
157
- axiom-types (~> 0.1)
158
- coercible (~> 1.0)
159
- descendants_tracker (~> 0.0, >= 0.0.3)
160
- equalizer (~> 0.0, >= 0.0.9)
161
- yard (0.9.18)
162
- yardstick (0.9.9)
163
- yard (~> 0.8, >= 0.8.7.2)
164
-
165
- PLATFORMS
166
- ruby
167
-
168
- DEPENDENCIES
169
- anima (~> 0.3.1)
170
- devtools (~> 0.1.23)
171
- morpher (~> 0.2.6)
172
- mutant!
173
- unparser!
174
-
175
- BUNDLED WITH
176
- 1.17.3
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2013 Markus Schirp
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile DELETED
@@ -1,22 +0,0 @@
1
- require 'devtools'
2
- Devtools.init_rake_tasks
3
-
4
- Rake.application.load_imports
5
- task('metrics:mutant').clear
6
-
7
- namespace :metrics do
8
- task mutant: :coverage do
9
- args = %w[
10
- bundle exec mutant
11
- --ignore-subject Unparser::Buffer#initialize
12
- --include lib
13
- --require unparser
14
- --use rspec
15
- --zombie
16
- --since HEAD~1
17
- ]
18
- args.concat(%w[--jobs 4]) if ENV.key?('CIRCLECI')
19
-
20
- system(*args.concat(%w[-- Unparser*])) or fail "Mutant task failed"
21
- end
22
- end