Sha256: 5876e6967597404147231f58f9a0ae727736d746f38f60dbcf5757c568210160
Contents?: true
Size: 1.08 KB
Versions: 2
Compression:
Stored size: 1.08 KB
Contents
module Dry::Initializer::Builders # @private class Initializer require_relative 'signature' require_relative 'attribute' def self.[](config) new(config).call end def call lines.flatten.compact.join("\n") end private def initialize(config) @config = config @definitions = config.definitions.values end def lines [ undef_line, define_line, params_lines, options_lines, end_line ] end def undef_line 'undef :__dry_initializer_initialize__' \ ' if private_method_defined? :__dry_initializer_initialize__' end def define_line "private def __dry_initializer_initialize__(#{Signature[@config]})" end def params_lines @definitions.reject(&:option) .flat_map { |item| Attribute[item] } .map { |line| ' ' << line } end def options_lines @definitions.select(&:option) .flat_map { |item| Attribute[item] } .map { |line| ' ' << line } end def end_line 'end' end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-3.0.4 | lib/dry/initializer/builders/initializer.rb |
dry-initializer-3.0.3 | lib/dry/initializer/builders/initializer.rb |