Skip to content

Commit

Permalink
Updates! Bootstrap, Font Awesome, Strong Parameters, Gon, Quiet Assets!
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Davey committed Oct 6, 2012
1 parent ab0a8f8 commit 2b33fe2
Show file tree
Hide file tree
Showing 11 changed files with 51 additions and 52 deletions.
1 change: 1 addition & 0 deletions Gemfile
Expand Up @@ -2,3 +2,4 @@ source 'https://rubygems.org'

# Specify your gem's dependencies in app_drone.gemspec
gemspec
gem 'rake'
34 changes: 6 additions & 28 deletions lib/app_drone/drones/bootstrap/bootstrap.rb
Expand Up @@ -4,42 +4,20 @@ class Bootstrap < Drone
desc "Installs Twitter Bootstrap stylesheets and javascripts"
category :ui

#param :vendor, :boolean, info: 'place a local copy of the files into the repo for customization'

param :responsive, :boolean, info: 'include responsive grid'
param :font_awesome, :boolean, info: 'use font-awesome for icons', default: true
param :font_awesome, :boolean, info: 'use font-awesome for icons'#, default: true
param :javascript_plugins, :choose_many, info: 'pipeline javascript plugin files', default: [], choices: %w(modal dropdown scrollspy tab tooltip popover alert button collapse carousel typeahead)

depends_on :bundle, :stylesheet, :javascript
pairs_with :flair

def align
bundle.add 'compass_twitter_bootstrap', git: 'git://github.com/vwall/compass-twitter-bootstrap.git', group: :assets
false ? align_vendor : align_bundle
flair!
end

def execute
false ? execute_vendor : execute_bundle
end

private
def align_vendor
# TODO import paths for stylesheet (different to bundle)
param(:javascript_plugins).each { |p| javascript.pipeline "bootstrap-#{p}" }
end

def align_bundle
stylesheet.import param(:font_awesome) ? 'compass_twitter_bootstrap_awesome' : 'compass_twitter_bootstrap'
stylesheet.import 'compass_twitter_bootstrap_responsive' if param(:responsive)
bundle.add 'bootstrap-sass', group: :assets
bundle.add 'font-awesome-sass-rails', group: :assets if param(:font_awesome)
stylesheet.import 'bootstrap'
stylesheet.import 'font-awesome' if param(:font_awesome)
param(:javascript_plugins).each { |p| javascript.pipeline "bootstrap-#{p}" }
end

def execute_vendor
# TODO pull files from git
end

def execute_bundle
flair!
end

end
Expand Down
2 changes: 1 addition & 1 deletion lib/app_drone/drones/git/commit.erb
@@ -1,3 +1,3 @@
git :init
git add: '.'
git commit: "-m \"AppDrone: #{app_name}\""
git commit: "-m \"#{app_name} | http://drone.bz\""
3 changes: 2 additions & 1 deletion lib/app_drone/drones/haml_view/application_haml.erb
Expand Up @@ -9,7 +9,8 @@ haml_index_path = File.join %w(app views layouts application.html.haml)
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
= csrf_meta_tags

<% if pair?(:gon) %> = include_gon
<% end %>
%body{:class => controller_name}
= yield
HAML
1 change: 1 addition & 0 deletions lib/app_drone/drones/haml_view/haml_view.rb
Expand Up @@ -4,6 +4,7 @@ class HamlView < Drone

category :views
depends_on :bundle
pairs_with :gon

def align
bundle.add 'haml-rails'
Expand Down
@@ -1,7 +1,7 @@
module AppDrone
class Html5PlaceholderShim < Drone
desc "HTML5 placeholder support for older browsers"
category :ui_shim
category :shim

depends_on :javascript, :git

Expand Down
3 changes: 2 additions & 1 deletion lib/app_drone/drones/slim_view/application_slim.erb
Expand Up @@ -9,7 +9,8 @@ html
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
= csrf_meta_tags

<% if pair?(:gon) %> = include_gon
<% end %>
body class=controller_name
= yield
SLIM
1 change: 1 addition & 0 deletions lib/app_drone/drones/slim_view/slim_view.rb
Expand Up @@ -4,6 +4,7 @@ class SlimView < Drone
# TODO integration with rack useragent for browser-detection
category :base
depends_on :bundle
pairs_with :gon

def align
bundle.add 'slim-rails'
Expand Down
4 changes: 2 additions & 2 deletions lib/app_drone/template.rb
Expand Up @@ -20,7 +20,7 @@ def hook(klass)
raise "No such drone: #{klass}" unless i_klass = @drones[klass]
return i_klass
end

def leftover_directives; @directives[:leftovers] end
def generator_methods; @directives.keys - [:leftovers] end
def overridable_generator_methods; [:gemfile] end
Expand All @@ -38,7 +38,7 @@ def do_finally!(d,drone)
def notify!(notice,drone)
@drone_notices[drone.class] << notice.gsub("'","\\'").gsub('"','\\"') # escape quotes
end

def render!
return if @rendered
DependencyChain.check_dependencies!(drone_classes)
Expand Down
50 changes: 33 additions & 17 deletions out.rb
Expand Up @@ -25,7 +25,9 @@ def gemfile
# ---
@generator.gem 'therubyracer'
@generator.gem 'compass-rails'
@generator.gem 'haml-rails'
@generator.gem 'slim-rails'
@generator.gem 'high_voltage'
@generator.gem 'quiet_assets', :group=>:development

run_bundle
@generator.options = @generator.options.dup
Expand Down Expand Up @@ -72,30 +74,44 @@ def leftovers
SASS

# ---
# AppDrone::Cleanup
# ---
@generator.remove_file File.join %w(public index.html)
@generator.remove_file File.join %w(app assets images rails.png)
@generator.remove_file File.join %w(README.rdoc)

# ---
# AppDrone::HamlView
# AppDrone::SlimView
# ---
erb_index_path = File.join %w(app views layouts application.html.erb)
@generator.remove_file(erb_index_path)
haml_index_path = File.join %w(app views layouts application.html.haml)
@generator.create_file haml_index_path, <<-HAML
!!!
%html
%head
%title #{app_name}
slim_index_path = File.join %w(app views layouts application.html.slim)
@generator.create_file slim_index_path, <<-SLIM
doctype 5
html
head
title #{app_name}
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
= csrf_meta_tags
%body{:class => controller_name}
body class=controller_name
= yield
HAML
SLIM

# ---
# AppDrone::HighVoltage
# ---
FileUtils.mkpath 'app/views/pages'

# ---
# AppDrone::Flair
# ---
@generator.create_file 'app/views/pages/flair.html.slim', <<-FLAIR
h1 Flair!
FLAIR

# ---
# AppDrone::Cleanup
# ---
@generator.remove_file File.join %w(public index.html)
@generator.remove_file File.join %w(app assets images rails.png)
@generator.remove_file File.join %w(README.rdoc)


# This should be removed when the database drone is installed
Expand Down
2 changes: 1 addition & 1 deletion test/test_app_drone.rb
Expand Up @@ -23,7 +23,7 @@ def test_dependants
def test_basic_behavior
template = Template.new
add_defaults_to_template(template)

template.add :quiet_assets
# template.add :new_drone_to_test

template.render_to_file
Expand Down

0 comments on commit 2b33fe2

Please sign in to comment.