unparser 0.0.4 → 0.0.5

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
1
  ---
2
2
  SHA1:
3
- metadata.gz: 699cb6f7b7346130d08e26971bb7415989814195
4
- data.tar.gz: 67f7d1d663508c344d141a74dfebf0a375457f49
3
+ metadata.gz: 542027219be6631d4a41c34550f0b6cbf0c1335b
4
+ data.tar.gz: 622b9928d15fd69b03532eca141ea7e13e2f606f
5
5
  SHA512:
6
- metadata.gz: 93fc7a2d83ccb9a72d3b9eca238f70d6d87c1f6c7cd919faf2f0f418cf2ae82faf00c4dd912100748c78f66dbcf82b124e9cdb7e2ba7e08135dee82024d46ee8
7
- data.tar.gz: a15743cd3c9596c3fcf9ab6d1813964a97287a3c6fb9b7ccb666d53c70185234799aed1585fcf85fb901a11d2462bf35c949bc95981816c0d4c5782c17e62831
6
+ metadata.gz: 94566c0a67b0b1f47fc0a80248b2bcac686ec2e63f07e36ea258f034190e989cebde63c332a620caa42269556c7de4504f5225670d38c973f4b62f5e59f2b246
7
+ data.tar.gz: 633ec7ea22ade4ed28dd99796de71ac8088b94d389aa6edff71ae1934f2dff93576ab36b9681b2f15ddd2755d3bd9683d03efb69ceee7699f4be37f027823273
data/Gemfile.devtools CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  group :development do
4
- gem 'rake', '~> 10.0.4'
4
+ gem 'rake', '~> 10.1.0'
5
5
  gem 'rspec', '~> 2.13.0'
6
6
  gem 'yard', '~> 0.8.6.1'
7
7
  end
@@ -11,12 +11,12 @@ group :yard do
11
11
  end
12
12
 
13
13
  group :guard do
14
- gem 'guard', '~> 1.8.0'
14
+ gem 'guard', '~> 1.8.1'
15
15
  gem 'guard-bundler', '~> 1.0.0'
16
- gem 'guard-rspec', '~> 2.5.4'
16
+ gem 'guard-rspec', '~> 3.0.2'
17
17
 
18
18
  # file system change event handling
19
- gem 'listen', '~> 1.0.2'
19
+ gem 'listen', '~> 1.2.2'
20
20
  gem 'rb-fchange', '~> 0.0.6', :require => false
21
21
  gem 'rb-fsevent', '~> 0.9.3', :require => false
22
22
  gem 'rb-inotify', '~> 0.9.0', :require => false
@@ -28,20 +28,20 @@ group :guard do
28
28
  end
29
29
 
30
30
  group :metrics do
31
- gem 'backports', '~> 3.3', '>= 3.3.0'
32
- gem 'coveralls', '~> 0.6.6'
33
- gem 'flay', '~> 2.2.0'
34
- gem 'flog', '~> 4.0.0'
35
- gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
36
- gem 'simplecov', '~> 0.7.1'
37
- gem 'yardstick', '~> 0.9.6'
31
+ gem 'backports', '~> 3.3', '>= 3.3.2'
32
+ gem 'coveralls', '~> 0.6.7'
33
+ gem 'flay', '~> 2.3.0'
34
+ gem 'flog', '~> 4.1.0'
35
+ gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
36
+ gem 'simplecov', '~> 0.7.1'
37
+ gem 'yardstick', '~> 0.9.6'
38
38
 
39
39
  platforms :ruby_19 do
40
40
  gem 'yard-spellcheck', '~> 0.1.5'
41
41
  end
42
42
 
43
- platforms :mri_19, :rbx do
44
- gem 'mutant', '~> 0.2.20'
43
+ platforms :ruby_19, :ruby_20 do
44
+ gem 'mutant', '~> 0.3.beta4'
45
45
  end
46
46
 
47
47
  platforms :rbx do
data/LICENSE ADDED
@@ -0,0 +1,20 @@
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/README.md CHANGED
@@ -5,19 +5,39 @@ unparser
5
5
  [![Dependency Status](https://gemnasium.com/mbj/unparser.png)](https://gemnasium.com/mbj/unparser)
6
6
  [![Code Climate](https://codeclimate.com/github/mbj/unparser.png)](https://codeclimate.com/github/mbj/unparser)
7
7
 
8
- Generate equivalent inputs for ASTs from whitequarks awesome [parser](https://github.com/whitequark/parser).
8
+ Generate equivalent source for ASTs from whitequarks awesome [parser](https://github.com/whitequark/parser).
9
9
 
10
10
  Usage
11
11
  -----
12
12
 
13
- In spike mode, no public API currently.
13
+ ```ruby
14
+ require 'unparser'
15
+ Unparser.unparse(your_ast) # => "the code"
16
+ ```
17
+
18
+ Equivalent vs identical:
19
+
20
+ ```ruby
21
+ require 'unparser'
22
+
23
+ code = <<-RUBY
24
+ %w(foo bar)
25
+ RUBY
26
+
27
+ node = Parser::CurrentRuby.parse(code)
28
+
29
+ generated = Unparser.unparse(node) # ["foo", "bar"], NOT %w(foo bar) !
30
+
31
+ code == generated # false, not identical code
32
+ Parser::CurrentRuby.parse(generated) == node # true, but identical AST
33
+ ```
34
+
35
+ Summary: unparser does not reproduce your source! It produces equivalent source.
14
36
 
15
37
  Installation
16
38
  ------------
17
39
 
18
- There is currently no gem release. Use git source in your Gemfile:
19
-
20
- ```gem 'unparser', :git => 'https://github.com/mbj/unparser'```
40
+ Install the gem `unparser` via your prefered method.
21
41
 
22
42
  Credits
23
43
  -------
data/Rakefile CHANGED
@@ -16,7 +16,7 @@ Rake::Task['metrics:mutant'].overwrite do
16
16
  rescue LoadError
17
17
  end
18
18
  if defined?(Mutant) and !ENV.key?('CI')
19
- status = Mutant::CLI.run(%W(--rspec-full -r ./spec/spec_helper.rb ::Unparser))
19
+ status = Mutant::CLI.run(%W(--rspec-full ::Unparser))
20
20
  unless status.zero?
21
21
  fail "Not mutation covered :("
22
22
  end
data/config/flog.yml CHANGED
@@ -1,2 +1,2 @@
1
1
  ---
2
- threshold: 14.8
2
+ threshold: 11.8
@@ -90,7 +90,11 @@ module Unparser
90
90
  write(K_RESCUE)
91
91
  emit_exception
92
92
  emit_assignment
93
- indented { visit(body) }
93
+ if body
94
+ indented { visit(body) }
95
+ else
96
+ nl
97
+ end
94
98
  end
95
99
 
96
100
  # Emit exception
@@ -418,6 +418,13 @@ describe Unparser, 'spike' do
418
418
  end
419
419
  RUBY
420
420
 
421
+ assert_source <<-RUBY
422
+ begin
423
+ bar
424
+ rescue LoadError
425
+ end
426
+ RUBY
427
+
421
428
  assert_source <<-RUBY
422
429
  begin
423
430
  bar
@@ -822,7 +829,7 @@ describe Unparser, 'spike' do
822
829
  RUBY
823
830
  end
824
831
 
825
- context 'binary operators methods' do
832
+ context 'binary operator methods' do
826
833
  %w(+ - * / & | << >> == === != <= < <=> > >= =~ !~ ^ **).each do |operator|
827
834
  rubies = RUBIES - (%w(!= !~).include?(operator) ? %w(1.8) : [])
828
835
  assert_source "1 #{operator} 2", rubies
@@ -834,12 +841,12 @@ describe Unparser, 'spike' do
834
841
  end
835
842
  end
836
843
 
837
- context 'binary operator' do
844
+ context 'binary operator' do
838
845
  assert_source '((a) || (break(foo)))'
839
846
  assert_source '((break(foo)) || (a))'
840
847
  assert_source '((a) || (b)).foo'
841
848
  assert_source '((a) || (((b) || (c))))'
842
- end
849
+ end
843
850
 
844
851
  { :or => :'||', :and => :'&&' }.each do |word, symbol|
845
852
  assert_generates "a #{word} break foo", "((a) #{symbol} (break(foo)))"
data/unparser.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'unparser'
5
- s.version = '0.0.4'
5
+ s.version = '0.0.5'
6
6
 
7
7
  s.authors = ['Markus Schirp']
8
8
  s.email = 'mbj@schir-dso.com'
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = %w(lib)
17
17
  s.extra_rdoc_files = %w(README.md)
18
18
 
19
- s.add_dependency('parser', '~> 2.0.0.beta7')
19
+ s.add_dependency('parser', '~> 2.0.0.beta9')
20
20
  s.add_dependency('concord', '~> 0.1.0')
21
21
  s.add_dependency('adamantium', '~> 0.0.7')
22
22
  s.add_dependency('equalizer', '~> 0.0.5')
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.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-22 00:00:00.000000000 Z
11
+ date: 2013-06-28 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.0.0.beta7
19
+ version: 2.0.0.beta9
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.0.0.beta7
26
+ version: 2.0.0.beta9
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concord
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +95,7 @@ files:
95
95
  - Gemfile
96
96
  - Gemfile.devtools
97
97
  - Guardfile
98
+ - LICENSE
98
99
  - README.md
99
100
  - Rakefile
100
101
  - TODO