Sha256: ce245575037ffe721b6060d0af0245a6fb0b13dbd8de808f7935949d25b393b7

Contents?: true

Size: 1.75 KB

Versions: 19

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require 'yaml'

module Docs
  module Reference
    module Ledger
      class Generator < Docs::Generator
        attr_reader :ledger

        def initialize(args = {})
          @ledger = args.fetch(:ledger)

          super
        end

        def client_class
          @client_class ||= ledger.client_class
        end

        def generate
          yellow "Generating Reference for #{key}"
          remove_current_directory
          copy_template_directory
          generate_resource_files
          green "Generated Reference for #{key}"
        end

        def key
          @key ||= ledger.root_key
        end

        def resources
          @resources ||= client_class.resources.to_a.sort
        end

        private

        def copy_template_directory
          cp(docs_path(:_includes, :reference, key), docs_path(:reference))
        end

        def remove_current_directory
          rm(docs_path(:reference, key))
        end

        def generate_resource_files
          FileUtils.mkdir(docs_path(:reference, key, :resources))

          template_path = Generator.template_path(:reference, :resources, :resource)
          count = 1
          resources.each do |resource_key, resource|
            destination_path = Generator.destination_path(
              :reference,
              ledger.root_key,
              :resources,
              resource_key
            )

            Docs::Template.new(
              data: {
                resource: resource,
                client: client_class,
                weight: count
              },
              destination_path: destination_path,
              template_path: template_path
            ).write

            count += 1
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ledger_sync-3.0.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.6.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.5.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.4.4 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.3.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.2.3 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.2.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.2.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.0.2 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.0.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.0.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-2.0.0.pre.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.8.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.8.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.7.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.6.0 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.5.2 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.5.1 documentation/generators/reference/ledger/generator.rb
ledger_sync-1.5.0 documentation/generators/reference/ledger/generator.rb