Sha256: 3d775817cb9a504f11de498474b62da4528bc7a410af6e5b98c1a949065ef2e2

Contents?: true

Size: 802 Bytes

Versions: 2

Compression:

Stored size: 802 Bytes

Contents


module Antrapol
  module ToolRack
    module BlockParamsUtils
      include ConditionUtils

      def value_from_block(blockKey, defValue, opts = { }, &block)
        if block
          blockParams = nil
          if not_empty?(opts)
            blockParams = opts[:blockArgs]
          end

          value = nil
          if blockParams.nil?
            value = block.call(blockKey)
            value = defValue if is_empty?(value) 
          else
            value = block.call(blockKey, *blockParams)
            value = defValue if is_empty?(value)
          end

          value
        else
          defValue
        end
      end


      def self.included(klass)
        klass.class_eval <<-END
          extend Antrapol::ToolRack::BlockParamsUtils
        END
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
toolrack-0.18.1 lib/toolrack/block_params_utils.rb
toolrack-0.18.0 lib/toolrack/block_params_utils.rb