Sha256: 3326d8795d2646c797825a3e3fb6ba32b5df6416ec0b7448c923a78698f30841

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

require 'active_support'
require 'active_support/core_ext/string/inflections'

require_relative 'parameters'

module RakeFactory
  module Defaults
    include Parameters

    def inherited(inheritor)
      super(inheritor)
      inheritor.class_eval do
        parameter(:name,
            configurable: false,
            transform: lambda { |n| n.to_sym })
        parameter(:argument_names,
            configurable: false,
            default: [])
        parameter(:prerequisites,
            configurable: false,
            default: [])
        parameter(:order_only_prerequisites,
            configurable: false,
            default: [])
        parameter(:description,
            configurable: false)

        unless inheritor.name.nil?
          default_name inheritor.name.demodulize.underscore
        end
      end
    end

    def default_name(name)
      parameter_set.update_default_for(:name, name)
    end

    def default_argument_names(argument_names)
      parameter_set.update_default_for(:argument_names, argument_names)
    end

    def default_prerequisites(prerequisites)
      parameter_set.update_default_for(:prerequisites, prerequisites)
    end

    def default_order_only_prerequisites(order_only_prerequisites)
      parameter_set
          .update_default_for(
              :order_only_prerequisites, order_only_prerequisites)
    end

    def default_description(description)
      parameter_set.update_default_for(:description, description)
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
rake_factory-0.4.0 lib/rake_factory/defaults.rb
rake_factory-0.3.0 lib/rake_factory/defaults.rb
rake_factory-0.2.0 lib/rake_factory/defaults.rb
rake_factory-0.1.0 lib/rake_factory/defaults.rb
rake_factory-0.0.1 lib/rake_factory/defaults.rb
rake_tasklib-0.0.1 lib/rake_factory/defaults.rb