pipewrench 0.2.0 → 0.3.0

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: 2f2152e145d0f7941faa0049ffe67a330d45d0e1
4
- data.tar.gz: c7121bf392717c30ebab9fadb44bc7293dfb0bf1
3
+ metadata.gz: b31d5164c641272857104b8e3057ae0f2edf6142
4
+ data.tar.gz: 4602d1707a505175f73eae973516728e11a68fc5
5
5
  SHA512:
6
- metadata.gz: 5e7b7455d135f7e0bef841362d5f791812f48e75f4fd4e7660ac0083658cad202f76639ddafad9f0ce3ef51cf6f0b5ba767223343f3a179813f0088e7eab4d85
7
- data.tar.gz: 929b38bd8f5145910e4323a3faf4d0f9441d2bf765b0896865b876233d3688fa7b10e37593b3fb2d6155a6f9783b31990356f6acb03b1c655a87018616592681
6
+ metadata.gz: fb67171c76d145e4bd64fcf35fadca91fb9637e9bb76fa1ff6c0c9c74d06fa0668e4c3c8422e2047e635c542d243751318aeb2a61f6402ed48694fecd68a9a58
7
+ data.tar.gz: 57040bd2b2a3cd04fc21aeea6871519ad6933b2f9c42e8455cb62f8c400cf268e066feb525105295f613d2b89f9cfbf62e5f9552dfd429617626c43d1e9d89c0
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.2.2
3
4
  - 2.1.5
5
+ - 2.0.0
4
6
  before_install: gem install bundler -v 1.10.4
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Pipewrench
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/pipewrench.svg)](https://badge.fury.io/rb/pipewrench)
4
+ [![Build Status](https://travis-ci.org/sionide21/pipewrench.svg?branch=master)](https://travis-ci.org/sionide21/pipewrench)
5
+
3
6
  General purpose command line pipe processing tool.
4
7
 
5
8
  ## Installation
@@ -9,15 +12,16 @@ General purpose command line pipe processing tool.
9
12
  ## Usage
10
13
 
11
14
  ```
12
- Usage: pipewrench [options] expression
15
+ Usage: pipewrench [options] expression [file ...]
13
16
  -c, --compact Remove nil lines from output
14
17
  -m, --map Run each line through the expression
18
+ -r, --rails Load Active Support Core Extensions
15
19
  -s, --strip Strip trailing whitespace from each line before running
16
20
  -h, --help Show this message
17
21
  --version Show version
18
22
  ```
19
23
 
20
- Pipewrench evaluates the given expression against standard input.
24
+ Pipewrench evaluates the given expression against the specified files (or standard input if no files are given).
21
25
  This allows you to write powerful ruby expressions as part of your pipeline.
22
26
 
23
27
  Here are some examples:
@@ -32,6 +36,11 @@ $ echo "My Cat" >> pipewrench.txt
32
36
  $ echo "His Dog" >> pipewrench.txt
33
37
  $ echo "Her Fish" >> pipewrench.txt
34
38
  $ echo "My Frog" >> pipewrench.txt
39
+ $ pipewrench 'grep(/^My (\w+)/) {$1}' pipewrench.txt
40
+ Cat
41
+ Frog
42
+
43
+ # Or, from standard in
35
44
  $ cat pipewrench.txt | pipewrench 'grep(/^My (\w+)/) {$1}'
36
45
  Cat
37
46
  Frog
@@ -43,7 +52,7 @@ Evaluate the expression for each line of input.
43
52
 
44
53
  ```
45
54
  # Convert input to upper case
46
- $ cat pipewrench.txt | pipewrench -m upcase
55
+ $ pipewrench -m upcase pipewrench.txt
47
56
  MY CAT
48
57
  HIS DOG
49
58
  HER FISH
@@ -63,6 +72,16 @@ $ seq 1 10 | pipewrench -c -m 'self if to_i < 5'
63
72
  4
64
73
  ```
65
74
 
75
+ ### -r, --rails
76
+
77
+ Load [Active Support Core Extensions](http://guides.rubyonrails.org/active_support_core_extensions.html). This gives you access to rails helper methods.
78
+
79
+ ```
80
+ # Convert numbers to human readable sizes
81
+ $ echo 100000000 | pipewrench -mr 'to_i.to_s(:human_size)'
82
+ 95.4 MB
83
+ ```
84
+
66
85
  ### -s, --strip
67
86
 
68
87
  Remove trailing whitespace from each line before evaluating the expression.
@@ -2,4 +2,5 @@
2
2
  require "pipewrench"
3
3
 
4
4
  options = Pipewrench::Options.new.parse!
5
- puts Pipewrench.new($stdin, options).run(ARGV.join(" ")) || []
5
+ command = ARGV.shift
6
+ puts Pipewrench.new(ARGF, options).run(command) || []
@@ -8,6 +8,11 @@ class Pipewrench
8
8
  def initialize(stdin, options=Options.new)
9
9
  @stdin = stdin
10
10
  @options = options
11
+
12
+ if options.rails
13
+ require 'active_support'
14
+ require 'active_support/core_ext'
15
+ end
11
16
  end
12
17
 
13
18
  def run(cmd)
@@ -3,7 +3,7 @@ require "pipewrench/version"
3
3
 
4
4
  class Pipewrench
5
5
  class Options
6
- attr_reader :map, :strip, :compact
6
+ attr_reader :map, :strip, :compact, :rails
7
7
 
8
8
  def parse!(*args)
9
9
  parser.parse!(*args)
@@ -26,7 +26,7 @@ class Pipewrench
26
26
 
27
27
  def parser
28
28
  @parser ||= OptionParser.new do |opts|
29
- opts.banner = "Usage: pipewrench [options] expression"
29
+ opts.banner = "Usage: pipewrench [options] expression [file ...]"
30
30
 
31
31
  opts.on("-c", "--compact", "Remove nil lines from output") do |m|
32
32
  @compact = true
@@ -36,6 +36,10 @@ class Pipewrench
36
36
  @map = true
37
37
  end
38
38
 
39
+ opts.on("-r", "--rails", "Load Active Support Core Extensions") do |m|
40
+ @rails = true
41
+ end
42
+
39
43
  opts.on("-s", "--strip", "Strip trailing whitespace from each line before running") do |m|
40
44
  @strip = true
41
45
  end
@@ -1,3 +1,3 @@
1
1
  class Pipewrench
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency "bundler", "~> 1.10"
21
21
  spec.add_development_dependency "rake", "~> 10.0"
22
22
  spec.add_development_dependency "rspec"
23
+
24
+ spec.add_dependency "activesupport"
23
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipewrench
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Olive
@@ -14,42 +14,56 @@ dependencies:
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.10'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  description:
@@ -60,9 +74,9 @@ executables:
60
74
  extensions: []
61
75
  extra_rdoc_files: []
62
76
  files:
63
- - .gitignore
64
- - .rspec
65
- - .travis.yml
77
+ - ".gitignore"
78
+ - ".rspec"
79
+ - ".travis.yml"
66
80
  - Gemfile
67
81
  - README.md
68
82
  - Rakefile
@@ -82,17 +96,17 @@ require_paths:
82
96
  - lib
83
97
  required_ruby_version: !ruby/object:Gem::Requirement
84
98
  requirements:
85
- - - '>='
99
+ - - ">="
86
100
  - !ruby/object:Gem::Version
87
101
  version: '0'
88
102
  required_rubygems_version: !ruby/object:Gem::Requirement
89
103
  requirements:
90
- - - '>='
104
+ - - ">="
91
105
  - !ruby/object:Gem::Version
92
106
  version: '0'
93
107
  requirements: []
94
108
  rubyforge_project:
95
- rubygems_version: 2.0.14
109
+ rubygems_version: 2.4.3
96
110
  signing_key:
97
111
  specification_version: 4
98
112
  summary: General purpose command line pipe processing tool.