Module: RubyNPM::Options

Defined in:
lib/ruby_npm/options/definitions.rb,
lib/ruby_npm/options.rb,
lib/ruby_npm/options/name.rb,
lib/ruby_npm/options/sets.rb,
lib/ruby_npm/options/types.rb,
lib/ruby_npm/options/values.rb,
lib/ruby_npm/options/factory.rb,
lib/ruby_npm/options/types/flag.rb,
lib/ruby_npm/options/values/base.rb,
lib/ruby_npm/options/values/string.rb,
lib/ruby_npm/options/types/standard.rb,
lib/ruby_npm/options/values/boolean.rb,
lib/ruby_npm/options/values/complex.rb,
lib/ruby_npm/options/values/key_value.rb,
lib/ruby_npm/options/definitions/generic.rb,
lib/ruby_npm/options/definitions/workspaces.rb

Overview

rubocop:disable Metrics/ModuleLength

Defined Under Namespace

Modules: Definitions, Sets, Types, Values Classes: Factory, Name

Constant Summary collapse

WORKSPACE_DEFINITIONS =
[
  workspaces,
  definition(
    name: '--workspace',
    option_type: :standard,
    value_type: :string
  ),
  definition(
    name: '--include-workspace-root',
    option_type: :standard,
    value_type: :boolean
  )
].freeze
LOGGING_DEFINITIONS =
[
  # string options
  %w[
    --loglevel
    --logs-dir
    --logs-max
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :string
    )
  end,

  # flag options
  %w[
    --quiet
    --silent
    --verbose
  ].map do |o|
    definition(name: o, option_type: :flag, value_type: :boolean)
  end
].flatten.freeze
GLOBAL_DEFINITIONS =
[
  # string options
  %w[
    --color
    --script-shell
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :string
    )
  end,

  # boolean options
  %w[
    --dry-run
    --force
    --foreground-scripts
    --ignore-scripts
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :boolean
    )
  end
].flatten.freeze
DEPENDENCY_DEFINITIONS =
[
  # string options
  %w[
    --save-prefix
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :string
    )
  end,

  # string repeatable options
  {
    omit: '--omit',
    include: '--include'
  }.map do |key, name|
    definition(
      name:, option_type: :standard, value_type: :string,
      repeatable: true,
      override_keys: { singular: false, plural: key }
    )
  end,

  # boolean options
  %w[
    --save
    --save-bundle
    --save-dev
    --save-exact
    --save-optional
    --save-peer
    --save-prod
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :boolean
    )
  end
].flatten.freeze
OUTPUT_DEFINITIONS =
[
  # boolean options
  %w[
    --json
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :boolean
    )
  end
].flatten.freeze
OTHER_DEFINITIONS =
[
  # string options
  %w[
    --access
    --install-strategy
    --otp
    --tag
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :string
    )
  end,

  # boolean options
  %w[
    --audit
    --bin-links
    --fund
    --global
    --global-style
    --if-present
    --install-links
    --legacy-bundling
    --package-lock
    --package-lock-only
    --parseable
    --strict-peer-deps
  ].map do |o|
    definition(
      name: o, option_type: :standard, value_type: :boolean
    )
  end
].flatten.freeze
DEFINITIONS =
(
  WORKSPACE_DEFINITIONS +
    LOGGING_DEFINITIONS +
    GLOBAL_DEFINITIONS +
    DEPENDENCY_DEFINITIONS +
    OUTPUT_DEFINITIONS +
    OTHER_DEFINITIONS
)

Class Method Summary collapse

Class Method Details

.definition(opts) ⇒ Object



17
18
19
# File 'lib/ruby_npm/options.rb', line 17

def self.definition(opts)
  Definitions::Generic.new(opts)
end

.name(name) ⇒ Object



13
14
15
# File 'lib/ruby_npm/options.rb', line 13

def self.name(name)
  Name.new(name)
end

.typesObject



25
26
27
# File 'lib/ruby_npm/options.rb', line 25

def self.types
  Types
end

.valuesObject



29
30
31
# File 'lib/ruby_npm/options.rb', line 29

def self.values
  Values
end

.workspacesObject



21
22
23
# File 'lib/ruby_npm/options.rb', line 21

def self.workspaces
  Definitions::Workspaces.new
end