rextra 2.0.4 → 2.0.5
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.
- data/lib/rextra.rb +2 -0
- data/lib/rextra/cutting.rb +1 -15
- data/lib/rextra/debug.rb +38 -36
- metadata +2 -4
- data/lib/rextra/bleeding.rb +0 -222
- data/lib/rextra/enddata.rb +0 -0
data/lib/rextra.rb
CHANGED
data/lib/rextra/cutting.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
1
2
|
class Object
|
2
3
|
def __meta() class << self; self end end
|
3
4
|
def meta_eval(&blk) __meta.instance_eval( &blk ) end
|
@@ -42,24 +43,9 @@ module Rextra
|
|
42
43
|
@master.map do |e| e.send sym, *args end
|
43
44
|
end
|
44
45
|
end
|
45
|
-
class Do < SimpleObject
|
46
|
-
def initialize( master ) @master = master.clone end
|
47
|
-
def method_missing( sym, *args )
|
48
|
-
@master.map! do |e| e.send sym, *args end
|
49
|
-
self
|
50
|
-
end
|
51
|
-
def end() @master end
|
52
|
-
end
|
53
46
|
end
|
54
47
|
end
|
55
48
|
module Enumerable
|
56
49
|
def all() Rextra::Enumerable::All.new self end
|
57
|
-
def do () Rextra::Enumerable::Do.new self end
|
58
50
|
end
|
59
51
|
# -----------------------------------------------------------------------------
|
60
|
-
#module Kernel
|
61
|
-
# def caller_name deep = 1
|
62
|
-
# /:in `(\S*)'$/.match(caller[deep])[1]
|
63
|
-
# end
|
64
|
-
# def method_name() caller_name end
|
65
|
-
#end
|
data/lib/rextra/debug.rb
CHANGED
@@ -1,51 +1,53 @@
|
|
1
|
-
################################################################################
|
2
1
|
module Rextra
|
3
|
-
module Debug
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
(require('term/ansicolor') rescue nil)
|
9
|
-
end
|
10
|
-
################################################################################
|
11
|
-
def self.output *args
|
12
|
-
outs = [STDERR]
|
13
|
-
#outs << logger if defined? RAILS_ENV # FIXME
|
14
|
-
args.each do |arg|
|
2
|
+
module Debug
|
3
|
+
module DebugHelper
|
4
|
+
def self.puts arg, color = :green
|
5
|
+
require 'term/ansicolor' rescue nil
|
6
|
+
outs = [STDERR]
|
15
7
|
outs.each do |out|
|
16
8
|
out.puts(
|
17
9
|
if defined? Term::ANSIColor
|
18
|
-
Term::ANSIColor
|
10
|
+
Term::ANSIColor.send(color) { arg.to_s }
|
19
11
|
else
|
20
12
|
arg.to_s
|
21
13
|
end
|
22
14
|
)
|
23
15
|
end
|
24
16
|
end
|
17
|
+
def self.output *args
|
18
|
+
puts('-' * 80)
|
19
|
+
args.each do |arg| puts arg.to_s.chomp, :yellow end
|
20
|
+
end
|
25
21
|
end
|
26
22
|
end
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
23
|
+
end
|
24
|
+
|
25
|
+
if (defined? RAILS_ENV and RAILS_ENV != 'production') or $DEBUG or ENV['REXTRA_DEBUG']
|
26
|
+
def __here *args
|
27
|
+
__d(*['here'].concat(args))
|
28
|
+
end
|
29
|
+
def __d *args
|
30
|
+
Rextra::Debug::DebugHelper::output *args
|
31
|
+
end
|
32
|
+
def __e *args
|
33
|
+
require 'binding_of_caller'
|
34
|
+
Binding.of_caller do |b|
|
35
|
+
Rextra::Debug::DebugHelper::output *(args.map do |arg|
|
36
|
+
"||| #{arg} ==> #{eval(arg,b).to_yaml}" rescue '[ERROR OUTPUTING]'
|
37
|
+
end)
|
43
38
|
end
|
44
|
-
else
|
45
|
-
def __here(*args) end
|
46
|
-
def __d(*args) end
|
47
|
-
def __e(*args) end
|
48
39
|
end
|
49
|
-
|
40
|
+
def __stack
|
41
|
+
__d caller.to_yaml
|
42
|
+
end
|
43
|
+
def __pause
|
44
|
+
__d '[PRESS ENTER]'
|
45
|
+
STDIN.getc
|
46
|
+
end
|
47
|
+
else
|
48
|
+
def __here(*args) end
|
49
|
+
def __d(*args) end
|
50
|
+
def __e(*args) end
|
51
|
+
def __stack() end
|
52
|
+
def __pause() end
|
50
53
|
end
|
51
|
-
################################################################################
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rextra
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 2.0.
|
7
|
-
date: 2006-
|
6
|
+
version: 2.0.5
|
7
|
+
date: 2006-12-07 00:00:00 -07:00
|
8
8
|
summary: Ruby extras.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -35,10 +35,8 @@ files:
|
|
35
35
|
- test/ts_rextra.rb
|
36
36
|
- lib/rextra
|
37
37
|
- lib/rextra.rb
|
38
|
-
- lib/rextra/bleeding.rb
|
39
38
|
- lib/rextra/cutting.rb
|
40
39
|
- lib/rextra/debug.rb
|
41
|
-
- lib/rextra/enddata.rb
|
42
40
|
- README
|
43
41
|
test_files:
|
44
42
|
- test/ts_rextra.rb
|
data/lib/rextra/bleeding.rb
DELETED
@@ -1,222 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# rapid/rextra.rb
|
3
|
-
# USE "rdoc rapid/rextra.rb" to build the docs for this file.
|
4
|
-
#++
|
5
|
-
#
|
6
|
-
# == Example Use
|
7
|
-
# TBD
|
8
|
-
#
|
9
|
-
# == Credits
|
10
|
-
# Michael Garriss
|
11
|
-
#
|
12
|
-
# == Licence
|
13
|
-
# TBD
|
14
|
-
|
15
|
-
#--
|
16
|
-
# TODO review this
|
17
|
-
# TODO test test test
|
18
|
-
#++
|
19
|
-
|
20
|
-
require 'rextra/cutting'
|
21
|
-
|
22
|
-
def __TBD
|
23
|
-
raise 'TBD'
|
24
|
-
end
|
25
|
-
|
26
|
-
#def ObjectSpace.make_proc str
|
27
|
-
# eval "proc {#{str}}"
|
28
|
-
#end
|
29
|
-
#
|
30
|
-
#module Kernel
|
31
|
-
# def call_stack
|
32
|
-
# require 'ostruct'
|
33
|
-
# caller.map do |c|
|
34
|
-
# # TODO rewrite this regexp
|
35
|
-
# m = /^([\.a-zA-Z_0-9()\/]*):(\d*)(?::in `(\S*)')?$/.match c
|
36
|
-
# OpenStruct.new(:file=>m[1],:line=>m[2],:call=>m[3]) rescue nil
|
37
|
-
# end.compact
|
38
|
-
# end
|
39
|
-
# def caller_name deep = 1
|
40
|
-
# /:in `(\S*)'$/.match( caller[deep] )[1]
|
41
|
-
# end
|
42
|
-
# def method_name() caller_name end
|
43
|
-
#end
|
44
|
-
#
|
45
|
-
#class Object
|
46
|
-
# def this
|
47
|
-
# require 'weakref'
|
48
|
-
# WeakRef.new self
|
49
|
-
# end
|
50
|
-
# def destructor str
|
51
|
-
# ObjectSpace.define_finalizer this, ObjectSpace.make_proc( str )
|
52
|
-
# end
|
53
|
-
#end
|
54
|
-
#
|
55
|
-
#class Module
|
56
|
-
# def module () self end
|
57
|
-
# def modules() [self] + modules_up end
|
58
|
-
# def module_up() eval name.sub( /(::)?\w+$/, '' ) end
|
59
|
-
# def modules_up result = []
|
60
|
-
# (r = module_up) ? r.modules_up( result << r ) : result end
|
61
|
-
# def def_advice meth, &block
|
62
|
-
# prev = self.instance_method meth.
|
63
|
-
# define_method( meth ) do |*args|
|
64
|
-
# block.call( prev.bind(self), *args )
|
65
|
-
# end
|
66
|
-
# end
|
67
|
-
#
|
68
|
-
# # TODO fix #const to look in global module
|
69
|
-
# class Const
|
70
|
-
# def initialize mod
|
71
|
-
# @mod = mod
|
72
|
-
# end
|
73
|
-
# def method_missing( sym, *args )
|
74
|
-
# @mod.modules.each do |mod|
|
75
|
-
# return mod.const_get( sym ) if mod.const_defined? sym.to_s
|
76
|
-
# end
|
77
|
-
# #raise NameError, "uninitialized constant #{sym}"
|
78
|
-
# nil
|
79
|
-
# end
|
80
|
-
# end
|
81
|
-
#
|
82
|
-
# def const
|
83
|
-
# Const.new self.module
|
84
|
-
# end
|
85
|
-
#
|
86
|
-
# def consts *syms
|
87
|
-
# start, inc = 0, 1
|
88
|
-
# start = syms.shift if syms.first.kind_of? Integer
|
89
|
-
# inc = syms.pop if syms.last.kind_of? Integer
|
90
|
-
# syms.each do |sym|
|
91
|
-
# class_eval "#{sym.to_s.upcase} = #{start}"
|
92
|
-
# start += inc
|
93
|
-
# end
|
94
|
-
# end
|
95
|
-
#
|
96
|
-
#end
|
97
|
-
#
|
98
|
-
#def parallel_each( *args )
|
99
|
-
# args.shift.zip( *args ).each do |e|
|
100
|
-
# yield( *e )
|
101
|
-
# end
|
102
|
-
#end
|
103
|
-
#
|
104
|
-
#module Rapid
|
105
|
-
#
|
106
|
-
# class ThreadPool
|
107
|
-
# def initialize size = 10
|
108
|
-
# @count, @max = 0, size
|
109
|
-
# @mutex, @cond = Mutex.new, ConditionVariable.new
|
110
|
-
# end
|
111
|
-
# def thread *args, &block
|
112
|
-
# @mutex.synchronize do
|
113
|
-
# @cond.wait @mutex unless @count < @max
|
114
|
-
# @count += 1
|
115
|
-
# result = Thread.new(args,Thread.current,block) do |args,th,block|
|
116
|
-
# begin
|
117
|
-
# block.call *args
|
118
|
-
# rescue => e
|
119
|
-
# th.raise e
|
120
|
-
# ensure
|
121
|
-
# release
|
122
|
-
# end end end
|
123
|
-
# end
|
124
|
-
# def max=(size) @mutex.synchronize { @max = size } end
|
125
|
-
# private
|
126
|
-
# def release
|
127
|
-
# @mutex.synchronize do
|
128
|
-
# @count -= 1
|
129
|
-
# @cond.signal
|
130
|
-
# end
|
131
|
-
# end
|
132
|
-
# end
|
133
|
-
#
|
134
|
-
# VERSION = '0.0.2'
|
135
|
-
#
|
136
|
-
# def self.tempfile name = nil
|
137
|
-
# require 'tempfile'
|
138
|
-
# tf = Tempfile.new name
|
139
|
-
# yield tf
|
140
|
-
# ensure
|
141
|
-
# tf.close true
|
142
|
-
# end
|
143
|
-
#
|
144
|
-
# def self.start_daemon *args, &block
|
145
|
-
# :$VERBOSE.temporary nil do
|
146
|
-
# #EndData.close if $leftovers
|
147
|
-
# Process.fork do
|
148
|
-
# fork and exit
|
149
|
-
# trap( 'INT' ) { Thread.current.kill }
|
150
|
-
# $stderr = $stdout = $stdin = NullDevice.new
|
151
|
-
# Process.setsid
|
152
|
-
# block.call( *args )
|
153
|
-
# end
|
154
|
-
# end
|
155
|
-
# end
|
156
|
-
#
|
157
|
-
# def self.term_size
|
158
|
-
# require 'curses'
|
159
|
-
# Curses.init_screen
|
160
|
-
# x, y = Curses.cols, Curses.lines
|
161
|
-
# Curses.close_screen
|
162
|
-
# [x, y]
|
163
|
-
# ensure
|
164
|
-
# Curses.close_screen
|
165
|
-
# end
|
166
|
-
#
|
167
|
-
# def self.filename
|
168
|
-
# File.basename $0
|
169
|
-
# end
|
170
|
-
#
|
171
|
-
# def self.create_key size = 16 # copied from cgi/session.rb
|
172
|
-
# require 'digest/md5'
|
173
|
-
# md5 = Digest::MD5::new
|
174
|
-
# md5.update(String(Time::now))
|
175
|
-
# md5.update(String(rand(0)))
|
176
|
-
# md5.update(String($$))
|
177
|
-
# md5.hexdigest[0,size]
|
178
|
-
# end
|
179
|
-
#
|
180
|
-
#module Kernel
|
181
|
-
#
|
182
|
-
# def modules() self.class.modules end
|
183
|
-
# def module() self.class.module end
|
184
|
-
# def module_up() self.class.module_up end
|
185
|
-
# def modules_up() self.class.modules_up end
|
186
|
-
#
|
187
|
-
#end
|
188
|
-
#
|
189
|
-
#def required
|
190
|
-
# result = []
|
191
|
-
# $".each do |file|
|
192
|
-
# $:.each do |path|
|
193
|
-
# if File.exists?( path + '/' + file )
|
194
|
-
# result << (path + '/' + file)
|
195
|
-
# next
|
196
|
-
# end
|
197
|
-
# end
|
198
|
-
# end
|
199
|
-
# result
|
200
|
-
#end
|
201
|
-
#
|
202
|
-
#def required? file
|
203
|
-
# (el = required.grep( /#{file}(\.rb|\.so)?$/ ).to_el).empty? ? false : el
|
204
|
-
#end
|
205
|
-
#
|
206
|
-
#class Array
|
207
|
-
# def to_el # TODO better name
|
208
|
-
# size == 1 ? first : self
|
209
|
-
# end
|
210
|
-
#end
|
211
|
-
#
|
212
|
-
#class Numeric
|
213
|
-
# def commify
|
214
|
-
# to_s.reverse.scan(/\d{3}|\d+/).join(',').reverse
|
215
|
-
# end
|
216
|
-
#end
|
217
|
-
#
|
218
|
-
#class Float
|
219
|
-
# def to_s_cut x = 3
|
220
|
-
# to_s.scan(/\d*\.\d{0,#{x}}/)
|
221
|
-
# end
|
222
|
-
#end
|
data/lib/rextra/enddata.rb
DELETED
File without changes
|