lib/open_classes/kernel.rb in tbpgr_utils-0.0.39 vs lib/open_classes/kernel.rb in tbpgr_utils-0.0.40

- old
+ new

@@ -1,114 +1,5 @@ # encoding: utf-8 -# Kernel -module Kernel - # Print code + eval result - # - # print_eval 8/4, binding # => 8/4 # => 2 - # message = 'msg';print_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg" - def print_eval(code, binding) - print exec_eval code, binding - end - - # Puts code + eval result - # - # puts_eval 8/4, binding # => 8/4 # => 2\n - # message = 'msg';puts_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg"\n - def puts_eval(code, binding) - puts exec_eval code, binding - end - - # Puts each-line-code + eval result - # - # code - # message = 'msg' - # puts_eval binding, <<-EOS - # "hoge-#{message}1" - # "hoge-#{message}2" - # EOS - # - # result - # "hoge-#{message}1" # => "hoge-msg1"\n - # "hoge-#{message}2" # => "hoge-msg2"\n - def bulk_puts_eval(binding, codes) - codes.each_line { |code|puts_eval(code.chop, binding) } - end - - # 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 - 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 - - private - def get_classes_size(classes) - size = classes.is_a?(Array) ? classes.size : 1 - end - - def fill_same_values(ary, size) - return ary if ary.is_a?(Array) - tmp = [] - size.times { tmp << ary } - tmp - end - - def validate_bulk_define_classes!(classes) - return if classes.class.any_of?(Array, Class) - fail TypeError, "invalid type #{a.class}. you have to use Array or Class or String or Symbol" - end - - def validate_bulk_define_methods!(methods) - return if methods.class.any_of?(Array, String, Symbol) - fail TypeError, "invalid type #{a.class}. you have to use Array or Class or String or Symbol" - end - - def define_method_constants(klass, methods, constants) - methods.each_with_index do |m, i| - klass.class_eval do - define_method m do |*args| - constants[i] - end - end - end - end - - def exec_eval(code, binding) - ret = eval code, binding - "#{code} # => #{ret.inspect}" - end -end +require 'open_classes/kernel/p_evals' +require 'open_classes/kernel/bulk_define_methods' +require 'open_classes/kernel/aa_ancestors'