Sha256: cd81ad05bfbe23985532a47d9a99c14f0d25b4e9e028ee2bfbf4cec8753b1f59

Contents?: true

Size: 823 Bytes

Versions: 2

Compression:

Stored size: 823 Bytes

Contents

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

module Yamls
  class Parameters
    def initialize(
      params,
      model: nil,
      action: nil,
      required: model || action,
      nested: [],
      filepath: "#{Rails.root}/#{Helpers::FILEPATH}"
    )
      @params   = params
      @required = required
      @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 ||= Helpers::YamlLoad.new(filepath)
    end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yamls-0.2.2 lib/yamls/parameters.rb
yamls-0.2.1 lib/yamls/parameters.rb