Sha256: 6f3dad374e1c3a1a407c7ec4ba621cd2a047c60edabbe28d5261e504d2114ec3
Contents?: true
Size: 900 Bytes
Versions: 9
Compression:
Stored size: 900 Bytes
Contents
# frozen_string_literal: true # This class defines settings for output module Light module Services module Settings class Output # Getters attr_reader :name, :default_exists, :default def initialize(name, service_class, opts = {}) @name = name @service_class = service_class @default_exists = opts.key?(:default) @default = opts.delete(:default) define_methods end private def define_methods name = @name @service_class.define_method(@name) { @outputs.get(name) } @service_class.define_method("#{@name}?") { !!@outputs.get(name) } # rubocop:disable Style/DoubleNegation @service_class.define_method("#{@name}=") { |value| @outputs.set(name, value) } @service_class.send(:private, "#{@name}=") end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems