Module: StyleGuideAPI

Defined in:
lib/styleguide-api.rb,
lib/styleguide-api/version.rb

Defined Under Namespace

Modules: Helpers Classes: MiddlemanExtension, UnknownTemplateError

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.liveObject

Returns the value of attribute live.



9
10
11
# File 'lib/styleguide-api.rb', line 9

def live
  @live
end

.themeObject

Returns the value of attribute theme.



10
11
12
# File 'lib/styleguide-api.rb', line 10

def theme
  @theme
end

Class Method Details

.add_stylesheet(file) ⇒ Object



51
52
53
54
# File 'lib/styleguide-api.rb', line 51

def self.add_stylesheet(file)
  @stylesheets[theme] ||= []
  @stylesheets[theme] << file
end

.add_templates(glob, options = {}) ⇒ Object



45
46
47
48
49
# 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

.dataObject



33
34
35
36
37
38
# 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

.initializeObject



23
24
25
26
27
28
29
30
# File 'lib/styleguide-api.rb', line 23

def self.initialize
  @live = false
  @templates = {}
  @template_paths = {}
  @data = nil
  @theme = nil
  @stylesheets = {}
end

.load(uri) ⇒ Object



40
41
42
43
# 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) ⇒ Object



56
57
58
59
60
# 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

.stylesheetsObject



83
84
85
# File 'lib/styleguide-api.rb', line 83

def self.stylesheets
  data[theme]["stylesheets"] || []
end

.template_for(name) ⇒ Object



62
63
64
65
66
67
68
69
# 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

.themesObject



75
76
77
# File 'lib/styleguide-api.rb', line 75

def self.themes
  (@template_paths.keys + (@data ? @data.keys : [])).uniq
end

.to_jsonObject



79
80
81
# File 'lib/styleguide-api.rb', line 79

def self.to_json
  data.to_json
end