rpr 1.0.0 → 1.1.0

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -15
  3. data/lib/rpr.rb +17 -8
  4. data/lib/rpr/version.rb +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a1f69e9323d5cb305b7661c47f708cce50f0077
4
- data.tar.gz: 55dcc3236fa4408728c13ea3d93aedcdc46e8424
3
+ metadata.gz: 0e3e4966534807640fa07c9c5a4582d307c144a8
4
+ data.tar.gz: 67524b5f039708d2800f08d7dc12c20365214cdc
5
5
  SHA512:
6
- metadata.gz: 0e4567dd08192ce7e1968e0e59ed09ef29d5b6a2dd3a0357b726321433e8e02cbdb76f16846b1f3e1043a3d1b9a28f4d3118cde72e8ef5fe2056709c77e66972
7
- data.tar.gz: 3a946bb44d02a82e1c82499578aa2ca1d7921262d6d14bc7be965e323ea1799a4181fc9769c6ad1e7f0ee3c8172787733e3c644d041f15140ff81acebdf5843a
6
+ metadata.gz: 41e66cfb496f1b831061c85705c464e77e51836749c88fc2d9ba9faf63380a9054843d27732c164eed874e710ea455d525971597cdebd2f2e76217a554801a8f
7
+ data.tar.gz: 18a93ae0e9aa189af4efb868207c4a2ff27705c15a19bcbbdaf7a0d6b6ceee8dbc32dc0645f3b2f96169f305150d00484a3ae0b52e50ea0068309ec754da642f
data/README.md CHANGED
@@ -36,25 +36,14 @@ $ rpr hello.rb
36
36
  false]]]]
37
37
  ```
38
38
 
39
- ### Specify Method
39
+ ### Specify Parser
40
40
 
41
41
  Default: `sexp`
42
42
 
43
43
  ```sh
44
- $ rpr hello.rb --method sexp_raw
45
- [:program,
46
- [:stmts_add,
47
- [:stmts_new],
48
- [:command,
49
- [:@ident, "puts", [1, 0]],
50
- [:args_add_block,
51
- [:args_add,
52
- [:args_new],
53
- [:string_literal,
54
- [:string_add,
55
- [:string_content],
56
- [:@tstring_content, "Hello world", [1, 6]]]]],
57
- false]]]]
44
+ $ rpr hello.rb --parser rubocop
45
+ s(:send, nil, :puts,
46
+ s(:str, "Hello world"))
58
47
  ```
59
48
 
60
49
  ```sh
data/lib/rpr.rb CHANGED
@@ -3,6 +3,7 @@ require 'rpr/config'
3
3
 
4
4
  require 'ripper'
5
5
  require 'optparse'
6
+ require 'stringio'
6
7
 
7
8
  module Rpr
8
9
  class << self
@@ -17,17 +18,23 @@ module Rpr
17
18
 
18
19
  formatter = find_formatter(options[:formatter])
19
20
  parser = find_parser(options[:parser])
20
- args.each do |fname|
21
- code = File.read(fname)
22
- res = parser.parse(code)
23
21
 
22
+ if options[:expression]
23
+ res = parser.parse(options[:expression])
24
24
  formatter.print(res)
25
+ else
26
+ args.each do |fname|
27
+ code = File.read(fname)
28
+ res = parser.parse(code)
29
+
30
+ formatter.print(res)
31
+ end
25
32
  end
26
33
  ensure
27
34
  $stdout.close unless $stdout.tty?
28
35
  end
29
36
 
30
- # @param [String] name
37
+ # @param [Symbol] name
31
38
  # @return [Module]
32
39
  def find_formatter(name)
33
40
  require "rpr/formatter/#{name}"
@@ -36,7 +43,7 @@ module Rpr
36
43
  raise "#{name} is unknown formatter."
37
44
  end
38
45
 
39
- # @param [String] name
46
+ # @param [Symbol] name
40
47
  # @return [Module]
41
48
  def find_parser(name)
42
49
  require "rpr/parser/#{name}"
@@ -51,13 +58,15 @@ module Rpr
51
58
  formatter: :pp,
52
59
  version: false,
53
60
  parser: :sexp,
61
+ expression: nil,
54
62
  }
55
63
 
56
64
  opt = OptionParser.new
57
65
 
58
- opt.on('-f=VAL', '--formatter=VAL'){|v| res[:formatter] = v.to_sym}
59
- opt.on('-o=VAL', '--out=VAL'){|v| $stdout = File.new(v, 'w')}
60
- opt.on('-p=VAL', '--parser=VAL'){|v| res[:parser] = v}
66
+ opt.on('-f=FORMATTER', '--formatter=FORMATTER'){|v| res[:formatter] = v.to_sym}
67
+ opt.on('-o=FILE', '--out=FILE'){|v| $stdout = File.new(v, 'w')}
68
+ opt.on('-p=PARSER', '--parser=PARSER'){|v| res[:parser] = v.to_sym}
69
+ opt.on('-e=CODE'){|v| res[:expression] = v}
61
70
  opt.on('-v', '--version'){|v| res[:version] = v}
62
71
 
63
72
  opt.parse!(args)
data/lib/rpr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rpr
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masataka Kuwabara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-27 00:00:00.000000000 Z
11
+ date: 2016-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry