Sha256: 5bdb7ea504b3ce0b1fda00e1544544db0dc04ad18d560281b8fcf20fca8b1e24

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

class CmdletBuilder < KDirector::Builders::ActionsBuilder
  attr_reader :current_helper
  # attr_accessor :actions
  # attr_accessor :last_action

  def initialize
    super

    dom[:helpers] = []
    dom[:categories] = []
    # @actions = []
    # @last_action = {}
  end

  def category(name, description)
    dom[:categories] << {
      name: name,
      description: description,
    }
  end

  def helpers
    dom[:helpers]
  end

  def add_helper
    @current_helper = new_helper
    dom[:helpers] << current_helper
  end

  def helper_setting(name, value)
    @current_helper[name] = value
  end

  def add_helper_parameter(name, description, splat: false)
    parameter = {
      name: name,
      description: description,
      splat: splat
    }

    @current_helper[:parameters] << parameter
  end

  def add_helper_example(value)
    lines = value.split("\n")
    value = lines.map { |line| "        # #{line.strip}" }.join("\n")

    @current_helper[:examples] << value
  end


  private

  def new_helper
    {
      name: nil,
      description: nil,
      result: nil,
      category: nil,
      category_description: nil,
      base_class_require: nil,
      base_class: nil,
      example_input_value: nil,
      example_output_value: nil,
      test_input_value: nil,
      test_output_value: nil,
      parameters: [],
      examples: []
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cmdlet-0.0.7 .builders/director/cmdlet_builder.rb