module StyleGuideAPI
Constants
- VERSION
Attributes
live[RW]
theme[RW]
Public Class Methods
add_stylesheet(file)
click to toggle source
# File lib/styleguide-api.rb, line 51 def self.add_stylesheet(file) @stylesheets[theme] ||= [] @stylesheets[theme] << file end
add_templates(glob, options = {})
click to toggle source
# File lib/styleguide-api.rb, line 45 def self.add_templates(glob, options = {}) current_theme = options[:theme] || theme @template_paths[current_theme] ||= [] @template_paths[current_theme] << glob end
data()
click to toggle source
# File lib/styleguide-api.rb, line 33 def self.data return @data if @data and not (live and @template_paths.any?) @data = {} load_templates @data end
initialize()
click to toggle source
# File lib/styleguide-api.rb, line 23 def self.initialize @live = false @templates = {} @template_paths = {} @data = nil @theme = nil @stylesheets = {} end
load(uri)
click to toggle source
# File lib/styleguide-api.rb, line 40 def self.load(uri) json = open(uri).read @data = JSON.parse(json) end
render(template_name, locals = {}, &block)
click to toggle source
# File lib/styleguide-api.rb, line 56 def self.render(template_name, locals = {}, &block) scope = locals.delete(:scope) || Object.new template = template_for(template_name) template.render(scope, locals, &block) end
stylesheets()
click to toggle source
# File lib/styleguide-api.rb, line 83 def self.stylesheets data[theme]["stylesheets"] || [] end
template_for(name)
click to toggle source
# File lib/styleguide-api.rb, line 62 def self.template_for(name) @templates[theme][name] if @templates[theme] && @templates[theme][name] template = data[theme]["templates"].fetch(name) do fail UnknownTemplateError, name end @templates[theme] ||= {} @templates[theme][name] = Tilt[template["type"]].new { template["source"] } end
themes()
click to toggle source
# File lib/styleguide-api.rb, line 75 def self.themes (@template_paths.keys + (@data ? @data.keys : [])).uniq end
to_json()
click to toggle source
# File lib/styleguide-api.rb, line 79 def self.to_json data.to_json end
Private Class Methods
load_templates()
click to toggle source
# File lib/styleguide-api.rb, line 88 def self.load_templates themes.each do |theme| @data[theme] ||= { "templates" => {}, "stylesheets" => @stylesheets[theme] } @template_paths[theme].each do |glob| path = glob.split("*").first Dir.glob(glob).each do |file| key, type = file.sub("/_", "/").sub(/^#{path}(.+?)\.(\w+)$/, "\\1"), $2 if Tilt[type] @data[theme]["templates"][key] = { "source" => File.read(file).strip, "type" => type } end end end end end