Sha256: ce66364bf7dbc6aa635a9fdd40fbcf4cf83b6ebbc6ab2d6c2387098835f169ad

Contents?: true

Size: 722 Bytes

Versions: 12

Compression:

Stored size: 722 Bytes

Contents

# frozen_string_literal: true

module PUNK
  class Runnable < Settings
    include Validatable

    def self.args(*args)
      PUNK.store.runnable ||= {}
      return PUNK.store.runnable[name] if PUNK.store.runnable.key?(name)
      PUNK.store.runnable[name] = args
    end

    def method_missing(key, *args, &block)
      val = super
      val = val.to_h if val.instance_of?(self.class)
      val
    end

    def respond_to_missing?(key, *args) # rubocop:disable Lint/UselessMethodDefinition
      super
    end

    private

    def _init_runnable(kwargs)
      args = self.class.args || []
      load(args.zip(Array.new(args.length, nil)).to_h)
      load(kwargs.select { |k, _| args.include?(k) })
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
punk-0.4.1 lib/punk/framework/runnable.rb
punk-0.3.6 lib/punk/framework/runnable.rb
punk-0.3.5 lib/punk/framework/runnable.rb
punk-0.3.4 lib/punk/framework/runnable.rb
punk-0.3.3 lib/punk/framework/runnable.rb
punk-0.3.2 lib/punk/framework/runnable.rb
punk-0.3.1 lib/punk/framework/runnable.rb
punk-0.2.0 lib/punk/framework/runnable.rb
punk-0.1.4 lib/punk/framework/runnable.rb
punk-0.1.3 lib/punk/framework/runnable.rb
punk-0.1.2 lib/punk/framework/runnable.rb
punk-0.1.0 lib/punk/framework/runnable.rb