Sha256: 310df8c400785a0f2c2e33aa4161d8f16894157d37780f202c065e75c498e4c9

Contents?: true

Size: 793 Bytes

Versions: 4

Compression:

Stored size: 793 Bytes

Contents

# frozen_string_literal: true
require_relative "./config"
require_relative "./yaml_load"

module Yamls
  class Parameters
    def initialize(
      params,
      model: nil,
      action: nil,
      required: nil,
      nested: [],
      filepath: "#{Rails.root}/#{Yamls::FILEPATH}"
    )
      @params   = params
      @required = required || model
      @nested   = [model, action].push(*nested).compact.map(&:to_s)
      @filepath = filepath
    end

    def permit
      return params.permit(columns) if required.nil?

      params.require(required).permit(columns)
    end

    private

    attr_reader :params, :filepath, :required, :nested

    def yaml_loader
      @yaml_loader ||= YamlLoad.new(filepath)
    end

    def columns
      yaml_loader.load.dig(*nested)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yamls-0.1.4 lib/yamls/parameters.rb
yamls-0.1.3 lib/yamls/parameters.rb
yamls-0.1.2 lib/yamls/parameters.rb
yamls-0.1.1 lib/yamls/parameters.rb