Sha256: 4bf39f6e208b289fbbe46811ac1527c417191d5aafdabc6f4fbae6af131d62e5

Contents?: true

Size: 1.12 KB

Versions: 10

Compression:

Stored size: 1.12 KB

Contents

require "yard"

module Lookbook
  class Parser
    attr_reader :registry_path
    def initialize(paths, registry_path)
      @paths = paths.map { |p| "#{p}/**/*preview.rb" }
      @registry_path = registry_path.to_s
      YARD::Registry.yardoc_file = registry_path
    end

    def parse
      YARD::Registry.clear
      YARD::Registry.lock_for_writing do
        YARD.parse(@paths)
        YARD::Registry.save(false, registry_path)
      end
    end

    def get_code_object(path)
      registry = YARD::RegistryStore.new
      registry.load!(registry_path)
      registry.get(path)
    end

    class << self
      def define_tags(custom = {})
        YARD::Tags::Library.define_tag("Hidden status", :hidden)
        YARD::Tags::Library.define_tag("Label", :label)
        YARD::Tags::Library.define_tag("Display", :display)
        YARD::Tags::Library.define_tag("Position", :position)
        YARD::Tags::Library.define_tag("ID", :id)
        YARD::Tags::Library.define_tag("Component", :component)
        custom.each do |name, opts|
          YARD::Tags::Library.define_tag(name.to_s.titleize, name)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lookbook-1.0.4 lib/lookbook/parser.rb
lookbook-1.0.3 lib/lookbook/parser.rb
lookbook-1.0.2 lib/lookbook/parser.rb
lookbook-1.0.1 lib/lookbook/parser.rb
lookbook-1.0.0 lib/lookbook/parser.rb
lookbook-1.0.0.rc.3 lib/lookbook/parser.rb
lookbook-1.0.0.rc.2 lib/lookbook/parser.rb
lookbook-1.0.0.rc.1 lib/lookbook/parser.rb
lookbook-1.0.0.beta.8 lib/lookbook/parser.rb
lookbook-1.0.0.beta.7 lib/lookbook/parser.rb