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'