Sha256: 66909d991d61727a9fe7859cf3b5faf4467e9445a3ef4fd04f7a5d6755e592c6

Contents?: true

Size: 1.83 KB

Versions: 22

Compression:

Stored size: 1.83 KB

Contents

# frozen_string_literal: true

require_relative 'ledger/generator'

module Docs
  module Reference
    class Generator < Docs::Generator
      def generate
        ledgers.each do |ledger|
          Ledger::Generator.new(ledger: ledger).generate
        end

        generate_indexes
        generate_layouts
        update_nav
      end

      private

      def generate_indexes
        ledgers.each do |client|
          Docs::Template.new(
            data: {
              client: client.client_class
            },
            destination_path: docs_path(:reference, client.root_key, :resources, 'index.md'),
            template_path: template_path(
              :reference,
              :resources,
              :index
            )
          ).write
        end
      end

      def generate_layouts
        ledgers.each do |ledger|
          Docs::Template.new(
            data: {
              client: ledger
            },
            destination_path: docs_path(:_layouts, "reference_#{ledger.root_key}.html"),
            template_path: template_path(
              :_layouts,
              :reference_ledger,
              format: :html
            )
          ).write
        end
      end

      def update_nav
        config_path = docs_path('_config.yml')
        config = YAML.load_file(config_path)
        nav_links = config['header']['nav_links']
        nav_links.map do |nav_link|
          if nav_link['label'] == 'Reference'
            nav_link['subnav_links'] = ledgers.map do |ledger|
              {
                'label' => ledger.name,
                'url' => "reference/#{ledger.root_key}",
                'type' => 'link'
              }
            end
          else
            nav_link
          end
        end

        File.open(config_path, 'w') do |h|
          h.write config.to_yaml
        end
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

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