gumdrop 0.3 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.md +6 -0
- data/lib/gumdrop/cli.rb +4 -4
- data/lib/gumdrop/generator.rb +2 -15
- data/lib/gumdrop/stitch_ex.rb +14 -0
- data/lib/gumdrop/template/backbone/Gemfile +29 -0
- data/lib/gumdrop/template/backbone/Rakefile +38 -0
- data/lib/gumdrop/template/backbone/app_src/app.js.coffee +32 -0
- data/lib/gumdrop/template/backbone/app_src/init.js.coffee +10 -0
- data/lib/gumdrop/template/backbone/app_src/utils/index.js.coffee +29 -0
- data/lib/gumdrop/template/backbone/config.ru +21 -0
- data/lib/gumdrop/template/backbone/data/config.yml +4 -0
- data/lib/gumdrop/template/backbone/lib/javascript/all.js.coffee +18 -0
- data/lib/gumdrop/template/backbone/lib/javascript/backbone.js +1158 -0
- data/lib/gumdrop/template/backbone/lib/javascript/hogan.js +509 -0
- data/lib/gumdrop/template/backbone/lib/javascript/jquery.js +9266 -0
- data/lib/gumdrop/template/backbone/lib/javascript/underscore.js +981 -0
- data/lib/gumdrop/template/backbone/lib/site.rb +58 -0
- data/lib/gumdrop/template/backbone/lib/stitch_compilers.rb +85 -0
- data/lib/gumdrop/template/backbone/lib/view_helpers.rb +17 -0
- data/lib/gumdrop/template/backbone/powrc +2 -0
- data/lib/gumdrop/template/backbone/source/default.htaccess +22 -0
- data/lib/gumdrop/template/backbone/source/favicon.ico +0 -0
- data/lib/gumdrop/template/backbone/source/feed.xml.builder.txt +23 -0
- data/lib/gumdrop/template/backbone/source/index.html.erb +2 -0
- data/lib/gumdrop/template/backbone/source/theme/screen.css.sass +9 -0
- data/lib/gumdrop/template/backbone/source/theme/scripts/app.js.coffee +4 -0
- data/lib/gumdrop/template/backbone/source/theme/styles/_tools.scss +434 -0
- data/lib/gumdrop/template/backbone/source/theme/templates/app.template.slim +14 -0
- data/lib/gumdrop/template/backbone/source/theme/templates/site.template.slim +33 -0
- data/lib/gumdrop/version.rb +1 -1
- metadata +39 -13
data/ChangeLog.md
CHANGED
data/lib/gumdrop/cli.rb
CHANGED
@@ -8,9 +8,9 @@ opts = Trollop::options do
|
|
8
8
|
The simple, static, CMS.
|
9
9
|
|
10
10
|
Examples:
|
11
|
-
gumdrop --create my_new_site --template
|
11
|
+
gumdrop --create my_new_site --template backbone
|
12
12
|
Is the same as:
|
13
|
-
gumdrop -c my_new_site -t
|
13
|
+
gumdrop -c my_new_site -t backbone
|
14
14
|
|
15
15
|
Options:
|
16
16
|
EOS
|
@@ -18,7 +18,7 @@ EOS
|
|
18
18
|
opt :debug, "Enable debugging output"
|
19
19
|
opt :quiet, "No output"
|
20
20
|
opt :create, "Create a gumdrop project", :type=>String
|
21
|
-
opt :template, "Specify template to use for new project (default ||
|
21
|
+
opt :template, "Specify template to use for new project (default || backbone)", :type=>String, :default=>'default'
|
22
22
|
opt :build, "Build HTML output"
|
23
23
|
opt :server, "Runs development server"
|
24
24
|
opt :port, "Specifies port to run server on", :type=>:int
|
@@ -64,4 +64,4 @@ else
|
|
64
64
|
require 'pp'
|
65
65
|
puts "Unknown options"
|
66
66
|
pp opts
|
67
|
-
end
|
67
|
+
end
|
data/lib/gumdrop/generator.rb
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
|
2
|
-
require 'stitch'
|
3
|
-
require 'jsmin'
|
4
|
-
|
5
|
-
class Stitch::Source
|
6
|
-
# Patch for gumdrop style filenames
|
7
|
-
def name
|
8
|
-
name = path.relative_path_from(root)
|
9
|
-
name = name.dirname + name.basename(".*")
|
10
|
-
name.to_s.gsub(".js", '')
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
1
|
module Gumdrop
|
17
2
|
|
18
3
|
class Generator
|
@@ -68,9 +53,11 @@ module Gumdrop
|
|
68
53
|
end
|
69
54
|
|
70
55
|
def stitch(name, opts)
|
56
|
+
require 'gumdrop/stitch_ex'
|
71
57
|
page name do
|
72
58
|
content= Stitch::Package.new(opts).compile
|
73
59
|
if opts[:compress]
|
60
|
+
require 'jsmin'
|
74
61
|
JSMin.minify content
|
75
62
|
else
|
76
63
|
content
|
@@ -0,0 +1,29 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
gem "i18n"
|
4
|
+
gem "sinatra"
|
5
|
+
gem "active_support"
|
6
|
+
|
7
|
+
gem "rake"
|
8
|
+
gem "gumdrop"
|
9
|
+
|
10
|
+
# Add your dependencies here:
|
11
|
+
|
12
|
+
gem "slim"
|
13
|
+
gem "sass"
|
14
|
+
gem "coffee-script"
|
15
|
+
|
16
|
+
gem 'jsmin'
|
17
|
+
gem 'stitch-rb'
|
18
|
+
|
19
|
+
# For markdown support, a couple of options:
|
20
|
+
# gem "rdiscount"
|
21
|
+
# gem 'maruku'
|
22
|
+
|
23
|
+
# For template support:
|
24
|
+
# gem "less"
|
25
|
+
# gem "haml"
|
26
|
+
|
27
|
+
# For xml generation support:
|
28
|
+
# gem 'builder'
|
29
|
+
|
@@ -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
|
+
# Build folder (change if you change Gumdrop.config.output_dir)
|
11
|
+
OUTPUT="output/"
|
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
|
@@ -0,0 +1,32 @@
|
|
1
|
+
{ log, warn }= require('utils')
|
2
|
+
|
3
|
+
class Application extends Backbone.Model
|
4
|
+
|
5
|
+
initialize: ->
|
6
|
+
@initializers= []
|
7
|
+
@set isReady:no
|
8
|
+
|
9
|
+
addInitializer: (fn)->
|
10
|
+
if @get 'isReady'
|
11
|
+
fn.call this, @options
|
12
|
+
else
|
13
|
+
@initializers.push fn
|
14
|
+
|
15
|
+
start: (options)->
|
16
|
+
if @get 'isReady'
|
17
|
+
# You can only 'start' the app once!
|
18
|
+
warn "You can only start the application once!"
|
19
|
+
this
|
20
|
+
else
|
21
|
+
log "Init!"
|
22
|
+
@trigger 'app:init:before', app:this, options:options
|
23
|
+
for fn in @initializers
|
24
|
+
fn.call this, options
|
25
|
+
@trigger 'app:init:after', app:this, options:options
|
26
|
+
delete @initializers
|
27
|
+
@options= options
|
28
|
+
@set isReady:yes
|
29
|
+
this
|
30
|
+
|
31
|
+
module.exports= new Application
|
32
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
((has_console)->
|
2
|
+
|
3
|
+
# TODO: Implement all the other usual console tricks
|
4
|
+
log_methods= if has_console
|
5
|
+
log: ->
|
6
|
+
console.log arguments...
|
7
|
+
warn: ->
|
8
|
+
console.warn arguments...
|
9
|
+
error: ->
|
10
|
+
console.error arguments...
|
11
|
+
info: ->
|
12
|
+
console.info arguments...
|
13
|
+
else
|
14
|
+
# Create a bunch of NOOPs
|
15
|
+
# TODO: Decide if a fallback to non-console folks should be provided? (I'm thinking no.)
|
16
|
+
log: -> # noop
|
17
|
+
warn: -> # noop
|
18
|
+
error: -> # noop
|
19
|
+
info: -> # noop
|
20
|
+
|
21
|
+
module.exports= log_methods
|
22
|
+
module.exports.globalize= (ctx=window)->
|
23
|
+
for nam, fn of log_methods
|
24
|
+
ctx[name]= fn
|
25
|
+
|
26
|
+
)(window.console?)
|
27
|
+
|
28
|
+
|
29
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'gumdrop'
|
12
|
+
|
13
|
+
Gumdrop.config.auto_run= false
|
14
|
+
Gumdrop.config.force_reload= true
|
15
|
+
|
16
|
+
require 'rack/static'
|
17
|
+
#use Rack::Static, :urls => ["/media"], :root => "source"
|
18
|
+
use Rack::Static, :urls => ["/theme/images"], :root => "source"
|
19
|
+
|
20
|
+
|
21
|
+
run Gumdrop::Server
|
@@ -0,0 +1,18 @@
|
|
1
|
+
all_libs= {}
|
2
|
+
|
3
|
+
expose= (name, as)->
|
4
|
+
all_libs[as]= lib= require(name)
|
5
|
+
exports[as]= lib
|
6
|
+
|
7
|
+
# Listing of all the libraries
|
8
|
+
|
9
|
+
expose 'jquery', '$'
|
10
|
+
expose 'backbone', 'Backbone'
|
11
|
+
expose 'hogan', 'Hogan'
|
12
|
+
expose 'underscore', '_'
|
13
|
+
|
14
|
+
# Helper to assign all libs
|
15
|
+
exports.globalize= (ctx=window)->
|
16
|
+
for own name, lib of all_libs
|
17
|
+
ctx[name]= lib unless ctx[name]?
|
18
|
+
this
|