akitaonrails-utility_belt 1.0.10 → 1.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +28 -0
- data/lib/utility_belt/command_history.rb +3 -2
- data/lib/utility_belt/interactive_editor.rb +3 -1
- data/lib/utility_belt/print_methods.rb +28 -8
- data/utility_belt.gemspec +3 -2
- metadata +11 -2
data/History.txt
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
== 1.0.11 / 2008-09-21
|
2
|
+
|
3
|
+
* Fixed the h! command that was recursing within itself.
|
4
|
+
|
5
|
+
* Added Ruby2Ruby dependency to allow the developer to create
|
6
|
+
classes with IRB, by reopening and changing it and then
|
7
|
+
editing the whole thing within vi or textmate. by Fabio
|
8
|
+
Akita
|
9
|
+
|
10
|
+
* Editing from an outside editor doesn't change the history
|
11
|
+
so fixed with the reload of the externally edited program
|
12
|
+
within the history. by Fabio Akita
|
13
|
+
|
14
|
+
* Trying to fix the gemspec so Github can automatically
|
15
|
+
build the gem. by Fabio Akita
|
16
|
+
|
17
|
+
== 1.0.10 / 2008-09-20
|
18
|
+
|
19
|
+
* New "print_methods" for any class to print all the available methods
|
20
|
+
from itself and its superclass, included modules, etc with a more
|
21
|
+
visually compeling organization. by Fabio Akita
|
22
|
+
|
23
|
+
* Added 'clear_history' command to clear the Readline history. by
|
24
|
+
Fabio Akita
|
25
|
+
|
26
|
+
* Fixed the edit_interactively method that was failing for vi. And
|
27
|
+
fixed the \r line break to replace it to \n. by Fabio Akita
|
28
|
+
|
1
29
|
== 1.0.0 / 2007-11-03
|
2
30
|
|
3
31
|
* 1 major enhancement
|
@@ -43,8 +43,8 @@ class Object
|
|
43
43
|
end
|
44
44
|
alias :h :history
|
45
45
|
|
46
|
-
# -
|
47
|
-
def history_do(lines = (Readline::HISTORY.size -
|
46
|
+
# -3 because -1 is nil and -2 is ourself
|
47
|
+
def history_do(lines = (Readline::HISTORY.size - 3))
|
48
48
|
irb_eval lines
|
49
49
|
end
|
50
50
|
alias :h! :history_do
|
@@ -123,6 +123,7 @@ class Object
|
|
123
123
|
def irb_eval(lines)
|
124
124
|
to_eval = get_lines(lines)
|
125
125
|
to_eval.each {|l| Readline::HISTORY << l}
|
126
|
+
to_eval.reject! { |l| l.strip == 'h' || l =~ /^h\!/ } # avoid infinite recursion of itself
|
126
127
|
eval to_eval.join("\n")
|
127
128
|
end
|
128
129
|
end
|
@@ -34,7 +34,9 @@ class InteractiveEditor
|
|
34
34
|
@file = Tempfile.new("irb_tempfile")
|
35
35
|
end
|
36
36
|
system("#{@editor} #{@file.path}")
|
37
|
-
|
37
|
+
lines = File.read(@file.path).gsub("\r", "\n")
|
38
|
+
lines.split("\n").each { |l| Readline::HISTORY << l } # update history
|
39
|
+
Object.class_eval(lines)
|
38
40
|
rescue Exception => error
|
39
41
|
puts @file.path
|
40
42
|
puts error
|
@@ -7,16 +7,32 @@
|
|
7
7
|
# author: Fabio Akita (akitaonrails.com)
|
8
8
|
module UtilityBelt
|
9
9
|
module Editor
|
10
|
-
|
11
|
-
|
12
|
-
edit_interactively 'mate'
|
10
|
+
def mate_class(obj)
|
11
|
+
edit_class 'mate', obj
|
13
12
|
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
def vi_class(obj)
|
15
|
+
edit_class 'vi', obj
|
16
|
+
end
|
17
|
+
|
18
|
+
# allows you to create a class interactively bit by bit
|
19
|
+
# and then edit the whole thing within an editor
|
20
|
+
def edit_class(editor, obj)
|
21
|
+
require 'ruby2ruby'
|
22
|
+
unless @file
|
23
|
+
@file = Tempfile.new("irb_tempfile")
|
24
|
+
File.open(@file.path, 'w+') do |f|
|
25
|
+
f.write Ruby2Ruby.translate(obj)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
system("#{editor} #{@file.path}")
|
29
|
+
Object.class_eval(File.read(@file.path).gsub("\r", "\n"))
|
30
|
+
rescue Exception => error
|
31
|
+
puts @file.path
|
32
|
+
puts error
|
18
33
|
end
|
19
34
|
end
|
35
|
+
|
20
36
|
module PrintMethods
|
21
37
|
INSPECTORS = [
|
22
38
|
:public_methods,
|
@@ -39,6 +55,7 @@ module UtilityBelt
|
|
39
55
|
clist.each do |klass|
|
40
56
|
inspector_methods.each do |insmethod|
|
41
57
|
mlist = klass.send(insmethod).sort
|
58
|
+
mlist -= klass.superclass.send(insmethod) if klass.respond_to?(:superclass) && clist.include?(klass.superclass)
|
42
59
|
mlist -= Object.send(insmethod) unless klass == Object
|
43
60
|
mlist -= ['append_features'] # dunno where this method comes from
|
44
61
|
unless mlist.empty?
|
@@ -68,5 +85,8 @@ module UtilityBelt
|
|
68
85
|
end
|
69
86
|
end
|
70
87
|
end
|
71
|
-
Object.
|
72
|
-
|
88
|
+
if Object.const_defined? :IRB
|
89
|
+
Object.send(:extend, UtilityBelt::PrintMethods)
|
90
|
+
self.send(:extend, UtilityBelt::Editor)
|
91
|
+
String.send(:include, UtilityBelt::Inflector) if String.instance_methods.select { |m| m == 'constantize' }.empty?
|
92
|
+
end
|
data/utility_belt.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#require 'rubygems'
|
2
2
|
SPEC = Gem::Specification.new do |s|
|
3
3
|
s.name = "utility_belt"
|
4
|
-
s.version = "1.0.
|
4
|
+
s.version = "1.0.11"
|
5
5
|
s.author = "Giles Bowkett"
|
6
6
|
s.email = "gilesb@gmail.com"
|
7
7
|
s.homepage = "http://utilitybelt.rubyforge.org"
|
@@ -17,6 +17,7 @@ SPEC = Gem::Specification.new do |s|
|
|
17
17
|
s.has_rdoc = true
|
18
18
|
s.extra_rdoc_files = ["README"]
|
19
19
|
s.add_dependency("wirble", ">= 0.1.2")
|
20
|
-
s.add_dependency("aws-s3", ">= 0.
|
20
|
+
s.add_dependency("aws-s3", ">= 0.5.1")
|
21
21
|
s.add_dependency("Platform", ">= 0.4.0")
|
22
|
+
s.add_dependency("ruby2ruby", ">= 1.1.9")
|
22
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: akitaonrails-utility_belt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giles Bowkett
|
@@ -28,7 +28,7 @@ dependencies:
|
|
28
28
|
requirements:
|
29
29
|
- - ">="
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: 0.
|
31
|
+
version: 0.5.1
|
32
32
|
version:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: Platform
|
@@ -39,6 +39,15 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.4.0
|
41
41
|
version:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: ruby2ruby
|
44
|
+
version_requirement:
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.1.9
|
50
|
+
version:
|
42
51
|
description:
|
43
52
|
email: gilesb@gmail.com
|
44
53
|
executables:
|