Sha256: 327b1b873a1f8e59366e88fc91fad553b4c9c92e35c48824bfc1c346c54da3de
Contents?: true
Size: 1.35 KB
Versions: 3
Compression:
Stored size: 1.35 KB
Contents
require "nokogiri" require "github/markdown" module StyleGuide class Partial attr_reader :path, :section def initialize(path, section) @path = path @section = section end def id @id ||= title.downcase.gsub(/[^a-zA-Z0-9]+/, "_") end def title @title ||= File.basename(path, File.extname(path)).titleize.strip end def description @description ||= GitHub::Markdown.render_gfm(translated_description) end def classes @classes ||= begin parsed.css("[class]").reduce({}) do |output, tag| output.tap do |tags| tag["class"].split.each do |class_name| tags[".#{class_name}"] = true end end end.keys end end def ids @ids ||= parsed.css("[id]").map { |tag| %(##{tag["id"]}) } end def identifiers ids + classes end def render @render ||= action_view.render(:file => path) end private def action_view ActionView::Base.new(Rails.root.join("app", "views")) end def style_guide_scope [:style_guide, section.id.to_sym] end def translated_description I18n.translate!(id, :scope => style_guide_scope) rescue I18n::MissingTranslationData nil end def parsed @parsed ||= Nokogiri::HTML.parse(render) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
style-guide-1.1.1 | lib/style_guide/partial.rb |
style-guide-1.1.0 | lib/style_guide/partial.rb |
style-guide-1.0.0 | lib/style_guide/partial.rb |