class Dry::Initializer::Builders::Reader
@private
Public Class Methods
[](definition)
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 8 def self.[](definition) new(definition).call end
new(definition)
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 18 def initialize(definition) @target = definition.target @ivar = definition.ivar @null = definition.null @reader = definition.reader end
Public Instance Methods
call()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 12 def call lines.flatten.compact.join("\n") end
Private Instance Methods
attribute_line()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 35 def attribute_line return unless @reader "attr_reader :#{@target}" unless @null end
lines()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 25 def lines [undef_line, attribute_line, method_lines, type_line] end
method_lines()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 41 def method_lines return unless @reader return unless @null [ "def #{@target}", " #{@ivar} unless Dry::Initializer::UNDEFINED == #{@ivar}", "end" ] end
type_line()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 52 def type_line "#{@reader} :#{@target}" if %i[private protected].include? @reader end
undef_line()
click to toggle source
# File lib/dry/initializer/builders/reader.rb, line 29 def undef_line "undef :#{@target} if method_defined?(:#{@target})" \ " || private_method_defined?(:#{@target})" \ " || protected_method_defined?(:#{@target})" end