Sha256: cd6ff989ae6fb927247fdf4548e1e3eba49afec5918661c85e001f11181935df
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module RuboCop module Schema module Helpers def self.templates @templates ||= {} end def deep_dup(obj) case obj when String obj.dup when Hash obj.transform_values &method(:deep_dup) when Array obj.map &method(:deep_dup) else obj end end def deep_merge(old, new, &block) return old if old.class != new.class case old when Hash old.merge(new.map { |k, v| [k, old.key?(k) ? deep_merge(old[k], v, &block) : v] }.to_h) .tap { |merged| yield merged if block_given? } when Array old | new else old end end def boolean { 'type' => 'boolean' } end def template(name) deep_dup(Helpers.templates[name] ||= YAML.load_file(ROOT.join('assets', 'templates', "#{name}.yml")).freeze) end # Used for stripping HTML from Asciidoctor output, where raw output is not available, or not # appropriate to use. # TODO: look into the Asciidoctor for a way to do a non-HTML conversion def strip_html(str) Nokogiri::HTML(str).text end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-schema-gen-0.1.1 | lib/rubocop/schema/helpers.rb |