module AsciiPress
Constants
- DEFAULT_SLUG_RULES
- VERSION
Public Class Methods
logger()
click to toggle source
A default STDOUT logger
# File lib/ascii_press.rb, line 18 def self.logger @logger || Logger.new(STDOUT) end
logger=(new_logger)
click to toggle source
For setting the default logger
# File lib/ascii_press.rb, line 13 def self.logger=(new_logger) @logger = new_logger end
slug_valid?(slug, rules = DEFAULT_SLUG_RULES)
click to toggle source
# File lib/ascii_press.rb, line 257 def self.slug_valid?(slug, rules = DEFAULT_SLUG_RULES) slug && rules.values.all? {|rule| rule.call(slug) } end
verify_adoc_slugs!(adoc_paths, rules = DEFAULT_SLUG_RULES)
click to toggle source
# File lib/ascii_press.rb, line 269 def self.verify_adoc_slugs!(adoc_paths, rules = DEFAULT_SLUG_RULES) data = adoc_paths.map do |path| doc = Asciidoctor.load(File.read(path)) slug = doc.attributes['slug'] if !slug_valid?(slug, rules) violations = violated_slug_rules(slug, rules) [path, slug, violations] end end.compact if data.size > 0 require 'colorize' data.each do |path, slug, violations| puts 'WARNING!!'.red puts "The document #{path.light_blue} has the slug #{slug.inspect.light_blue} which in invalid because:" violations.each do |violation| puts " - #{violation.yellow}" end end raise 'Invalid slugs. Cannot continue' end end
violated_slug_rules(slug, rules = DEFAULT_SLUG_RULES)
click to toggle source
# File lib/ascii_press.rb, line 261 def self.violated_slug_rules(slug, rules = DEFAULT_SLUG_RULES) return ['No slug'] if slug.nil? rules.reject do |desc, rule| rule.call(slug) end.map(&:first) end