diff options
Diffstat (limited to 'web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb')
-rw-r--r-- | web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb b/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb new file mode 100644 index 000000000..4c6d3ca76 --- /dev/null +++ b/web/server/h2o/libh2o/deps/mruby/lib/mruby-core-ext.rb @@ -0,0 +1,79 @@ +class Object + class << self + def attr_block(*syms) + syms.flatten.each do |sym| + class_eval "def #{sym}(&block);block.call(@#{sym}) if block_given?;@#{sym};end" + end + end + end +end + +class String + def relative_path_from(dir) + Pathname.new(File.expand_path(self)).relative_path_from(Pathname.new(File.expand_path(dir))).to_s + end + + def relative_path + relative_path_from(Dir.pwd) + end + + # Compatible with 1.9 on 1.8 + def %(params) + if params.is_a?(Hash) + str = self.clone + params.each do |k, v| + str.gsub!("%{#{k}}") { v } + end + str + else + if params.is_a?(Array) + sprintf(self, *params) + else + sprintf(self, params) + end + end + end +end + +class Symbol + # Compatible with 1.9 on 1.8 + def to_proc + proc { |obj, *args| obj.send(self, *args) } + end +end + +module Enumerable + # Compatible with 1.9 on 1.8 + def each_with_object(memo) + return to_enum :each_with_object, memo unless block_given? + each { |obj| yield obj, memo } + memo + end +end + +$pp_show = true + +if $verbose.nil? + if Rake.respond_to?(:verbose) && !Rake.verbose.nil? + if Rake.verbose.class == TrueClass + # verbose message logging + $pp_show = false + else + $pp_show = true + Rake.verbose(false) + end + else + # could not identify rake version + $pp_show = false + end +else + $pp_show = false if $verbose +end + +def _pp(cmd, src, tgt=nil, options={}) + return unless $pp_show + + width = 5 + template = options[:indent] ? "%#{width*options[:indent]}s %s %s" : "%-#{width}s %s %s" + puts template % [cmd, src, tgt ? "-> #{tgt}" : nil] +end |