Sha256: acb4b09bf86ff8885b69493ea9e8e6c29b0cdb0066f79f0966a076298c69d478
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module Lite module Command module Internals module Context def self.included(base) base.extend ClassMethods end module ClassMethods def attribute(*args, **options) args.each do |method_name| attribute = Lite::Command::Attribute.new(method_name, options) attributes[method_name] = attribute define_method(method_name) do ivar = :"@#{method_name}" return instance_variable_get(ivar) if instance_variable_defined?(ivar) instance_variable_set(ivar, attribute.value) end end end def attributes @attributes ||= {} end end private def validate_context_attributes validator = Lite::Command::AttributeValidator.new(self) return if validator.valid? invalid!("Invalid context attributes", validator.errors) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lite-command-2.1.3 | lib/lite/command/internals/context.rb |
lite-command-2.1.2 | lib/lite/command/internals/context.rb |
lite-command-2.1.1 | lib/lite/command/internals/context.rb |