Class: DressCode::Generator
- Inherits:
-
Object
- Object
- DressCode::Generator
- Defined in:
- lib/dress_code/generator.rb
Constant Summary collapse
- STATIC =
"#{File.dirname(__FILE__)}/../static"
- TEMPLATE =
"#{STATIC}/styleguide.html.mustache"
Instance Method Summary collapse
- #dress_code_css ⇒ Object
- #dress_code_js ⇒ Object
- #generate ⇒ Object
-
#initialize(opts) ⇒ Generator
constructor
A new instance of Generator.
- #map_doc(doc) ⇒ Object
- #map_docs ⇒ Object
- #write_file(path, content) ⇒ Object
Constructor Details
#initialize(opts) ⇒ Generator
Returns a new instance of Generator.
9 10 11 12 13 14 15 16 17 |
# File 'lib/dress_code/generator.rb', line 9 def initialize(opts) @out_file = opts[:out_file] || 'styleguide.html' @docs = opts[:docs] @css = opts[:css] @js = opts[:js] @template = opts[:template] || TEMPLATE @inline_css = opts[:dress_code_css].nil? ? true : !!opts[:dress_code_css] @inline_js = opts[:dress_code_js].nil? ? true : !!opts[:dress_code_js] end |
Instance Method Details
#dress_code_css ⇒ Object
30 31 32 33 |
# File 'lib/dress_code/generator.rb', line 30 def dress_code_css return unless @inline_css File.read("#{STATIC}/base.css") + File.read("#{STATIC}/github.css") end |
#dress_code_js ⇒ Object
35 36 37 38 |
# File 'lib/dress_code/generator.rb', line 35 def dress_code_js return unless @inline_js File.read("#{STATIC}/docs.js") end |
#generate ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/dress_code/generator.rb', line 19 def generate template = File.read(@template, encoding: 'bom|utf-8') write_file(@out_file, Mustache.render(template, { :docs => map_docs, :css => @css, :js => @js, :dress_code_css => dress_code_css, :dress_code_js => dress_code_js })) end |
#map_doc(doc) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/dress_code/generator.rb', line 44 def map_doc(doc) { :id => "#{doc.component.gsub(' ', '_').downcase}", :prose => doc.to_html, :component => doc.component, :file => doc.relative_path } end |
#map_docs ⇒ Object
40 41 42 |
# File 'lib/dress_code/generator.rb', line 40 def map_docs @docs.map { |doc| map_doc(doc) } end |
#write_file(path, content) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/dress_code/generator.rb', line 53 def write_file(path, content) File.open(path, 'w') do |file| puts "# writing file: #{path}" file.write(content) end end |