README in rogerdpack-desc_method-0.1.2 vs README in rogerdpack-desc_method-0.1.3
- old
+ new
@@ -1,26 +1,23 @@
-A "ruby method describer"--this gem allows you to introspect methods while within irb or ruby-debug. It reveals everything conceivably known about that method. This includes source, ri, arity, rdoc comments (on 1.9), etc. etc.
+A "run time RI for ruby methods", this gem allows you to inspect objects' methods while within irb or ruby-debug. It reveals everything known about the method in question. This includes source, ri, arity, rdoc comments (on 1.9), etc. where available
-For me it has proved quite useful, and I wouldn't leave home without it [try it--you might really like it].
+For me it has proved quite useful, and I wouldn't do a ruby-debug session without it--try it--you might really like it.
-Examples:
->>
- class A;
+irb examples:
+>> class A;
def go(a); end;
- end
+ end
>> A.desc_method :go
- # it outputs everything it knows about it...arity, source, RI, etc.
+#<UnboundMethod: A#go> arity: 1
ri for A#go
Nothing known about A
(end ri)
-#<UnboundMethod: A#go> arity: 1
-A#go a
-proc { |a|
+def go(a)
# do nothing
-}
+end
+Parameters: go(a)
-an example in 1.9:
>> File.desc_method :delete
ri for File.delete
----------------------------------------------------------- File::delete
File.delete(file_name, ...) => integer
File.unlink(file_name, ...) => integer
@@ -33,31 +30,61 @@
(end ri)
#<Method: File.delete> arity: -1
appears to be a c method
#parameters signature: delete( [[:rest]] )
+
+Or my favorite, using it in debug sessions:
+(rdb:1) l=
+...
+=> 74 assert(assigns['order'].order_line_items.map(:unit_price).min >= -5)
+...
+(rdb:1) desc_method :assert
+#<Method: StoreControllerTest(Test::Unit::Assertions)#assert> arity: -2
+ri for Test::Unit::Assertions#assert
+------------------------------------------ Test::Unit::Assertions#assert
+ assert(boolean, message=nil)
+
+ From gem test-unit-2.0.1
+------------------------------------------------------------------------
+ Asserts that +boolean+ is not false or nil.
+
+ Example:
+
+ assert [1, 2].include?(5)
+
+(end ri)
+def assert(boolean, message = nil)
+ _wrap_assertion do
+ assert_block("assert should not be called with a block.") do
+ (not block_given?)
+ end
+ assert_block(build_message(message, "<?> is not true.", boolean)) { boolean }
+ end
+end
+Parameters: assert(boolean, message = nil)
+
========= Installation/usage:=====
Installation:
$ gem install rogerdpack-desc_method
Usage:
>> require 'desc_method'
>> Class.desc_method :method_name # class or instance method name
...
>> instance.desc_method :instance_method_name
...
-other goodies also included:
-Class.desc_class method # outputs descriptive information about that class--ex:
+Other goodies also included:
+Class#desc_class
>> Object.desc_class
-# outputs RI, methods, etc.
-or
+# outputs descriptive info about that class--RI, methods, etc.
>> Object.desc_class :verbose => true
# outputs RI, method lists including inherited methods, ancestors, constants
-Kernel#method is monkey patched to output a "separator" between its inherited and non inherited methods--i.e.
->> method
-=> [:first, :second, :after_this_are_inherited>>>>>, :some_inherited_method, :another_inherited_method] # adds in the separator
+Kernel#methods is also monkey patched to output a "separator" between its inherited and non inherited methods--i.e.
+>> instance.methods
+=> [:first, :second, :after_this_are_inherited>>>>>, :some_inherited_method, :another_inherited_method] # adds in that separator
-
-This gem wraps (in a very convenient way) functionality provided by Method#source_location, ruby2ruby, etc. Also thanks to manvenu for some original code inspiration, SourceRef (MBARI), and ruby-debug, who made this possible. Thanks guys!
+=== Thanks ===
+This gem wraps functionality of Method#source_location, ruby2ruby, et al, and also some from manvenu, SourceRef (MBARI), and also would not be useful without ruby-debug and all the core guys. Thank you.
Comments/suggestions welcome rogerdpack on gmail or github