Module: Kernel
- Defined in:
- lib/open_classes/kernel.rb,
lib/test_toolbox/kernel.rb
Overview
Kernel
Instance Method Summary collapse
-
#bulk_define_methods(classes, methods, constants) ⇒ Object
define methods to classes.
-
#bulk_puts_eval(binding, codes) ⇒ Object
Puts each-line-code + eval result.
-
#capture_stdout ⇒ Object
capture STDOUT.
-
#dp_line(line, options = { filename: '', char: '-' }) ⇒ Object
debug print line for print-debugging.
-
#print_eval(code, binding) ⇒ Object
Print code + eval result.
-
#puts_eval(code, binding) ⇒ Object
Puts code + eval result.
Instance Method Details
#bulk_define_methods(classes, methods, constants) ⇒ Object
define methods to classes. methods have simple return value.
bulk_define_methods [NilClass, FalseClass], :blank?, true
bulk_define_methods [TrueClass, Numeric], "blank?", false
puts nil.blank? # => true
puts false.blank? # => true
puts true.blank? # => false
puts 1.blank? # => false
bulk_define_methods [NilClass, FalseClass], [:blank?, :present?], [true, false]
bulk_define_methods [TrueClass, Numeric], [:blank?, :present?], [false, true]
puts nil.blank? # => true
puts nil.present? # => false
puts false.blank? # => true
puts false.present? # => false
puts true.blank? # => false
puts true.present? # => true
puts 1.blank? # => false
puts 1.present? # => true
bulk_define_methods NilClass, :blank?, true is same as following code
class NilClass
def blank?
true
end
end
66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/open_classes/kernel.rb', line 66 def bulk_define_methods(classes, methods, constants) validate_bulk_define_classes!(classes) validate_bulk_define_methods!(methods) size = get_classes_size(classes) tmp_classes = fill_same_values(classes, size) tmp_methods = fill_same_values(methods, size) tmp_constants = fill_same_values(constants, size) tmp_classes.each do |klass| define_method_constants(klass, tmp_methods, tmp_constants) end end |
#bulk_puts_eval(binding, codes) ⇒ Object
Puts each-line-code + eval result
code
= 'msg'
puts_eval binding, "\"hoge-\#{message}1\"\n\"hoge-\#{message}2\"\n"
result
"hoge-#{message}1" # => "hoge-msg1"\n
"hoge-#{message}2" # => "hoge-msg2"\n
33 34 35 |
# File 'lib/open_classes/kernel.rb', line 33 def bulk_puts_eval(binding, codes) codes.each_line { |code|puts_eval(code.chop, binding) } end |
#capture_stdout ⇒ Object
capture STDOUT
capture print
print capture_stdout { print "hoge" } # => hoge
if block have no STDOUT, capture_stdout returns empty.
print capture_stdout { }.empty? # => true
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/test_toolbox/kernel.rb', line 13 def capture_stdout begin $stdout = StringIO.new yield result = $stdout.string ensure $stdout = STDOUT end result end |
#dp_line(line, options = { filename: '', char: '-' }) ⇒ Object
debug print line for print-debugging
debug print default
dp_line __LINE__
# yy = call line no
# => --------------------|filename=|line=yy|--------------------
debug print with filename
dp_line __LINE__, filename: __FILE__
# xx = filename, yy = call line no
# => --------------------|filename=xx|line=yy|--------------------
debug print with no filename, specific char
dp_line __LINE__, char: '@'
# xx = filename, yy = call line no
# => @@@@@@@@@@@@@@@@@@@@|filename=|line=yy|@@@@@@@@@@@@@@@@@@@@
41 42 43 44 45 |
# File 'lib/test_toolbox/kernel.rb', line 41 def dp_line(line, = { filename: '', char: '-' }) filename = [:filename].nil? ? '' : [:filename] char = [:char].nil? ? '-' : [:char] puts "#{char * 20}|filename=#{filename}|line=#{line}|#{char * 20}" end |
#print_eval(code, binding) ⇒ Object
Print code + eval result
print_eval 8/4, binding # => 8/4 # => 2
= 'msg';print_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg"
9 10 11 |
# File 'lib/open_classes/kernel.rb', line 9 def print_eval(code, binding) print exec_eval code, binding end |
#puts_eval(code, binding) ⇒ Object
Puts code + eval result
puts_eval 8/4, binding # => 8/4 # => 2\n
= 'msg';puts_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg"\n
17 18 19 |
# File 'lib/open_classes/kernel.rb', line 17 def puts_eval(code, binding) puts exec_eval code, binding end |