fifty 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/fifty.rb +25 -4
- metadata +2 -2
data/lib/fifty.rb
CHANGED
@@ -6,7 +6,7 @@ module Fifty
|
|
6
6
|
require 'json'
|
7
7
|
|
8
8
|
# Version of the gem.
|
9
|
-
VERSION = '0.1.
|
9
|
+
VERSION = '0.1.3'
|
10
10
|
|
11
11
|
# Class-level variables.
|
12
12
|
|
@@ -17,7 +17,7 @@ module Fifty
|
|
17
17
|
attr_accessor :helpers
|
18
18
|
# Hash of compiled shared data.
|
19
19
|
attr_accessor :shareds
|
20
|
-
# Hash of compiled partials
|
20
|
+
# Hash of HTML compiled partials
|
21
21
|
attr_accessor :partials
|
22
22
|
# Boolean - have we compiled?
|
23
23
|
attr_accessor :compiled
|
@@ -27,6 +27,8 @@ module Fifty
|
|
27
27
|
attr_accessor :logger
|
28
28
|
# Handlebars runtime.
|
29
29
|
attr_accessor :hbs
|
30
|
+
# Time last updated at.
|
31
|
+
attr_accessor :updated
|
30
32
|
end
|
31
33
|
|
32
34
|
# Default values for class variables.
|
@@ -35,6 +37,7 @@ module Fifty
|
|
35
37
|
self.helpers = {}
|
36
38
|
self.shareds = {}
|
37
39
|
self.partials = {}
|
40
|
+
self.updated = {}
|
38
41
|
|
39
42
|
self.logger = $stdout
|
40
43
|
self.compiled = false
|
@@ -45,6 +48,7 @@ module Fifty
|
|
45
48
|
# Handle missing Handlebars partials.
|
46
49
|
# We don't register partials server-side.
|
47
50
|
self.hbs.partial_missing do |name|
|
51
|
+
debug "Missing partial #{name}"
|
48
52
|
hbs = Fifty.render_haml(name)
|
49
53
|
Fifty.hbs2html(hbs, @@current)
|
50
54
|
end
|
@@ -66,7 +70,7 @@ module Fifty
|
|
66
70
|
# Output the helpers, the partials,
|
67
71
|
# and the data inside script tags.
|
68
72
|
def self.headers
|
69
|
-
scripts = ['helpers', '
|
73
|
+
scripts = ['helpers', 'shareds']
|
70
74
|
headers = ''
|
71
75
|
scripts.each { |type| headers += header(type) }
|
72
76
|
headers
|
@@ -112,10 +116,25 @@ module Fifty
|
|
112
116
|
# Iterate over all template files
|
113
117
|
# and compile each one to HBS.
|
114
118
|
def self.compile_template_files
|
119
|
+
FileUtils.mkdir_p('./.hbs')
|
115
120
|
get_template_files.each do |file|
|
121
|
+
updated[file] = File.mtime(file)
|
116
122
|
compile_template_file(file)
|
117
123
|
end
|
118
124
|
end
|
125
|
+
|
126
|
+
def self.recompile_templates
|
127
|
+
FileUtils.mkdir_p('./.hbs')
|
128
|
+
recompiled = false
|
129
|
+
get_template_files.each do |file|
|
130
|
+
if File.mtime(file) != updated[file]
|
131
|
+
compile_template_file(file)
|
132
|
+
updated[file] = File.mtime(file)
|
133
|
+
recompiled = true
|
134
|
+
end
|
135
|
+
end
|
136
|
+
yield if recompiled
|
137
|
+
end
|
119
138
|
|
120
139
|
# Compile a single HAML template
|
121
140
|
# file to HTML with HBS.
|
@@ -123,6 +142,8 @@ module Fifty
|
|
123
142
|
contents = File.read(file)
|
124
143
|
partial = render_raw_haml(contents)
|
125
144
|
name = path_to_name(file)
|
145
|
+
path = './.hbs/' + name.to_s + '.handlebars'
|
146
|
+
File.open(path, 'w+') { |f| f.write(partial) }
|
126
147
|
template = escape_hbs(partial)
|
127
148
|
reg = partial_registerer(name, template)
|
128
149
|
partials[name] = reg
|
@@ -251,7 +272,7 @@ module Fifty
|
|
251
272
|
end
|
252
273
|
code
|
253
274
|
end
|
254
|
-
|
275
|
+
|
255
276
|
# Generates a Javascript script tag with inline code.
|
256
277
|
def self.script_tag(id, code, type = 'text/javascript')
|
257
278
|
"\n<script id='#{id}' type='#{type}'>#{code}</script>\n"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fifty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|