app_drone 0.8.6 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +54 -39
- data/lib/app_drone/dependency_chain.rb +8 -1
- data/lib/app_drone/drone.rb +9 -0
- data/lib/app_drone/drones/carrierwave/carrierwave.rb +20 -0
- data/lib/app_drone/drones/chronic/chronic.rb +13 -0
- data/lib/app_drone/drones/{easy_roles_45/easy_roles_45.rb~ → easy_rolez/easy_rolez.rb} +1 -1
- data/lib/app_drone/drones/factory_girl/factory_girl.rb +13 -0
- data/lib/app_drone/drones/has_scope/has_scope.rb +13 -0
- data/lib/app_drone/drones/nested_form/nested_form.rb +14 -0
- data/lib/app_drone/drones/new_relic/new_relic.rb +13 -0
- data/lib/app_drone/drones/nifty_generatorz/nifty_config.erb +1 -0
- data/lib/app_drone/drones/nifty_generatorz/nifty_generatorz.rb +19 -0
- data/lib/app_drone/drones/remotipart/remotipart.rb +14 -0
- data/lib/app_drone/drones/responderz/install.erb +1 -0
- data/lib/app_drone/drones/responderz/responderz.rb +17 -0
- data/lib/app_drone/drones/rspec/install.erb +1 -0
- data/lib/app_drone/drones/rspec/rspec.rb +17 -0
- data/lib/app_drone/drones/simple_cov/install.erb +5 -0
- data/lib/app_drone/drones/simple_cov/rspec_integration.erb +1 -0
- data/lib/app_drone/drones/simple_cov/simple_cov.rb +20 -0
- data/lib/app_drone/drones/timecop/timecop.rb +13 -0
- data/lib/app_drone/drones/will_paginate/will_paginate.rb +15 -0
- data/lib/app_drone/template.erb +14 -0
- data/lib/app_drone/template.rb +13 -4
- data/lib/app_drone/version.rb +1 -1
- data/out.rb +28 -3
- data/scraps/App admin +7 -0
- data/scraps/TODO +32 -0
- data/scraps/blank drone +15 -0
- data/test/test_app_drone.rb +8 -1
- metadata +26 -79
- data/Gemfile~ +0 -4
- data/README.md~ +0 -342
- data/Rakefile~ +0 -11
- data/TODO~ +0 -1
- data/app_drone.gemspec~ +0 -20
- data/lib/app_drone/dependency.rb~ +0 -5
- data/lib/app_drone/dependency_chain.rb~ +0 -55
- data/lib/app_drone/drone.rb~ +0 -121
- data/lib/app_drone/drones/bootstrap/bootstrap.rb~ +0 -46
- data/lib/app_drone/drones/bootstrap/flair.html.slim.erb~ +0 -7
- data/lib/app_drone/drones/bundle/bundle.rb~ +0 -22
- data/lib/app_drone/drones/bundle/gem.rb~ +0 -23
- data/lib/app_drone/drones/bundle/gem_entries.erb~ +0 -6
- data/lib/app_drone/drones/bundle/gems.rb~ +0 -23
- data/lib/app_drone/drones/cancan/ability.erb~ +0 -1
- data/lib/app_drone/drones/cancan/cancan.rb~ +0 -19
- data/lib/app_drone/drones/chosen/chosen.rb~ +0 -16
- data/lib/app_drone/drones/chosen/showcase.html.slim~ +0 -0
- data/lib/app_drone/drones/cleanup/cleanup.rb~ +0 -9
- data/lib/app_drone/drones/easy_roles_45/easy_roles.rb~ +0 -13
- data/lib/app_drone/drones/easy_roles_45/easy_roles_45.rb +0 -13
- data/lib/app_drone/drones/easy_roles_45/easy_rolez.rb~ +0 -13
- data/lib/app_drone/drones/ember/ember.rb~ +0 -21
- data/lib/app_drone/drones/ember/ember_js.rb~ +0 -21
- data/lib/app_drone/drones/ember/install.erb~ +0 -3
- data/lib/app_drone/drones/flair/flair.rb~ +0 -39
- data/lib/app_drone/drones/flair/flair_page.erb~ +0 -8
- data/lib/app_drone/drones/flair/showcase.rb~ +0 -27
- data/lib/app_drone/drones/flair/showcase_page.erb~ +0 -11
- data/lib/app_drone/drones/gritter/flair.html.slim.erb~ +0 -8
- data/lib/app_drone/drones/gritter/gritter.rb~ +0 -21
- data/lib/app_drone/drones/gritter/install.erb~ +0 -1
- data/lib/app_drone/drones/high_voltage/create_pages_directory.erb~ +0 -1
- data/lib/app_drone/drones/high_voltage/high_voltage.rb~ +0 -15
- data/lib/app_drone/drones/javascript/application_coffee.erb~ +0 -15
- data/lib/app_drone/drones/javascript/javascript.rb~ +0 -26
- data/lib/app_drone/drones/javascript/javascripts.rb~ +0 -23
- data/lib/app_drone/drones/letter_opener/development_delivery_method.erb~ +0 -1
- data/lib/app_drone/drones/letter_opener/development_delivery_method.rb~ +0 -1
- data/lib/app_drone/drones/letter_opener/letter_opener.rb~ +0 -17
- data/lib/app_drone/drones/migrant/migrant.rb~ +0 -13
- data/lib/app_drone/drones/ranked_model/ranked_model.rb~ +0 -13
- data/lib/app_drone/drones/simple_form/install.erb~ +0 -1
- data/lib/app_drone/drones/simple_form/simple_form.rb~ +0 -21
- data/lib/app_drone/drones/slim_view/application_slim.erb~ +0 -15
- data/lib/app_drone/drones/slim_view/slim_view.rb~ +0 -16
- data/lib/app_drone/drones/slim_view/slim_views.rb~ +0 -14
- data/lib/app_drone/drones/sorcery/configure.erb~ +0 -1
- data/lib/app_drone/drones/sorcery/sorcery.rb~ +0 -18
- data/lib/app_drone/drones/squeel/initializer.erb~ +0 -1
- data/lib/app_drone/drones/squeel/squeel.rb~ +0 -19
- data/lib/app_drone/drones/stylesheet/application_sass.erb~ +0 -11
- data/lib/app_drone/drones/stylesheet/stylesheet.rb~ +0 -26
- data/lib/app_drone/drones/stylesheet/stylesheets.rb~ +0 -30
- data/lib/app_drone/drones/underscore/flair.html.slim.erb~ +0 -25
- data/lib/app_drone/drones/underscore/underscore.rb~ +0 -18
- data/lib/app_drone/drones/zzz/factory_girl/factory_girl.rb +0 -13
- data/lib/app_drone/drones/zzz/factory_girl/factory_girl.rb~ +0 -13
- data/lib/app_drone/drones/zzz/git/git.rb~ +0 -8
- data/lib/app_drone/drones/zzz/guard/guard.rb~ +0 -15
- data/lib/app_drone/drones/zzz/ranked_model/ranked_model.rb +0 -9
- data/lib/app_drone/drones/zzz/ranked_model/ranked_model.rb~ +0 -9
- data/lib/app_drone/drones/zzz/rspec/rspec.rb~ +0 -13
- data/lib/app_drone/integration.rb~ +0 -48
- data/lib/app_drone/object_extensions.rb~ +0 -17
- data/lib/app_drone/template.erb~ +0 -33
- data/lib/app_drone/template.rb~ +0 -54
- data/lib/app_drone/version.rb~ +0 -3
- data/lib/app_drone.rb~ +0 -16
- data/out.rb~ +0 -161
- data/test/app_drone_test.rb~ +0 -19
- data/test/test_app_drone.rb~ +0 -74
@@ -1,21 +0,0 @@
|
|
1
|
-
# Complete
|
2
|
-
module AppDrone
|
3
|
-
class SimpleForm < Drone
|
4
|
-
desc "Installs SimpleForm, with optional Country Select and automatic Twitter Bootstrap integration"
|
5
|
-
category :pages
|
6
|
-
|
7
|
-
depends_on :bundle
|
8
|
-
pairs_with :bootstrap
|
9
|
-
|
10
|
-
param :add_country_select, :boolean, info: 'Add country_select for listing countries', default: true
|
11
|
-
|
12
|
-
def align
|
13
|
-
bundle.add 'simple_form'
|
14
|
-
bundle.add 'country_select' if param(:add_country_select)
|
15
|
-
end
|
16
|
-
|
17
|
-
def execute
|
18
|
-
do! :install
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
erb_index_path = File.join %w(app views layouts application.html.erb)
|
2
|
-
@generator.remove_file(erb_index_path)
|
3
|
-
slim_index_path = File.join %w(app views layouts application.html.slim)
|
4
|
-
@generator.create_file slim_index_path, <<-SLIM
|
5
|
-
doctype 5
|
6
|
-
html
|
7
|
-
head
|
8
|
-
title #{app_name}
|
9
|
-
= stylesheet_link_tag 'application', media: 'all'
|
10
|
-
= javascript_include_tag 'application'
|
11
|
-
= csrf_meta_tags
|
12
|
-
|
13
|
-
body class=controller_name
|
14
|
-
= yield
|
15
|
-
SLIM
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class SlimView < Drone
|
3
|
-
desc "Sets up application.html.slim with shiny goodness"
|
4
|
-
# TODO integration with rack useragent for browser-detection
|
5
|
-
|
6
|
-
depends_on :bundle
|
7
|
-
|
8
|
-
def align
|
9
|
-
bundle.add 'slim-rails'
|
10
|
-
end
|
11
|
-
|
12
|
-
def execute
|
13
|
-
do! :application_slim
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
generate sorcery:install
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class Sorcery < Drone
|
3
|
-
desc "No-frills user authentication"
|
4
|
-
category :auth
|
5
|
-
|
6
|
-
depends_on :bundle
|
7
|
-
|
8
|
-
param :configure, :boolean, info: 'generate core migration and User model'
|
9
|
-
|
10
|
-
def align
|
11
|
-
bundle.add 'sorcery'
|
12
|
-
end
|
13
|
-
|
14
|
-
def execute
|
15
|
-
do! :configure if param(:configure)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
generate 'squeel:initializer'
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class Squeel < Drone
|
3
|
-
desc "Better ActiveRecord queries and relations"
|
4
|
-
category :model
|
5
|
-
|
6
|
-
param :generate_initializer, :boolean, info: 'customize Squeel functionality'
|
7
|
-
|
8
|
-
depends_on :bundle
|
9
|
-
|
10
|
-
def align
|
11
|
-
bundle.add 'squeel'
|
12
|
-
end
|
13
|
-
|
14
|
-
def execute
|
15
|
-
do! :initializer if param(:generate_initializer)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
@css_asset_path = File.join %w(app assets stylesheets application.css)
|
2
|
-
@generator.remove_file(@css_asset_path)
|
3
|
-
@sass_asset_path = File.join %w(app assets stylesheets application.css.sass)
|
4
|
-
|
5
|
-
@generator.create_file @sass_asset_path, <<-SASS
|
6
|
-
<% pipeline_requires.each { |r| %>/*= require <%= r %> */<% } %><% unless pipeline_requires.empty? %>
|
7
|
-
<% end%>/*= require_self */
|
8
|
-
|
9
|
-
<% imports.each { |i| %>@import '<%= i %>'
|
10
|
-
<% } %>
|
11
|
-
SASS
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class Stylesheet < Drone
|
3
|
-
desc "Generates application.css.sass with manifest options and imports"
|
4
|
-
depends_on :bundle
|
5
|
-
|
6
|
-
attr_accessor :pipeline_requires, :imports
|
7
|
-
def pipeline(r); self.pipeline_requires << r end
|
8
|
-
def import(i); self.imports << i end
|
9
|
-
|
10
|
-
def setup
|
11
|
-
self.pipeline_requires = []
|
12
|
-
self.imports = []
|
13
|
-
end
|
14
|
-
|
15
|
-
def align
|
16
|
-
bundle.add 'therubyracer'
|
17
|
-
bundle.add 'compass-rails'
|
18
|
-
self.import 'compass'
|
19
|
-
end
|
20
|
-
|
21
|
-
def execute
|
22
|
-
do! :application_sass
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# Incomplete
|
2
|
-
module AppDrone
|
3
|
-
class Stylesheet < Drone
|
4
|
-
desc "Generates application.css.sass with manifest options and imports"
|
5
|
-
# TODO are manifests necessary? Favor @import
|
6
|
-
|
7
|
-
attr_accessor :requires, :imports
|
8
|
-
|
9
|
-
def setup
|
10
|
-
self.requires = []
|
11
|
-
self.imports = []
|
12
|
-
(self >> Gems).add 'compass-rails'
|
13
|
-
self.add_import 'compass'
|
14
|
-
end
|
15
|
-
|
16
|
-
def add_require(r); self.requires << r end
|
17
|
-
def add_import(i); self.imports << i end
|
18
|
-
|
19
|
-
def align
|
20
|
-
(self >> Gems).add 'therubyracer'
|
21
|
-
end
|
22
|
-
|
23
|
-
def execute
|
24
|
-
do! :application_sass
|
25
|
-
# TODO currently using .scss and not .sass, switch to the cleaner syntax
|
26
|
-
# TODO render css utils (or make this a separate integration)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
button#underscoreTrigger Count to 10
|
2
|
-
span#underscoreFeedback style="color: green"
|
3
|
-
|
4
|
-
javascript:
|
5
|
-
$(function() {
|
6
|
-
$('#underscoreTrigger').click(function() {
|
7
|
-
var numbers = [1,2,3,4,5,6,7,8,9,10];
|
8
|
-
var delay = 300;
|
9
|
-
var last = _.last(numbers);
|
10
|
-
var feedback = $('#underscoreFeedback');
|
11
|
-
|
12
|
-
feedback.empty();
|
13
|
-
|
14
|
-
_.forEach(numbers, function(i) {
|
15
|
-
setTimeout(function() {
|
16
|
-
feedback.append(i);
|
17
|
-
feedback.append(i == last ? '!' : ' ');
|
18
|
-
},delay*(i-1));
|
19
|
-
});
|
20
|
-
|
21
|
-
setTimeout(function() { feedback.fadeOut(); }, delay*last);
|
22
|
-
|
23
|
-
});
|
24
|
-
});
|
25
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class Underscore < Drone
|
3
|
-
desc "Adds the underscore.js library to your app"
|
4
|
-
category :ui
|
5
|
-
|
6
|
-
depends_on :bundle
|
7
|
-
|
8
|
-
def align
|
9
|
-
bundle.add 'underscore-rails'
|
10
|
-
javascript.pipeline 'underscore'
|
11
|
-
flair!
|
12
|
-
end
|
13
|
-
|
14
|
-
def execute
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
AppDrone::Param = Struct.new('Param',:name,:type,:options)
|
2
|
-
|
3
|
-
class AppDrone::Integration
|
4
|
-
# align: set up variables, pass off to other scripts
|
5
|
-
# execute: actual install process
|
6
|
-
|
7
|
-
# New
|
8
|
-
def initialize(template,*params)
|
9
|
-
@template = template
|
10
|
-
@params = params.first # weird.. no idea why
|
11
|
-
setup
|
12
|
-
end
|
13
|
-
|
14
|
-
# DSL
|
15
|
-
def ^; @template end
|
16
|
-
def >>(klass); @template.hook(klass); end
|
17
|
-
|
18
|
-
# Expected implementations
|
19
|
-
def align; end
|
20
|
-
def execute; end
|
21
|
-
|
22
|
-
# Optional implementations
|
23
|
-
def setup; end
|
24
|
-
|
25
|
-
def render(partial)
|
26
|
-
template_path = "./integrations/#{self.class.underscore}/#{partial}.erb"
|
27
|
-
snippet = ERB.new File.read(template_path)
|
28
|
-
output = snippet.result(binding)
|
29
|
-
output = "# --- \n# #{self.class.to_s}\n# ---\n" + output if true
|
30
|
-
return output
|
31
|
-
end
|
32
|
-
|
33
|
-
def do!(partial)
|
34
|
-
@template.do! render(partial)
|
35
|
-
end
|
36
|
-
|
37
|
-
# DSL: Integration-specific options
|
38
|
-
attr_accessor :params
|
39
|
-
class << self
|
40
|
-
def param(name, type, *options)
|
41
|
-
(@params ||= []) << Param.new(name, type, options)
|
42
|
-
end
|
43
|
-
def params
|
44
|
-
@params
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class Class
|
2
|
-
def descendants
|
3
|
-
ObjectSpace.each_object(Class).select { |klass| klass < self }
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
7
|
-
class String
|
8
|
-
def blank?
|
9
|
-
self == ''
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Symbol
|
14
|
-
def to_app_drone_class
|
15
|
-
('AppDrone::' + self.to_s.classify).constantize
|
16
|
-
end
|
17
|
-
end
|
data/lib/app_drone/template.erb~
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
class AppBuilder < Rails::AppBuilder
|
2
|
-
include Thor::Actions
|
3
|
-
include Thor::Shell
|
4
|
-
|
5
|
-
# Express app templating for Rails
|
6
|
-
# ------------------------------------
|
7
|
-
# USAGE:
|
8
|
-
# 1. run: `rails new app_name --builder=path/to/builder.rb` (URI's work here too)
|
9
|
-
# 2. ???
|
10
|
-
# 3. PROFIT!
|
11
|
-
|
12
|
-
def test
|
13
|
-
return
|
14
|
-
# TODO
|
15
|
-
# skips test framework, but we can probably just bastardize the options in the same way as with :skip_bundle
|
16
|
-
# either make `test` build the actual directories etc., or use a script
|
17
|
-
# either way, this method is stupid.
|
18
|
-
end
|
19
|
-
|
20
|
-
<% overridden_generator_methods.each do |m| %>
|
21
|
-
def <%= m %>
|
22
|
-
super
|
23
|
-
<%= @directives[m].join("\n") %>
|
24
|
-
end
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
def leftovers
|
28
|
-
<%= leftover_directives.join("\n") %>
|
29
|
-
rake 'db:migrate'
|
30
|
-
say "She's all yours, sparky!\n\n", :green
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
data/lib/app_drone/template.rb~
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
module AppDrone
|
2
|
-
class Template
|
3
|
-
def initialize; @drones = {}; @directives = {} end
|
4
|
-
|
5
|
-
def add(ref,*params)
|
6
|
-
klass = ref.is_a?(Class)? ref : ('AppDrone::' + ref.to_s.classify).constantize
|
7
|
-
@drones[klass] = klass.new(self, params.first) # no idea why `.first` is required..
|
8
|
-
end
|
9
|
-
|
10
|
-
def drone_objects; @drones.values end
|
11
|
-
def drone_classes; @drones.keys end
|
12
|
-
def hook?(klass); !@drones[klass].nil? end
|
13
|
-
def hook(klass)
|
14
|
-
raise "No such drone: #{klass}" unless i_klass = @drones[klass]
|
15
|
-
return i_klass
|
16
|
-
end
|
17
|
-
|
18
|
-
def leftover_directives; @directives[:leftovers] || [] end
|
19
|
-
def overridden_generator_methods; @directives.keys - [:leftovers] end
|
20
|
-
|
21
|
-
def do!(d,drone);
|
22
|
-
generator_method = drone.class.generator_method || :leftovers
|
23
|
-
(@directives[generator_method] ||= []) << d
|
24
|
-
end
|
25
|
-
|
26
|
-
def render!
|
27
|
-
return if @rendered
|
28
|
-
DependencyChain.check_dependencies!(drone_classes)
|
29
|
-
drone_objects.map(&:align)
|
30
|
-
drone_objects.map(&:execute)
|
31
|
-
@rendered = true
|
32
|
-
end
|
33
|
-
|
34
|
-
def render_with_wrapper
|
35
|
-
render!
|
36
|
-
template_path = '/template.erb'
|
37
|
-
full_path = File.dirname(__FILE__) + template_path
|
38
|
-
snippet = ERB.new File.read(full_path)
|
39
|
-
return snippet.result(binding)
|
40
|
-
end
|
41
|
-
|
42
|
-
def render_to_screen
|
43
|
-
render!
|
44
|
-
puts render_with_wrapper
|
45
|
-
end
|
46
|
-
|
47
|
-
def render_to_file
|
48
|
-
render!
|
49
|
-
File.open('out.rb','w+') do |f|
|
50
|
-
f.write(render_with_wrapper)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
data/lib/app_drone/version.rb~
DELETED
data/lib/app_drone.rb~
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
require 'erb'
|
3
|
-
require 'active_support/inflector'
|
4
|
-
|
5
|
-
# require lib files
|
6
|
-
lib_files = %w(version dependency_chain template drone object_extensions)
|
7
|
-
lib_files.each { |f| require "app_drone/#{f}" }
|
8
|
-
|
9
|
-
# require all drones in app_drone/drones, exclude 'zzz' folder
|
10
|
-
drone_paths = Pathname.new(File.dirname(__FILE__) + '/app_drone/drones')
|
11
|
-
drones = drone_paths.children.select(&:directory?).map { |path| path.split.last.to_s }
|
12
|
-
drones -= ['zzz']
|
13
|
-
drones.each { |d| require "app_drone/drones/#{d}/#{d}" }
|
14
|
-
|
15
|
-
module AppDrone
|
16
|
-
end
|
data/out.rb~
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
class AppBuilder < Rails::AppBuilder
|
2
|
-
include Thor::Actions
|
3
|
-
include Thor::Shell
|
4
|
-
|
5
|
-
# Express app templating for Rails
|
6
|
-
# ------------------------------------
|
7
|
-
# USAGE:
|
8
|
-
# 1. run: `rails new app_name --builder=path/to/builder.rb` (URI's work here too)
|
9
|
-
# 2. ???
|
10
|
-
# 3. PROFIT!
|
11
|
-
|
12
|
-
def test
|
13
|
-
return
|
14
|
-
# TODO
|
15
|
-
# skips test framework, but we can probably just bastardize the options in the same way as with :skip_bundle
|
16
|
-
# either make `test` build the actual directories etc., or use a script
|
17
|
-
# either way, this method is stupid.
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
def gemfile
|
22
|
-
super
|
23
|
-
# ---
|
24
|
-
# AppDrone::Bundle
|
25
|
-
# ---
|
26
|
-
@generator.gem 'therubyracer'
|
27
|
-
@generator.gem 'compass-rails'
|
28
|
-
@generator.gem 'slim-rails'
|
29
|
-
@generator.gem 'high_voltage'
|
30
|
-
@generator.gem 'simple_form'
|
31
|
-
@generator.gem 'country_select'
|
32
|
-
@generator.gem 'compass_twitter_bootstrap', :git=>"git://github.com/vwall/compass-twitter-bootstrap.git", :group=>:assets
|
33
|
-
@generator.gem 'chosen-rails'
|
34
|
-
@generator.gem 'ember-rails'
|
35
|
-
|
36
|
-
run_bundle
|
37
|
-
@generator.options = @generator.options.dup
|
38
|
-
@generator.options[:skip_bundle] = true
|
39
|
-
@generator.options.freeze
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
def leftovers
|
45
|
-
# ---
|
46
|
-
# AppDrone::Javascript
|
47
|
-
# ---
|
48
|
-
js_asset_path = File.join %w(app assets javascripts application.js)
|
49
|
-
@generator.remove_file(js_asset_path)
|
50
|
-
@coffee_asset_path = File.join %w(app assets javascripts application.js.coffee)
|
51
|
-
@generator.create_file @coffee_asset_path, <<-COFFEE
|
52
|
-
//= require jquery
|
53
|
-
//= require jquery_ujs
|
54
|
-
//= require init
|
55
|
-
//= require bootstrap-modal
|
56
|
-
//= require bootstrap-transition
|
57
|
-
//= require chosen-jquery
|
58
|
-
//= require ember
|
59
|
-
//= require ember/#{app_name}.js
|
60
|
-
|
61
|
-
COFFEE
|
62
|
-
|
63
|
-
@coffee_init_path = File.join %w(app assets javascripts init.js.coffee)
|
64
|
-
@generator.create_file @coffee_init_path, <<-COFFEE
|
65
|
-
$(document).ready ->
|
66
|
-
$('.chzn-select').chosen();
|
67
|
-
|
68
|
-
|
69
|
-
COFFEE
|
70
|
-
|
71
|
-
# ---
|
72
|
-
# AppDrone::Stylesheet
|
73
|
-
# ---
|
74
|
-
@css_asset_path = File.join %w(app assets stylesheets application.css)
|
75
|
-
@generator.remove_file(@css_asset_path)
|
76
|
-
@sass_asset_path = File.join %w(app assets stylesheets application.css.sass)
|
77
|
-
|
78
|
-
@generator.create_file @sass_asset_path, <<-SASS
|
79
|
-
/*= require chosen */
|
80
|
-
/*= require_self */
|
81
|
-
|
82
|
-
@import 'compass'
|
83
|
-
@import 'compass_twitter_bootstrap_awesome'
|
84
|
-
@import 'compass_twitter_bootstrap_responsive'
|
85
|
-
|
86
|
-
SASS
|
87
|
-
|
88
|
-
# ---
|
89
|
-
# AppDrone::SlimView
|
90
|
-
# ---
|
91
|
-
erb_index_path = File.join %w(app views layouts application.html.erb)
|
92
|
-
@generator.remove_file(erb_index_path)
|
93
|
-
slim_index_path = File.join %w(app views layouts application.html.slim)
|
94
|
-
@generator.create_file slim_index_path, <<-SLIM
|
95
|
-
doctype 5
|
96
|
-
html
|
97
|
-
head
|
98
|
-
title #{app_name}
|
99
|
-
= stylesheet_link_tag 'application', media: 'all'
|
100
|
-
= javascript_include_tag 'application'
|
101
|
-
= csrf_meta_tags
|
102
|
-
|
103
|
-
body class=controller_name
|
104
|
-
= yield
|
105
|
-
SLIM
|
106
|
-
|
107
|
-
# ---
|
108
|
-
# AppDrone::HighVoltage
|
109
|
-
# ---
|
110
|
-
FileUtils.mkpath 'app/views/pages'
|
111
|
-
|
112
|
-
# ---
|
113
|
-
# AppDrone::Flair
|
114
|
-
# ---
|
115
|
-
@generator.create_file 'app/views/pages/flair.html.slim', <<-FLAIR
|
116
|
-
h1 Flair!
|
117
|
-
|
118
|
-
|
119
|
-
h3 Bootstrap
|
120
|
-
|
121
|
-
.btn-group
|
122
|
-
a.btn.btn-primary.btn-large Shiny!
|
123
|
-
|
124
|
-
a.btn.btn-large
|
125
|
-
i.icon-heart
|
126
|
-
| with Font Awesome!
|
127
|
-
|
128
|
-
|
129
|
-
h3 Chosen
|
130
|
-
|
131
|
-
select.chzn-select
|
132
|
-
option One
|
133
|
-
option Two
|
134
|
-
option Three
|
135
|
-
|
136
|
-
FLAIR
|
137
|
-
|
138
|
-
# ---
|
139
|
-
# AppDrone::Cleanup
|
140
|
-
# ---
|
141
|
-
@generator.remove_file File.join %w(public index.html)
|
142
|
-
@generator.remove_file File.join %w(app assets images rails.png)
|
143
|
-
@generator.remove_file File.join %w(README.rdoc)
|
144
|
-
|
145
|
-
# ---
|
146
|
-
# AppDrone::SimpleForm
|
147
|
-
# ---
|
148
|
-
generate "simple_form:install --bootstrap"
|
149
|
-
|
150
|
-
# ---
|
151
|
-
# AppDrone::Ember
|
152
|
-
# ---
|
153
|
-
|
154
|
-
generate "ember:bootstrap"
|
155
|
-
|
156
|
-
|
157
|
-
rake 'db:migrate'
|
158
|
-
say "She's all yours, sparky!\n\n", :green
|
159
|
-
end
|
160
|
-
|
161
|
-
end
|
data/test/app_drone_test.rb~
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'app_drone'
|
3
|
-
|
4
|
-
class AppDroneTest < Test::Unit::TestCase
|
5
|
-
def test_english_hello
|
6
|
-
assert_equal "hello world",
|
7
|
-
Hola.hi("english")
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_any_hello
|
11
|
-
assert_equal "hello world",
|
12
|
-
Hola.hi("ruby")
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_spanish_hello
|
16
|
-
assert_equal "hola mundo",
|
17
|
-
Hola.hi("spanish")
|
18
|
-
end
|
19
|
-
end
|