gumdrop 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ # v0.7.5
2
+ - Gumdrop dev server will serve up files from output_dir if the file isn't found in the source tree.
3
+ - Added new template: blank
4
+ - Coerces content into UTF-8, if it can, when relativizing paths (to work around encoding bugs).
5
+ - Content class defers a lot of stuff from the initializer (for slightly faster startup).
6
+ - Changed site.node_tree to site.content_hash. More representative of what it is.
7
+ - Paths aren't relativized for pages that set force_absolute
8
+
1
9
  # v0.7.4
2
10
  - All rendered content (including layouts) will relativize paths starting with / on href="" and src="" for html files. Can be set to array of file exts to process at `config.relative_paths_for= ['.html']` or sett to process all files `config.relative_paths_for= :all` or turned off entirely by `config.relative_paths= false`
3
11
  - Proxy server is disabled by default. Enable it `configure.proxy = true`
data/Readme.md CHANGED
@@ -182,6 +182,8 @@ Here's the `Gumdrop` file created by the default template:
182
182
  - Project Templates
183
183
 
184
184
  # Todo / Ideas / Changes
185
+ - Create guard-gumdrop.
186
+ - Add automatic sqlite loading to `data_manager`?
185
187
  - New/Update Doc site.
186
188
  - Need test coverage.
187
189
  - Some kind of admin? What would that even do?
@@ -4,48 +4,75 @@ module Gumdrop
4
4
  class Content
5
5
 
6
6
  MUNGABLE_RE= Regexp.new(%Q<(href|data|src)([\s]*)=([\s]*)('|"|&quot;|&#34;|&#39;)?\\/([\\/]?)>, 'i')
7
+ LAYOUTLESS_EXTS= %w(.css .js .xml)
7
8
 
8
- attr_accessor :path,
9
- :level,
10
- :filename,
11
- :source_filename,
12
- :type,
13
- :ext,
14
- :uri,
15
- :slug,
16
- :template,
17
- :params,
18
- :site,
19
- :ignored,
20
- :generated,
21
- :full_path
9
+ attr_reader :full_path, :path, :params, :site
22
10
 
23
11
  def initialize(path, site, params={})
24
12
  @site= site
25
13
  @params= HashObject.new params
26
14
  @full_path= path
27
- @ignored= false
28
- @generated= false
29
- @path= get_source_path
30
- @level= (@path.split('/').length - 1)
31
- @source_filename= File.basename path
32
- @filename= get_target_filename
33
- @type= File.extname @source_filename
34
- @ext= File.extname @filename
35
- @uri= get_uri
36
- @slug=@uri.gsub('/', '-').gsub(@ext, '')
37
- @template= unless Tilt[path].nil?
38
- Tilt.new path
15
+ end
16
+
17
+ def slug
18
+ @slug ||= uri.gsub('/', '-').gsub(ext, '')
19
+ end
20
+
21
+ def ignored
22
+ @ignored ||= false
23
+ end
24
+ def ignore(state=true)
25
+ @ignored= state
26
+ end
27
+
28
+ def generated
29
+ @generated ||= false
30
+ end
31
+
32
+ def path
33
+ @path ||= get_source_path
34
+ end
35
+
36
+ def level
37
+ @level ||= (path.split('/').length - 1)
38
+ end
39
+
40
+ def source_filename
41
+ @source_filename ||= File.basename @full_path
42
+ end
43
+
44
+ def filename
45
+ @filename ||= get_target_filename
46
+ end
47
+
48
+ def type
49
+ @type ||= File.extname source_filename
50
+ end
51
+
52
+ def ext
53
+ @ext ||= File.extname filename
54
+ end
55
+
56
+ def uri
57
+ @uri ||= get_uri
58
+ end
59
+
60
+ def template
61
+ @template ||= unless Tilt[@full_path].nil?
62
+ Tilt.new @full_path
39
63
  else
40
64
  nil
41
65
  end
42
66
  end
67
+ def template=(t)
68
+ @template = t
69
+ end
43
70
 
44
71
  def render(context=nil, ignore_layout=false, reset_context=true, locals={})
45
- context= @site.render_context if context.nil?
72
+ context= site.render_context if context.nil?
46
73
  if reset_context
47
- default_layout= (@ext == '.css' or @ext == '.js' or @ext == '.xml') ? nil : 'site'
48
- context.reset_data 'current_depth'=>@level, 'current_slug'=>@slug, 'page'=>self, 'layout'=>default_layout, 'params'=>self.params
74
+ default_layout= LAYOUTLESS_EXTS.include?(ext) ? nil : 'site'
75
+ context.reset_data 'current_depth'=>level, 'current_slug'=>slug, 'page'=>self, 'layout'=>default_layout, 'params'=>params
49
76
  end
50
77
  context.set_content self, locals
51
78
  content= render_all(context)
@@ -60,7 +87,7 @@ module Gumdrop
60
87
 
61
88
  def renderTo(context, output_path, filters=[], opts={})
62
89
  return copyTo(output_path, opts) unless useLayout?
63
- @site.report " rendering: #{@uri}", :warning
90
+ site.report " rendering: #{uri}", :warning
64
91
  output= render(context)
65
92
  filters.each {|f| output= f.call(output, self) }
66
93
  File.open output_path, 'w' do |f|
@@ -68,7 +95,7 @@ module Gumdrop
68
95
  end
69
96
  end
70
97
 
71
-
98
+ # This probably belongs to the BUILD, not here
72
99
  def copyTo(output, layout=nil, opts={})
73
100
  do_copy= if File.exists? output
74
101
  !FileUtils.identical? @full_path, output
@@ -76,10 +103,10 @@ module Gumdrop
76
103
  true
77
104
  end
78
105
  if do_copy
79
- @site.report " copying: #{@uri}", :warning
106
+ site.report " copying: #{uri}", :warning
80
107
  FileUtils.cp_r @full_path, output, opts
81
108
  else
82
- @site.report " (same): #{@uri}", :info
109
+ site.report " (same): #{uri}", :info
83
110
  end
84
111
  end
85
112
 
@@ -92,21 +119,21 @@ module Gumdrop
92
119
  end
93
120
 
94
121
  def useLayout?
95
- !@template.nil?
122
+ !template.nil?
96
123
  end
97
124
 
98
125
  def ignore?
99
- @ignored
126
+ ignored
100
127
  end
101
128
 
102
129
  def to_s
103
- @uri
130
+ uri
104
131
  end
105
132
 
106
133
  private
107
134
 
108
135
  def get_source_path
109
- path= @full_path.sub @site.src_path, ''
136
+ path= @full_path.sub site.src_path, ''
110
137
  if path[0] == '/'
111
138
  path[1..-1]
112
139
  else
@@ -115,7 +142,7 @@ module Gumdrop
115
142
  end
116
143
 
117
144
  def get_target_filename
118
- filename_parts= @source_filename.split('.')
145
+ filename_parts= source_filename.split('.')
119
146
  ext= filename_parts.pop
120
147
  while !Tilt[ext].nil?
121
148
  ext= filename_parts.pop
@@ -125,11 +152,11 @@ module Gumdrop
125
152
  end
126
153
 
127
154
  def render_all(ctx)
128
- if @generated or !File.exists?(@full_path)
129
- content= @template.render(ctx)
155
+ if generated or !File.exists?(@full_path)
156
+ content= template.render(ctx)
130
157
  else
131
158
  content= File.read @full_path
132
- exts= @source_filename.gsub @filename, ''
159
+ exts= source_filename.gsub filename, ''
133
160
  exts.split('.').reverse.each do |ext|
134
161
  unless ext.blank?
135
162
  templateClass= Tilt[".#{ext}"]
@@ -144,7 +171,7 @@ module Gumdrop
144
171
  end
145
172
 
146
173
  def get_uri
147
- uri= File.join File.dirname(@path), @filename
174
+ uri= File.join File.dirname(path), filename
148
175
  if uri.starts_with? './'
149
176
  uri[2..-1]
150
177
  else
@@ -153,9 +180,10 @@ module Gumdrop
153
180
  end
154
181
 
155
182
  def relativize(content, ctx)
156
- if site.config.relative_paths
157
- if site.config.relative_paths_for == :all or site.config.relative_paths_for.include?(@ext)
183
+ if site.config.relative_paths and !ctx.force_absolute
184
+ if site.config.relative_paths_for == :all or site.config.relative_paths_for.include?(ext)
158
185
  path_to_root= ctx.path_to_root
186
+ content.force_encoding("UTF-8") if content.respond_to? :force_encoding
159
187
  content = content.gsub MUNGABLE_RE do |match|
160
188
  if $5 == '/'
161
189
  "#{ $1 }#{ $2 }=#{ $3 }#{ $4 }/"
@@ -18,8 +18,8 @@ module Gumdrop
18
18
  else
19
19
  "#{ path_to_root }#{ path }"
20
20
  end
21
- if opts[:fresh] and @site.node_tree.has_key?(path)
22
- uri_string += "?v=#{ @site.node_tree[path].mtime.to_i }"
21
+ if opts[:fresh] and @site.content_hash.has_key?(path)
22
+ uri_string += "?v=#{ @site.content_hash[path].mtime.to_i }"
23
23
  end
24
24
  uri_string = "/" if uri_string == ""
25
25
  uri_string
@@ -123,8 +123,8 @@ module Gumdrop
123
123
  protected
124
124
 
125
125
  def get_page(path)
126
- page= @site.node_tree[path]
127
- page= @site.node_tree["#{path}.html"] if page.nil? # Bit of a hack...
126
+ page= @site.content_hash[path]
127
+ page= @site.content_hash["#{path}.html"] if page.nil? # Bit of a hack...
128
128
  page= @site.partials[path] if page.nil?
129
129
  page= @site.layouts[path] if page.nil? # ???
130
130
  page
@@ -58,12 +58,12 @@ module Gumdrop
58
58
  @site.layouts[ "#{opts[:template]}.template" ]
59
59
  end.template
60
60
  end
61
- content.ignored= site.greylist.any? {|pattern| site.path_match name, pattern }
61
+ content.ignore site.greylist.any? {|pattern| site.path_match name, pattern }
62
62
  unless content.ignored
63
- content.ignored= site.blacklist.any? {|pattern| site.path_match name, pattern }
63
+ content.ignore site.blacklist.any? {|pattern| site.path_match name, pattern }
64
64
  end
65
65
  @site.report " generated: #{content.uri}", :info
66
- @site.node_tree[content.uri]= content
66
+ @site.content_hash[content.uri]= content
67
67
  end
68
68
 
69
69
  # FIXME: Does redirect require abs-paths?
@@ -157,9 +157,9 @@ module Gumdrop
157
157
  rp = File.expand_path(opts[:root])
158
158
  relative_root = rp.gsub(sp, '')[1..-1]
159
159
  rrlen= relative_root.length - 1
160
- @site.node_tree.keys.each do |path|
160
+ @site.content_hash.keys.each do |path|
161
161
  if path[0..rrlen] == relative_root and name != path
162
- @site.node_tree.delete path
162
+ @site.content_hash.delete path
163
163
  end
164
164
  end
165
165
  end
@@ -185,7 +185,7 @@ module Gumdrop
185
185
  end
186
186
 
187
187
  def useLayout?
188
- !@content_block.nil? or !@template.nil?
188
+ !@content_block.nil? or !template.nil?
189
189
  end
190
190
 
191
191
  end
@@ -31,6 +31,7 @@ module Gumdrop
31
31
 
32
32
  file_path= get_content_path params[:splat].join('/'), site
33
33
  site.report "[#{$$}] GET /#{params[:splat].join('/')} -> #{file_path}"
34
+
34
35
  unless static_asset file_path
35
36
  since_last_build= Time.now.to_i - site.last_run.to_i
36
37
  # site.report "!>!>>>>> since_last_build: #{since_last_build}"
@@ -40,8 +41,8 @@ module Gumdrop
40
41
  end
41
42
  end
42
43
 
43
- if site.node_tree.has_key? file_path
44
- content= site.node_tree[file_path]
44
+ if site.content_hash.has_key? file_path
45
+ content= site.content_hash[file_path]
45
46
  if content.useLayout?
46
47
  site.report "[#{$$}] *Dynamic: #{file_path} (#{content.ext})"
47
48
  content_type :css if content.ext == '.css' # Meh?
@@ -54,6 +55,11 @@ module Gumdrop
54
55
  site.report "[#{$$}] *Static: #{file_path}"
55
56
  send_file File.join( site.src_path, file_path)
56
57
  end
58
+
59
+ elsif File.exists? File.join(site.config.output_dir, file_path)
60
+ site.report "[#{$$}] *Static (from OUTPUT): #{file_path}"
61
+ send_file File.join(site.config.output_dir, file_path)
62
+
57
63
  else
58
64
  site.report "[#{$$}] *Missing: #{file_path}", :error
59
65
  "#{file_path} Not Found"
@@ -69,7 +75,7 @@ module Gumdrop
69
75
  if file_path == ""
70
76
  "index.html"
71
77
  else
72
- keys.detect {|k| site.node_tree.has_key?(k) }
78
+ keys.detect {|k| site.content_hash.has_key?(k) } or file_path
73
79
  end
74
80
  end
75
81
 
@@ -84,6 +90,7 @@ module Gumdrop
84
90
  end
85
91
 
86
92
  def static_asset(file_path)
93
+ return false if file_path.nil? or File.extname(file_path).nil?
87
94
  STATIC_ASSETS.include? File.extname(file_path).to_s
88
95
  end
89
96
 
@@ -31,7 +31,7 @@ module Gumdrop
31
31
  :config,
32
32
  :data,
33
33
  :sitefile,
34
- :node_tree,
34
+ :content_hash,
35
35
  :last_run
36
36
 
37
37
  extend Callbacks
@@ -55,21 +55,23 @@ module Gumdrop
55
55
 
56
56
  def contents(*args)
57
57
  opts= args.extract_options!
58
- pattern= args[0] || nil
58
+ pattern= args.first || nil
59
+
59
60
  if pattern.nil?
60
61
  if opts[:as] == :hash
61
- @node_tree
62
+ @content_hash
62
63
  else
63
- @node_tree.values
64
+ @content_hash.values
64
65
  end
66
+
65
67
  else
66
68
  nodes = opts[:as] == :hash ? {} : []
67
- @node_tree.keys.each do |path|
69
+ @content_hash.keys.each do |path|
68
70
  if path_match path, pattern
69
71
  if opts[:as] == :hash
70
- nodes[path]= @node_tree[path]
72
+ nodes[path]= @content_hash[path]
71
73
  else
72
- nodes << @node_tree[path]
74
+ nodes << @content_hash[path]
73
75
  end
74
76
  end
75
77
  end
@@ -135,7 +137,7 @@ module Gumdrop
135
137
  @greylist = []
136
138
  @redirects = []
137
139
 
138
- @node_tree = Hash.new {|h,k| h[k]= nil }
140
+ @content_hash = Hash.new {|h,k| h[k]= nil }
139
141
  @layouts = Hash.new {|h,k| h[k]= nil }
140
142
  @partials = Hash.new {|h,k| h[k]= nil }
141
143
  @generators = Hash.new {|h,k| h[k]= nil }
@@ -212,7 +214,7 @@ module Gumdrop
212
214
  if blacklist.any? {|pattern| path_match path, pattern }
213
215
  report " excluding: #{path}", :info
214
216
  else
215
- node.ignored= greylist.any? {|pattern| path_match path, pattern }
217
+ node.ignore greylist.any? {|pattern| path_match path, pattern }
216
218
  # Sort out Layouts, Generators, and Partials
217
219
  if File.extname(path) == ".template"
218
220
  layouts[path]= node
@@ -229,7 +231,7 @@ module Gumdrop
229
231
  partials[partial_node_path]= node
230
232
 
231
233
  else
232
- @node_tree[path]= node
234
+ @content_hash[path]= node
233
235
  end
234
236
  end
235
237
  end
@@ -250,8 +252,8 @@ module Gumdrop
250
252
  unless opts[:dry_run]
251
253
  report "[Compiling to #{@out_path}]", :info
252
254
  on_before_render(self)
253
- @node_tree.keys.sort.each do |path|
254
- node= @node_tree[path]
255
+ @content_hash.keys.sort.each do |path|
256
+ node= @content_hash[path]
255
257
  unless node.ignore?
256
258
  output_path= File.join(@out_path, node.to_s)
257
259
  FileUtils.mkdir_p File.dirname(output_path)
@@ -1,5 +1,5 @@
1
1
  module Gumdrop
2
2
 
3
- VERSION = "0.7.4" unless defined?(::Gumdrop::VERSION)
3
+ VERSION = "0.7.5" unless defined?(::Gumdrop::VERSION)
4
4
 
5
5
  end
@@ -44,7 +44,7 @@ describe Gumdrop::Content do
44
44
 
45
45
  it "should relativize all absolute paths (when starts with /)" do
46
46
  site= get_test_site
47
- # puts site.node_tree.keys
47
+ # puts site.content_hash.keys
48
48
 
49
49
  page= site.contents('posts/post1.html').first
50
50
  content= page.render
@@ -4,7 +4,7 @@
4
4
  Test = (function() {
5
5
 
6
6
  function Test() {
7
- this.img = $('<img src="../media/my-images.png">');
7
+ this.img = $('<img src="/media/my-images.png">');
8
8
  }
9
9
 
10
10
  return Test;
@@ -0,0 +1,33 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "i18n"
4
+ gem "sinatra"
5
+ gem "active_support"
6
+ gem "rake"
7
+ gem "gumdrop"
8
+
9
+ # Add your dependencies here:
10
+
11
+ # For template support:
12
+ # gem "less"
13
+ # gem "haml"
14
+ # gem "slim"
15
+ # gem "sass"
16
+ # gem "coffee-script"
17
+
18
+ # For JavaScript stitching and compressing:
19
+ # gem 'packr'
20
+ # gem 'uglifier'
21
+ # gem 'yui-compressor'
22
+ # gem 'jsmin'
23
+ # gem 'stitch-rb'
24
+ # gem 'sprockets'
25
+
26
+ # For markdown support, a couple of options:
27
+ # gem "redcarpet"
28
+ # gem "kramdown", :git => "git://github.com/darthapo/kramdown.git"
29
+ # gem "rdiscount"
30
+ # gem 'maruku'
31
+
32
+ # For xml generation support:
33
+ # gem 'builder'
@@ -0,0 +1,118 @@
1
+ puts "Gumdrop v#{Gumdrop::VERSION} building..."
2
+
3
+ configure do
4
+
5
+ # All the supported build configuration settings and their defaults:
6
+
7
+ # set :relative_paths, true
8
+ # set :proxy_enabled, false
9
+ # set :output_dir, "./output"
10
+ # set :source_dir, "./source"
11
+ # set :data_dir, './data'
12
+ # set :log, './logs/build.log'
13
+ # set :ignore, %w(.DS_Store .gitignore .git .svn .sass-cache)
14
+ # set :server_timeout, 15
15
+ # set :server_port, 4567
16
+
17
+ end
18
+
19
+
20
+ # Skipping files entirely from build process... Like they don't exist.
21
+ # skip 'file-to-ignore.html'
22
+ # skip 'dont-show/**/*'
23
+
24
+ # Ignores source file(s) from compilation, but does load the content into memory
25
+ # ignore 'pages/**/*.*'
26
+
27
+ # NOTE: Skipping and ignoring matches like a file glob (it use File.fnmatch in fact)
28
+ # (this doesn't work for files detected by stitch)
29
+
30
+
31
+ # Example site-level generator
32
+ generate do
33
+
34
+ # Requires a about.template.XX file
35
+ # page "about.html",
36
+ # :template=>'about',
37
+ # :passthru=>'Available in the template'
38
+
39
+ # page 'robots.txt' do
40
+ # # And content returned will be put in the file
41
+ # """
42
+ # User-Agent: *
43
+ # Disallow: /
44
+ # """
45
+ # end
46
+
47
+ # Maybe for a tumblr-like pager
48
+ # pager= Gumdrop.data.pager_for :posts, base_path:'posts/page', page_size:5
49
+
50
+ # pager.each do |page|
51
+ # page "#{page.uri}.html",
52
+ # template:'post_page',
53
+ # posts:page.items,
54
+ # pager:pager,
55
+ # current_page:pager.current_page
56
+ # end
57
+
58
+ # Assemble javscript files in a CommonJS-like way with stitch-rb
59
+ # stitch 'app.js', # JavaScript to assemble
60
+ # :identifier=>'app', # variable name for the library
61
+ # :paths=>['./app'],
62
+ # :root=>'./app',
63
+ # :dependencies=>[], # List of scripts to prepend to top of file (non moduled)
64
+ # :prune=>false, # If true, removes the source files from Gumdrop.site hash
65
+ # :compress=>:jsmin, # Options are :jsmin, :yuic, :uglify
66
+ # :obfuscate=>false, # For compressors that support munging/mangling
67
+ # :keep_src=>true # Creates another file, ex: app-src.js
68
+
69
+ # Or use sprockets
70
+ # sprockets 'app.js',
71
+ # :src=>'app/index.js',
72
+ # :paths=>['./lib'],
73
+ # :prune=>true,
74
+ # :root=>'./src',
75
+ # :compress=>:packr,
76
+ # :keep_src=>true
77
+ end
78
+
79
+ # Example of using a content filter to compress CSS output
80
+ # require 'yui/compressor'
81
+ # content_filter do |content, info|
82
+ # if info.ext == '.css'
83
+ # puts " Compress: #{info.filename}"
84
+ # compressor= YUI::CssCompressor.new
85
+ # compressor.compress( content )
86
+ # else
87
+ # content
88
+ # end
89
+ # end
90
+
91
+ # All Gumdrop Hooks: on_start, on_before_scan, on_scan, on_before_generate, on_generate, on_before_render, on_render, on_end
92
+ # on_start do |site| end
93
+ # on_end do |site| end
94
+
95
+
96
+ # View helpers (available in rendering context):
97
+ view_helpers do
98
+
99
+ # Calculate the years for a copyright
100
+ def copyright_years(start_year, divider="&#8211;")
101
+ end_year = Date.today.year
102
+ if start_year == end_year
103
+ "#{start_year}"
104
+ else
105
+ "#{start_year}#{divider}#{end_year}"
106
+ end
107
+ end
108
+
109
+ #
110
+ # Your custom helpers go here!
111
+ #
112
+
113
+ end
114
+
115
+ # Any specialized code for your site goes here...
116
+
117
+ # require 'slim'
118
+ # Slim::Engine.set_default_options pretty:true
@@ -0,0 +1,38 @@
1
+ require 'rubygems'
2
+ require "bundler/setup"
3
+ require 'gumdrop'
4
+
5
+ # For the SYNC task
6
+ USER='user'
7
+ SERVER='server.com'
8
+ FOLDER="~/#{SERVER}"
9
+
10
+ site= Gumdrop::Site.new "./Gumdrop"
11
+ OUTPUT=site.config.output_dir
12
+
13
+ desc "Build source files into output_dir"
14
+ task :build do
15
+ system("bundle exec gumdrop -b")
16
+ end
17
+
18
+ desc "Run development server"
19
+ task :serve do
20
+ system("bundle exec gumdrop -s")
21
+ end
22
+
23
+ desc "Syncs with public server using rsync (if configured)"
24
+ task :sync do
25
+ cmd= "rsync -avz --delete #{OUTPUT} #{USER}@#{SERVER}:#{FOLDER}"
26
+ puts "Running:\n#{cmd}\n"
27
+ system(cmd)
28
+ puts "Done."
29
+ end
30
+
31
+ desc "Outputs the Gumdrop version"
32
+ task :version do
33
+ puts Gumdrop::VERSION
34
+ end
35
+
36
+ task :default do
37
+ puts `rake -T`
38
+ end
@@ -25,6 +25,8 @@ gem 'stitch-rb'
25
25
  #gem 'sprockets'
26
26
 
27
27
  # For markdown support, a couple of options:
28
+ # gem "kramdown", :git => "git://github.com/darthapo/kramdown.git"
29
+ # gem 'redcarpet'
28
30
  # gem "rdiscount"
29
31
  # gem 'maruku'
30
32
 
@@ -9,7 +9,7 @@ configure do
9
9
 
10
10
  # All the supported build configuration settings and their defaults:
11
11
  # set :relative_paths, true
12
- # set :proxy_enabled, true
12
+ # set :proxy_enabled, false
13
13
  # set :output_dir, "./output"
14
14
  # set :source_dir, "./source"
15
15
  # set :data_dir, './data'
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 4
9
- version: 0.7.4
8
+ - 5
9
+ version: 0.7.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matt McCray
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-06-26 00:00:00 -05:00
17
+ date: 2012-06-27 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -170,6 +170,9 @@ files:
170
170
  - templates/backbone/source/theme/styles/_tools.scss
171
171
  - templates/backbone/source/theme/templates/app.template.slim
172
172
  - templates/backbone/source/theme/templates/site.template.slim
173
+ - templates/blank/Gemfile
174
+ - templates/blank/Gumdrop
175
+ - templates/blank/Rakefile
173
176
  - templates/default/Gemfile
174
177
  - templates/default/Gumdrop
175
178
  - templates/default/Rakefile