Sha256: 4bc2bfd43b52b28c74bab4d946720fba85da9fbe8ddba22d057ce4517b2ad9db

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

module Pione
  module Util
    module PackageParametersList
      class << self
        # Print parameter list of the package.
        #
        # @param package [Package::Package]
        #   package
        def print(env, package_id)
          definition = env.package_get(Lang::PackageExpr.new(package_id: package_id))
          params = definition.param_definition.values
          if params.size > 0
            group = params.group_by {|param| param.type}
            print_params_by_block("Basic Parameters", group[:basic]) if group[:basic]
            print_params_by_block("Advanced Parameters", group[:advanced]) if group[:advanced]
          else
            puts "there are no user parameters in %s" % env.current_package_id
          end
        end

        private

        # Print parameters by block.
        def print_params_by_block(header, target_params)
          unless target_params.empty?
            puts "%s:" % header
            target_params.each do |param|
              puts "  %s := %s" % [param.name, param.value.textize]
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pione-0.3.2 lib/pione/util/package-parameters-list.rb
pione-0.3.1 lib/pione/util/package-parameters-list.rb
pione-0.3.0 lib/pione/util/package-parameters-list.rb