parsely 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/TODO +1 -1
- data/lib/parsely.rb +37 -13
- data/test/basic/015-rcfile-env/command +2 -0
- data/test/basic/015-rcfile-env/counts.txt +7 -0
- data/test/basic/015-rcfile-env/output +8 -0
- data/test/basic/015-rcfile-env/parselyrc +1 -0
- data/test/basic/016-rcfile-home/command +1 -0
- data/test/basic/016-rcfile-home/counts.txt +7 -0
- data/test/basic/016-rcfile-home/myhome/.parselyrc +1 -0
- data/test/basic/016-rcfile-home/output +8 -0
- metadata +19 -3
data/TODO
CHANGED
data/lib/parsely.rb
CHANGED
@@ -48,7 +48,7 @@ class Proc
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
class Parsely
|
51
|
-
VERSION = "0.1.
|
51
|
+
VERSION = "0.1.3"
|
52
52
|
def self.cmd(&block)
|
53
53
|
klass = Struct.new :value, &block
|
54
54
|
klass.class_eval do
|
@@ -106,17 +106,17 @@ class Parsely
|
|
106
106
|
@result
|
107
107
|
end
|
108
108
|
end,
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
109
|
+
:sum => cmd do
|
110
|
+
def initialize index
|
111
|
+
super
|
112
|
+
@running_value = 0
|
113
|
+
@result = proc { @running_value }
|
114
|
+
@result.single = true
|
115
|
+
end
|
116
|
+
def _process(value)
|
117
|
+
@running_value += value.to_i
|
118
|
+
@result
|
119
|
+
end
|
120
120
|
end,
|
121
121
|
:avg => cmd do
|
122
122
|
def initialize index
|
@@ -194,8 +194,18 @@ class Parsely
|
|
194
194
|
r=elems.map do |e|
|
195
195
|
case e
|
196
196
|
when /(\w+)\(\_(\d+)\)/
|
197
|
-
|
197
|
+
opname = $1.to_sym
|
198
|
+
klass=Ops[opname]
|
198
199
|
if klass.nil?
|
200
|
+
=begin
|
201
|
+
if respond_to? opname
|
202
|
+
klass = cmd do
|
203
|
+
def _process(value)
|
204
|
+
send opname, value
|
205
|
+
end
|
206
|
+
end
|
207
|
+
else
|
208
|
+
=end
|
199
209
|
abort "unknown op '#$1'"
|
200
210
|
end
|
201
211
|
klass.new(Value.new($2.to_i))
|
@@ -217,10 +227,24 @@ class Parsely
|
|
217
227
|
end
|
218
228
|
end
|
219
229
|
|
230
|
+
def load_rc
|
231
|
+
rcfile = if ENV["PARSELYRC"]
|
232
|
+
ENV["PARSELYRC"]
|
233
|
+
else
|
234
|
+
home = ENV["HOME"] || Dir.pwd
|
235
|
+
home+"/.parselyrc"
|
236
|
+
#_parsely, $parsely etc
|
237
|
+
end
|
238
|
+
if File.exists?(rcfile)
|
239
|
+
load rcfile
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
220
243
|
def main
|
221
244
|
if ARGV.empty?
|
222
245
|
abort("usage #$0 <expr> <file file file| stdin >")
|
223
246
|
end
|
247
|
+
load_rc
|
224
248
|
expr = ARGV.shift
|
225
249
|
main_loop(expr,ARGF)
|
226
250
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
puts "from rcfile"
|
@@ -0,0 +1 @@
|
|
1
|
+
HOME=myhome parsely '_1' counts.txt
|
@@ -0,0 +1 @@
|
|
1
|
+
puts 'from home rc'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parsely
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-07-14 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &2168739940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2168739940
|
25
25
|
description: ! "parsely is a simple tool for managing text files.\n Mostly
|
26
26
|
to replace a lot of awk/sed/ruby/perl one-off scripts.\n This
|
27
27
|
is an internal release, guaranteed to break and ruin your life."
|
@@ -81,6 +81,14 @@ files:
|
|
81
81
|
- test/basic/014-line-index/command
|
82
82
|
- test/basic/014-line-index/counts.txt
|
83
83
|
- test/basic/014-line-index/output
|
84
|
+
- test/basic/015-rcfile-env/command
|
85
|
+
- test/basic/015-rcfile-env/counts.txt
|
86
|
+
- test/basic/015-rcfile-env/output
|
87
|
+
- test/basic/015-rcfile-env/parselyrc
|
88
|
+
- test/basic/016-rcfile-home/command
|
89
|
+
- test/basic/016-rcfile-home/counts.txt
|
90
|
+
- test/basic/016-rcfile-home/myhome/.parselyrc
|
91
|
+
- test/basic/016-rcfile-home/output
|
84
92
|
- test/cli-runner.rb
|
85
93
|
homepage: http://github.com/riffraff/parsely
|
86
94
|
licenses: []
|
@@ -149,4 +157,12 @@ test_files:
|
|
149
157
|
- test/basic/014-line-index/command
|
150
158
|
- test/basic/014-line-index/counts.txt
|
151
159
|
- test/basic/014-line-index/output
|
160
|
+
- test/basic/015-rcfile-env/command
|
161
|
+
- test/basic/015-rcfile-env/counts.txt
|
162
|
+
- test/basic/015-rcfile-env/output
|
163
|
+
- test/basic/015-rcfile-env/parselyrc
|
164
|
+
- test/basic/016-rcfile-home/command
|
165
|
+
- test/basic/016-rcfile-home/counts.txt
|
166
|
+
- test/basic/016-rcfile-home/myhome/.parselyrc
|
167
|
+
- test/basic/016-rcfile-home/output
|
152
168
|
- test/cli-runner.rb
|