Sha256: e17a0a64c70e50f24a850104b0fd56afc486aeb6d954d410fdb7a511aaa749fa

Contents?: true

Size: 494 Bytes

Versions: 3

Compression:

Stored size: 494 Bytes

Contents

require "uber/callable"

module Uber
  class Option
    def self.[](value, options={}) # TODO: instance_exec: true
      if value.is_a?(Proc)
        return ->(context, *args) { context.instance_exec(*args, &value) } if options[:instance_exec]
        return value
      end

      return value                                            if value.is_a?(Uber::Callable)
      return ->(context, *args){ context.send(value, *args) } if value.is_a?(Symbol)
      ->(*) { value }
    end
  end
end

Version data entries

3 entries across 3 versions & 3 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/uber-0.1.0/lib/uber/option.rb
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/uber-0.1.0/lib/uber/option.rb
uber-0.1.0 lib/uber/option.rb