app_drone 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +22 -12
- data/lib/app_drone/drone.rb +2 -2
- data/lib/app_drone/drones/devise/devise.rb +17 -0
- data/lib/app_drone/drones/devise/install.erb +1 -0
- data/lib/app_drone/drones/{easy_rolez/easy_rolez.rb → easy_roles/easy_roles.rb} +1 -1
- data/lib/app_drone/drones/{nifty_generatorz → nifty_generators}/nifty_config.erb +0 -0
- data/lib/app_drone/drones/{nifty_generatorz/nifty_generatorz.rb → nifty_generators/nifty_generators.rb} +1 -1
- data/lib/app_drone/drones/{responderz → responders}/install.erb +0 -0
- data/lib/app_drone/drones/{responderz/responderz.rb → responders/responders.rb} +1 -1
- data/lib/app_drone/drones/stateflow/stateflow.rb +13 -0
- data/lib/app_drone/drones/whenever/whenever.rb +17 -0
- data/lib/app_drone/drones/whenever/wheneverize.erb +1 -0
- data/lib/app_drone/drones/zzz/git/fetch.erb +6 -0
- data/lib/app_drone/drones/zzz/git/git.rb +24 -3
- data/lib/app_drone/drones/zzz/html5_placeholder_shim/copy_to_assets.erb +5 -0
- data/lib/app_drone/drones/zzz/html5_placeholder_shim/html5_placeholder_shim.rb +18 -0
- data/lib/app_drone/object_extensions.rb +1 -1
- data/lib/app_drone/template.rb +1 -1
- data/lib/app_drone/version.rb +1 -1
- data/out.rb +10 -14
- data/test/test_app_drone.rb +2 -2
- metadata +17 -11
- data/scraps/App admin +0 -7
- data/scraps/TODO +0 -32
data/README.md
CHANGED
@@ -272,24 +272,28 @@ AppDrone is not for everyone. It's highly opinionated about how a Rails app shou
|
|
272
272
|
- [views] **SimpleForm** with optional Country Select and automatic Twitter Bootstrap integration
|
273
273
|
- [views] **NestedForm** for managing multiple models in a single form
|
274
274
|
- [auth] **Sorcery** for no-frills user authentication
|
275
|
+
- [auth] **Devise**, a flexible authentication solution for Rails with Warden
|
275
276
|
- [auth] **CanCan** for role-based authorization
|
276
277
|
- [auth] **EasyRoles**,to add roles to your User models
|
277
278
|
- [model] **Migrant** for easier schema management
|
278
279
|
- [model] **Squeel** improving on ActiveRelation
|
279
280
|
- [model] **RankedModel** for sorting and ranking objects
|
281
|
+
- [model] **Stateflow** state machine for complex business decisions (or easy ones)
|
280
282
|
- [ui] **Chosen select** by harvestHQ
|
281
283
|
- [ui] **Bootstrap** by Twitter
|
282
284
|
- [ui] **Gritter** for jQuery growl-like notifications
|
283
285
|
- [ui] **Underscore.js** utility belt
|
286
|
+
- [ui_shim] HTML5 placeholder shim
|
284
287
|
- [ux] **Ember** (the Ember.js library)
|
285
288
|
- [controller] **Responders** from Plataformatec
|
286
289
|
- [controller] **HasScope** for mapping filters to controller actions
|
287
290
|
- [controller] **WillPaginate** with automatic Bootstrap integration
|
288
|
-
- [misc] **LetterOpener** to preview email in the browser instead of sending it
|
291
|
+
- [misc] **LetterOpener** to preview email in the browser instead of sending it
|
289
292
|
- [misc] **Chronic** for natural language date parsing
|
290
293
|
- [misc] **Timecop** - time travelling for Ruby
|
291
294
|
- [misc] **NiftyGenerators**, a collection of useful Rails generator scripts
|
292
295
|
- [misc] **NewRelic** app performance monitoring
|
296
|
+
- [misc] **Whenever** clear syntax for writing and deploying cron jobs
|
293
297
|
- [uploads] **Carrierwave** file uploading plus optional Fog cloud storage
|
294
298
|
- [uploads] **Remotipart**, for AJAX file uploads with jQuery
|
295
299
|
- [test] **RSpec** for BDD
|
@@ -298,38 +302,44 @@ AppDrone is not for everyone. It's highly opinionated about how a Rails app shou
|
|
298
302
|
|
299
303
|
### Frozen drones (currently in development)
|
300
304
|
|
301
|
-
- [base] Database
|
305
|
+
- [base] Database: rake [db:create, db:migrate] at very end of generator, options? postgres etc. (will need a dropdown option in the app for this)
|
302
306
|
- [auth] Devise
|
303
307
|
- [test] DatabaseCleaner
|
304
|
-
- [test] TimeCop
|
305
308
|
- [test] Capybara
|
306
309
|
- [test] Shoulda
|
307
310
|
- [dev] Guard
|
308
311
|
- [source-control] Git
|
309
312
|
- [requests] InheritedResources (deprecated)
|
310
313
|
- [requests] UserAgent blocking script
|
311
|
-
- [mailing] SendGrid
|
314
|
+
- [mailing] SendGrid https://github.com/stephenb/sendgrid
|
315
|
+
- [mailing] Postmark https://github.com/wildbit/postmark-rails
|
316
|
+
|
312
317
|
|
313
318
|
### Future drones (TODO - I'll get there some day!)
|
314
319
|
|
320
|
+
- [ux] Backbone integration + Skim
|
321
|
+
- [uploads] Cloudinary
|
322
|
+
- [dev] Spork
|
323
|
+
- [search] Sphinx
|
324
|
+
- [?] DelayedJob
|
325
|
+
- [?] Resque
|
326
|
+
- [?] Redis
|
327
|
+
- [?] Faye
|
328
|
+
- [test] Cucumber
|
315
329
|
- [ui] Stylesheet utils
|
316
330
|
- [ui] Calendrical for jQuery
|
317
331
|
- [ui] SlimViews: Add browser-specific classes to <html> via useragent + helpers..
|
318
332
|
- [ui] Bootstrap: vendor files rather than gem require (is this necessary? seems all variables can be customized in an external sheet as long as it's required before compass_twitter_bootstrap)
|
319
|
-
- [ui] jQuery shims
|
320
333
|
- [ui] jQuery UI (vendor + theme etc.)
|
321
|
-
- [
|
322
|
-
- [
|
323
|
-
- [
|
324
|
-
- [
|
325
|
-
- [requests] will-paginate (+bootstrap-will-paginate)
|
334
|
+
- [ui_shim] pie.htc for IE
|
335
|
+
- [ui_shim] jQuery shims
|
336
|
+
- [ui_shim] HTML5 shim/shiv for IE -- http://ejohn.org/blog/html5-shiv/ http://code.google.com/p/html5shiv/ (or use modernizr?)
|
337
|
+
- [processing] RMagick / minimagick
|
326
338
|
- [dev] rails-best-practices (and the other output gem for debugging)
|
327
339
|
- [dev] Pivotal tracker
|
328
340
|
- [dev] RailsErd
|
329
341
|
- [production] Airbrake + API Key
|
330
342
|
- [production] EngineYard for deployment
|
331
|
-
- [ux] Backbone integration + Skim
|
332
|
-
- [views] Nested Form
|
333
343
|
- [?] SeedFu
|
334
344
|
- [?] Launchy
|
335
345
|
- [?] Growl & rb-notify etc.
|
data/lib/app_drone/drone.rb
CHANGED
@@ -33,7 +33,7 @@ class Drone
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def pair?(drone_symbol)
|
36
|
-
drone_klass =
|
36
|
+
drone_klass = drone_symbol.to_app_drone_class
|
37
37
|
return @template.hook?(drone_klass)
|
38
38
|
end
|
39
39
|
|
@@ -49,7 +49,7 @@ class Drone
|
|
49
49
|
def setup; end
|
50
50
|
|
51
51
|
def render(partial, opts={})
|
52
|
-
class_name = self.class.
|
52
|
+
class_name = self.class.to_sym
|
53
53
|
template_path = "/drones/#{class_name}/#{partial}.erb"
|
54
54
|
full_path = File.dirname(__FILE__) + template_path
|
55
55
|
snippet = ERB.new File.read(full_path)
|
@@ -0,0 +1 @@
|
|
1
|
+
generate 'devise:install'
|
File without changes
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module AppDrone
|
2
|
+
class Whenever < Drone
|
3
|
+
desc "Clear syntax for writing and deploying cron jobs"
|
4
|
+
category :misc
|
5
|
+
|
6
|
+
depends_on :bundle
|
7
|
+
|
8
|
+
def align
|
9
|
+
bundle.add 'whenever', require: false
|
10
|
+
end
|
11
|
+
|
12
|
+
def execute
|
13
|
+
do! :wheneverize
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
@generator.run 'wheneverize .'
|
@@ -1,9 +1,30 @@
|
|
1
|
-
# Incomplete
|
2
1
|
module AppDrone
|
3
2
|
class Git < Drone
|
4
|
-
desc "
|
3
|
+
desc "Clone external resources into your app"
|
4
|
+
category :base
|
5
|
+
|
6
|
+
attr_accessor :fetches
|
7
|
+
|
8
|
+
def tmp_path; 'git_tmp' end
|
9
|
+
|
10
|
+
def setup
|
11
|
+
self.fetches = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch(f); self.fetches << f end
|
15
|
+
|
5
16
|
def execute
|
6
|
-
do! :
|
17
|
+
do! :fetch
|
18
|
+
end
|
19
|
+
|
20
|
+
def locate(p)
|
21
|
+
File.join '.', tmp_path, p
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def github_repo_url(repo)
|
26
|
+
"git://github.com/#{repo}.git"
|
7
27
|
end
|
28
|
+
|
8
29
|
end
|
9
30
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module AppDrone
|
2
|
+
class Html5PlaceholderShim < Drone
|
3
|
+
desc "HTML5 placeholder support for older browsers"
|
4
|
+
category :ui_shim
|
5
|
+
|
6
|
+
depends_on :javascript, :git
|
7
|
+
|
8
|
+
def align
|
9
|
+
javascript.pipeline 'jquery.html5-placeholder-shim'
|
10
|
+
git.fetch github: 'jcampbell1/jquery-html5-placeholder-shim'
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
do! :copy_to_assets
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/lib/app_drone/template.rb
CHANGED
@@ -3,7 +3,7 @@ class Template
|
|
3
3
|
def initialize; @drones = {}; @directives = {}; @drone_notices = {} end
|
4
4
|
|
5
5
|
def add(ref,*params)
|
6
|
-
klass = ref.is_a?(Class)? ref :
|
6
|
+
klass = ref.is_a?(Class)? ref : ref.to_sym.to_app_drone_class
|
7
7
|
@drones[klass] = klass.new(self, params.first) # no idea why `.first` is required..
|
8
8
|
end
|
9
9
|
|
data/lib/app_drone/version.rb
CHANGED
data/out.rb
CHANGED
@@ -27,8 +27,6 @@ class AppBuilder < Rails::AppBuilder
|
|
27
27
|
@generator.gem 'compass-rails'
|
28
28
|
@generator.gem 'slim-rails'
|
29
29
|
@generator.gem 'high_voltage'
|
30
|
-
@generator.gem 'rspec-rails', :group=>["development", "test"]
|
31
|
-
@generator.gem 'simplecov', :require=>false, :group=>:test
|
32
30
|
|
33
31
|
run_bundle
|
34
32
|
@generator.options = @generator.options.dup
|
@@ -50,6 +48,7 @@ js_asset_path = File.join %w(app assets javascripts application.js)
|
|
50
48
|
//= require jquery
|
51
49
|
//= require jquery_ujs
|
52
50
|
//= require init
|
51
|
+
//= require jquery.html5-placeholder-shim
|
53
52
|
|
54
53
|
COFFEE
|
55
54
|
|
@@ -115,23 +114,20 @@ FLAIR
|
|
115
114
|
@generator.remove_file File.join %w(README.rdoc)
|
116
115
|
|
117
116
|
# ---
|
118
|
-
# AppDrone::
|
117
|
+
# AppDrone::Git
|
119
118
|
# ---
|
120
|
-
generate "rspec:install"
|
121
119
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
# any custom configs like groups and filters can be here at a central place
|
128
|
-
end
|
129
|
-
SIMPLECOV
|
120
|
+
|
121
|
+
inside 'git_tmp' do
|
122
|
+
@generator.run 'git clone git://github.com/jcampbell1/jquery-html5-placeholder-shim.git'
|
123
|
+
end
|
124
|
+
|
130
125
|
|
131
126
|
# ---
|
132
|
-
# AppDrone::
|
127
|
+
# AppDrone::Html5PlaceholderShim
|
133
128
|
# ---
|
134
|
-
|
129
|
+
|
130
|
+
@generator.copy_file './git_tmp/jquery-html5-placeholder-shim/jquery.html5-placeholder-shim.js', 'app/assets/javascripts/jquery.html5-placeholder-shim.js'
|
135
131
|
|
136
132
|
|
137
133
|
# This should be removed when the database drone is installed
|
data/test/test_app_drone.rb
CHANGED
@@ -24,8 +24,8 @@ class AppDroneTest < Test::Unit::TestCase
|
|
24
24
|
template = Template.new
|
25
25
|
add_defaults_to_template(template)
|
26
26
|
|
27
|
-
template.add :
|
28
|
-
template.add :
|
27
|
+
template.add :git
|
28
|
+
template.add :html5_placeholder_shim
|
29
29
|
|
30
30
|
template.render_to_file
|
31
31
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app_drone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &13619840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 3.2.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *13619840
|
25
25
|
description: Give your Rails apps a kickstart
|
26
26
|
email:
|
27
27
|
- whoisdanieldavey@gmail.com
|
@@ -51,7 +51,9 @@ files:
|
|
51
51
|
- lib/app_drone/drones/chronic/chronic.rb
|
52
52
|
- lib/app_drone/drones/cleanup/cleanup.erb
|
53
53
|
- lib/app_drone/drones/cleanup/cleanup.rb
|
54
|
-
- lib/app_drone/drones/
|
54
|
+
- lib/app_drone/drones/devise/devise.rb
|
55
|
+
- lib/app_drone/drones/devise/install.erb
|
56
|
+
- lib/app_drone/drones/easy_roles/easy_roles.rb
|
55
57
|
- lib/app_drone/drones/ember/ember.rb
|
56
58
|
- lib/app_drone/drones/ember/install.erb
|
57
59
|
- lib/app_drone/drones/factory_girl/factory_girl.rb
|
@@ -70,12 +72,12 @@ files:
|
|
70
72
|
- lib/app_drone/drones/migrant/migrant.rb
|
71
73
|
- lib/app_drone/drones/nested_form/nested_form.rb
|
72
74
|
- lib/app_drone/drones/new_relic/new_relic.rb
|
73
|
-
- lib/app_drone/drones/
|
74
|
-
- lib/app_drone/drones/
|
75
|
+
- lib/app_drone/drones/nifty_generators/nifty_config.erb
|
76
|
+
- lib/app_drone/drones/nifty_generators/nifty_generators.rb
|
75
77
|
- lib/app_drone/drones/ranked_model/ranked_model.rb
|
76
78
|
- lib/app_drone/drones/remotipart/remotipart.rb
|
77
|
-
- lib/app_drone/drones/
|
78
|
-
- lib/app_drone/drones/
|
79
|
+
- lib/app_drone/drones/responders/install.erb
|
80
|
+
- lib/app_drone/drones/responders/responders.rb
|
79
81
|
- lib/app_drone/drones/rspec/install.erb
|
80
82
|
- lib/app_drone/drones/rspec/rspec.rb
|
81
83
|
- lib/app_drone/drones/simple_cov/install.erb
|
@@ -89,15 +91,21 @@ files:
|
|
89
91
|
- lib/app_drone/drones/sorcery/sorcery.rb
|
90
92
|
- lib/app_drone/drones/squeel/initializer.erb
|
91
93
|
- lib/app_drone/drones/squeel/squeel.rb
|
94
|
+
- lib/app_drone/drones/stateflow/stateflow.rb
|
92
95
|
- lib/app_drone/drones/stylesheet/application_sass.erb
|
93
96
|
- lib/app_drone/drones/stylesheet/stylesheet.rb
|
94
97
|
- lib/app_drone/drones/timecop/timecop.rb
|
95
98
|
- lib/app_drone/drones/underscore/flair.html.slim.erb
|
96
99
|
- lib/app_drone/drones/underscore/underscore.rb
|
100
|
+
- lib/app_drone/drones/whenever/whenever.rb
|
101
|
+
- lib/app_drone/drones/whenever/wheneverize.erb
|
97
102
|
- lib/app_drone/drones/will_paginate/will_paginate.rb
|
103
|
+
- lib/app_drone/drones/zzz/git/fetch.erb
|
98
104
|
- lib/app_drone/drones/zzz/git/git.rb
|
99
105
|
- lib/app_drone/drones/zzz/git/install.erb
|
100
106
|
- lib/app_drone/drones/zzz/guard/guard.rb
|
107
|
+
- lib/app_drone/drones/zzz/html5_placeholder_shim/copy_to_assets.erb
|
108
|
+
- lib/app_drone/drones/zzz/html5_placeholder_shim/html5_placeholder_shim.rb
|
101
109
|
- lib/app_drone/drones/zzz/rspec/install.erb
|
102
110
|
- lib/app_drone/drones/zzz/rspec/rspec.rb
|
103
111
|
- lib/app_drone/object_extensions.rb
|
@@ -105,8 +113,6 @@ files:
|
|
105
113
|
- lib/app_drone/template.rb
|
106
114
|
- lib/app_drone/version.rb
|
107
115
|
- out.rb
|
108
|
-
- scraps/App admin
|
109
|
-
- scraps/TODO
|
110
116
|
- scraps/blank drone
|
111
117
|
- test/test_app_drone.rb
|
112
118
|
homepage: https://github.com/jeriko/app_drone
|
data/scraps/App admin
DELETED
data/scraps/TODO
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
** When finished: if Flair, say: 'Boot your app and visit /pages/flair to see a functionality demo'
|
2
|
-
** When finished: general stats/instructions?
|
3
|
-
** Will-paginate bootstrap flair?
|
4
|
-
|
5
|
-
- [uploads] Cloudinary
|
6
|
-
- [misc] Spork
|
7
|
-
- [test] DatabaseCleaner
|
8
|
-
- [test] Capybara
|
9
|
-
- [test] Shoulda
|
10
|
-
|
11
|
-
- [ui] jQuery UI (vendor + theme etc.)
|
12
|
-
- [ui_shim] HTML5 placeholder shim - https://github.com/parndt/jquery-html5-placeholder-shim
|
13
|
-
- [ui_shim] HTML5 shim/shiv for IE -- http://ejohn.org/blog/html5-shiv/ http://code.google.com/p/html5shiv/ (or use modernizr?)
|
14
|
-
- [ui_shim] pie.htc for IE
|
15
|
-
- [ui_shim] jQuery shims
|
16
|
-
|
17
|
-
- [mailing] SendGrid https://github.com/stephenb/sendgrid
|
18
|
-
- [mailing] Postmark https://github.com/wildbit/postmark-rails
|
19
|
-
|
20
|
-
- [?] DelayedJob
|
21
|
-
- [search] Sphinx
|
22
|
-
- put has_scope in [search]?
|
23
|
-
|
24
|
-
LATER:
|
25
|
-
- [?] Resque
|
26
|
-
- [?] Redis
|
27
|
-
- [dev] rails-best-practices (and the other output gem for debugging)
|
28
|
-
- [dev] RailsErd
|
29
|
-
- [production] Airbrake + API Key
|
30
|
-
- [?] Launchy
|
31
|
-
- [base] Database: rake [db:create, db:migrate] at very end of generator, options? postgres etc. (will need a dropdown option in the app for this)
|
32
|
-
- [auth] Devise
|