class RuboCop::Schema::DocumentLoader
Constants
- CORRECTIONS
- DEFAULTS_URL_TEMPLATE
- DOCS_URL_TEMPLATE
Public Class Methods
new(http_client)
click to toggle source
@param [CachedHTTPClient] http_client
# File lib/rubocop/schema/document_loader.rb, line 20 def initialize(http_client) @http_client = http_client @docs = {} @defaults = {} end
Public Instance Methods
defaults(spec)
click to toggle source
@param [Spec] spec
# File lib/rubocop/schema/document_loader.rb, line 27 def defaults(spec) @defaults[spec] ||= YAML.safe_load @http_client.get(url_for_defaults(spec)), [Regexp, Symbol] end
doc(spec, department = nil)
click to toggle source
@param [Spec] spec @param [String] department @return [Asciidoctor::Document]
# File lib/rubocop/schema/document_loader.rb, line 35 def doc(spec, department = nil) @docs[[spec, department]] ||= Asciidoctor.load @http_client.get url_for_doc(spec, department) end
Private Instance Methods
correct_version(spec)
click to toggle source
# File lib/rubocop/schema/document_loader.rb, line 50 def correct_version(spec) CORRECTIONS.dig(spec.name, spec.version) || "v#{spec.version}" end
url_for_defaults(spec)
click to toggle source
# File lib/rubocop/schema/document_loader.rb, line 46 def url_for_defaults(spec) format DEFAULTS_URL_TEMPLATE, spec.name, correct_version(spec) end
url_for_doc(spec, department)
click to toggle source
# File lib/rubocop/schema/document_loader.rb, line 42 def url_for_doc(spec, department) format DOCS_URL_TEMPLATE, spec.name, correct_version(spec), department && "_#{department.to_s.downcase}" end