Sha256: b94d4b51637f7f69e6ae52588755ed383ed4f14109180dee952059c1e87893cf
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true module Dry module Initializer module 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 { Attribute[_1] }.map { " #{_1}" } end def options_lines @definitions.select(&:option).flat_map { Attribute[_1] }.map { " #{_1}" } end def end_line "end" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-3.2.0 | lib/dry/initializer/builders/initializer.rb |
dry-initializer-3.1.1 | lib/dry/initializer/builders/initializer.rb |