Sha256: 9dcb9ee9c3b986d4e7f89b61eb84f34996d737218c954882b8dad77cd437e196

Contents?: true

Size: 1.44 KB

Versions: 26

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

require_relative 'utilities'

module Lino
  module Options
    include Lino::Utilities

    def with_option(
      option,
      value,
      separator: nil,
      quoting: nil,
      placement: nil
    )
      return self if nil?(value)

      with(options: @options.add(
        {
          components: [option, value],
          separator: separator,
          quoting: quoting,
          placement: placement
        }
      ))
    end

    def with_options(options)
      return self if nil_or_empty?(options)

      options.entries.inject(self) do |s, entry|
        s.with_option(
          or_nth(entry, :option, 0),
          or_nth(entry, :value, 1),
          separator: or_nil(entry, :separator),
          quoting: or_nil(entry, :quoting),
          placement: or_nil(entry, :placement)
        )
      end
    end

    def with_repeated_option(
      option,
      values,
      separator: nil,
      quoting: nil,
      placement: nil
    )
      values.inject(self) do |s, value|
        s.with_option(
          option,
          value,
          separator: separator,
          quoting: quoting,
          placement: placement
        )
      end
    end

    def with_flag(flag)
      return self if nil?(flag)

      with(options: @options.add({ components: [flag] }))
    end

    def with_flags(flags)
      return self if nil_or_empty?(flags)

      flags.inject(self) { |s, flag| s.with_flag(flag) }
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
lino-3.2.0.pre.5 lib/lino/options.rb
lino-3.2.0.pre.4 lib/lino/options.rb
lino-3.2.0.pre.3 lib/lino/options.rb
lino-3.2.0.pre.2 lib/lino/options.rb
lino-3.2.0.pre.1 lib/lino/options.rb
lino-3.1.0 lib/lino/options.rb
lino-3.1.0.pre.18 lib/lino/options.rb
lino-3.1.0.pre.17 lib/lino/options.rb
lino-3.1.0.pre.16 lib/lino/options.rb
lino-3.1.0.pre.15 lib/lino/options.rb
lino-3.1.0.pre.14 lib/lino/options.rb
lino-3.1.0.pre.13 lib/lino/options.rb
lino-3.1.0.pre.12 lib/lino/options.rb
lino-3.1.0.pre.11 lib/lino/options.rb
lino-3.1.0.pre.10 lib/lino/options.rb
lino-3.1.0.pre.9 lib/lino/options.rb
lino-3.1.0.pre.8 lib/lino/options.rb
lino-3.1.0.pre.7 lib/lino/options.rb
lino-3.1.0.pre.6 lib/lino/options.rb
lino-3.1.0.pre.5 lib/lino/options.rb