app_drone 0.8.6 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|