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.
Files changed (104) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +54 -39
  3. data/lib/app_drone/dependency_chain.rb +8 -1
  4. data/lib/app_drone/drone.rb +9 -0
  5. data/lib/app_drone/drones/carrierwave/carrierwave.rb +20 -0
  6. data/lib/app_drone/drones/chronic/chronic.rb +13 -0
  7. data/lib/app_drone/drones/{easy_roles_45/easy_roles_45.rb~ → easy_rolez/easy_rolez.rb} +1 -1
  8. data/lib/app_drone/drones/factory_girl/factory_girl.rb +13 -0
  9. data/lib/app_drone/drones/has_scope/has_scope.rb +13 -0
  10. data/lib/app_drone/drones/nested_form/nested_form.rb +14 -0
  11. data/lib/app_drone/drones/new_relic/new_relic.rb +13 -0
  12. data/lib/app_drone/drones/nifty_generatorz/nifty_config.erb +1 -0
  13. data/lib/app_drone/drones/nifty_generatorz/nifty_generatorz.rb +19 -0
  14. data/lib/app_drone/drones/remotipart/remotipart.rb +14 -0
  15. data/lib/app_drone/drones/responderz/install.erb +1 -0
  16. data/lib/app_drone/drones/responderz/responderz.rb +17 -0
  17. data/lib/app_drone/drones/rspec/install.erb +1 -0
  18. data/lib/app_drone/drones/rspec/rspec.rb +17 -0
  19. data/lib/app_drone/drones/simple_cov/install.erb +5 -0
  20. data/lib/app_drone/drones/simple_cov/rspec_integration.erb +1 -0
  21. data/lib/app_drone/drones/simple_cov/simple_cov.rb +20 -0
  22. data/lib/app_drone/drones/timecop/timecop.rb +13 -0
  23. data/lib/app_drone/drones/will_paginate/will_paginate.rb +15 -0
  24. data/lib/app_drone/template.erb +14 -0
  25. data/lib/app_drone/template.rb +13 -4
  26. data/lib/app_drone/version.rb +1 -1
  27. data/out.rb +28 -3
  28. data/scraps/App admin +7 -0
  29. data/scraps/TODO +32 -0
  30. data/scraps/blank drone +15 -0
  31. data/test/test_app_drone.rb +8 -1
  32. metadata +26 -79
  33. data/Gemfile~ +0 -4
  34. data/README.md~ +0 -342
  35. data/Rakefile~ +0 -11
  36. data/TODO~ +0 -1
  37. data/app_drone.gemspec~ +0 -20
  38. data/lib/app_drone/dependency.rb~ +0 -5
  39. data/lib/app_drone/dependency_chain.rb~ +0 -55
  40. data/lib/app_drone/drone.rb~ +0 -121
  41. data/lib/app_drone/drones/bootstrap/bootstrap.rb~ +0 -46
  42. data/lib/app_drone/drones/bootstrap/flair.html.slim.erb~ +0 -7
  43. data/lib/app_drone/drones/bundle/bundle.rb~ +0 -22
  44. data/lib/app_drone/drones/bundle/gem.rb~ +0 -23
  45. data/lib/app_drone/drones/bundle/gem_entries.erb~ +0 -6
  46. data/lib/app_drone/drones/bundle/gems.rb~ +0 -23
  47. data/lib/app_drone/drones/cancan/ability.erb~ +0 -1
  48. data/lib/app_drone/drones/cancan/cancan.rb~ +0 -19
  49. data/lib/app_drone/drones/chosen/chosen.rb~ +0 -16
  50. data/lib/app_drone/drones/chosen/showcase.html.slim~ +0 -0
  51. data/lib/app_drone/drones/cleanup/cleanup.rb~ +0 -9
  52. data/lib/app_drone/drones/easy_roles_45/easy_roles.rb~ +0 -13
  53. data/lib/app_drone/drones/easy_roles_45/easy_roles_45.rb +0 -13
  54. data/lib/app_drone/drones/easy_roles_45/easy_rolez.rb~ +0 -13
  55. data/lib/app_drone/drones/ember/ember.rb~ +0 -21
  56. data/lib/app_drone/drones/ember/ember_js.rb~ +0 -21
  57. data/lib/app_drone/drones/ember/install.erb~ +0 -3
  58. data/lib/app_drone/drones/flair/flair.rb~ +0 -39
  59. data/lib/app_drone/drones/flair/flair_page.erb~ +0 -8
  60. data/lib/app_drone/drones/flair/showcase.rb~ +0 -27
  61. data/lib/app_drone/drones/flair/showcase_page.erb~ +0 -11
  62. data/lib/app_drone/drones/gritter/flair.html.slim.erb~ +0 -8
  63. data/lib/app_drone/drones/gritter/gritter.rb~ +0 -21
  64. data/lib/app_drone/drones/gritter/install.erb~ +0 -1
  65. data/lib/app_drone/drones/high_voltage/create_pages_directory.erb~ +0 -1
  66. data/lib/app_drone/drones/high_voltage/high_voltage.rb~ +0 -15
  67. data/lib/app_drone/drones/javascript/application_coffee.erb~ +0 -15
  68. data/lib/app_drone/drones/javascript/javascript.rb~ +0 -26
  69. data/lib/app_drone/drones/javascript/javascripts.rb~ +0 -23
  70. data/lib/app_drone/drones/letter_opener/development_delivery_method.erb~ +0 -1
  71. data/lib/app_drone/drones/letter_opener/development_delivery_method.rb~ +0 -1
  72. data/lib/app_drone/drones/letter_opener/letter_opener.rb~ +0 -17
  73. data/lib/app_drone/drones/migrant/migrant.rb~ +0 -13
  74. data/lib/app_drone/drones/ranked_model/ranked_model.rb~ +0 -13
  75. data/lib/app_drone/drones/simple_form/install.erb~ +0 -1
  76. data/lib/app_drone/drones/simple_form/simple_form.rb~ +0 -21
  77. data/lib/app_drone/drones/slim_view/application_slim.erb~ +0 -15
  78. data/lib/app_drone/drones/slim_view/slim_view.rb~ +0 -16
  79. data/lib/app_drone/drones/slim_view/slim_views.rb~ +0 -14
  80. data/lib/app_drone/drones/sorcery/configure.erb~ +0 -1
  81. data/lib/app_drone/drones/sorcery/sorcery.rb~ +0 -18
  82. data/lib/app_drone/drones/squeel/initializer.erb~ +0 -1
  83. data/lib/app_drone/drones/squeel/squeel.rb~ +0 -19
  84. data/lib/app_drone/drones/stylesheet/application_sass.erb~ +0 -11
  85. data/lib/app_drone/drones/stylesheet/stylesheet.rb~ +0 -26
  86. data/lib/app_drone/drones/stylesheet/stylesheets.rb~ +0 -30
  87. data/lib/app_drone/drones/underscore/flair.html.slim.erb~ +0 -25
  88. data/lib/app_drone/drones/underscore/underscore.rb~ +0 -18
  89. data/lib/app_drone/drones/zzz/factory_girl/factory_girl.rb +0 -13
  90. data/lib/app_drone/drones/zzz/factory_girl/factory_girl.rb~ +0 -13
  91. data/lib/app_drone/drones/zzz/git/git.rb~ +0 -8
  92. data/lib/app_drone/drones/zzz/guard/guard.rb~ +0 -15
  93. data/lib/app_drone/drones/zzz/ranked_model/ranked_model.rb +0 -9
  94. data/lib/app_drone/drones/zzz/ranked_model/ranked_model.rb~ +0 -9
  95. data/lib/app_drone/drones/zzz/rspec/rspec.rb~ +0 -13
  96. data/lib/app_drone/integration.rb~ +0 -48
  97. data/lib/app_drone/object_extensions.rb~ +0 -17
  98. data/lib/app_drone/template.erb~ +0 -33
  99. data/lib/app_drone/template.rb~ +0 -54
  100. data/lib/app_drone/version.rb~ +0 -3
  101. data/lib/app_drone.rb~ +0 -16
  102. data/out.rb~ +0 -161
  103. data/test/app_drone_test.rb~ +0 -19
  104. data/test/test_app_drone.rb~ +0 -74
@@ -1,121 +0,0 @@
1
- module AppDrone
2
-
3
- Param = Struct.new('Param',:name,:type,:options)
4
-
5
- class Drone
6
- # align: set up variables, pass off to other scripts
7
- # execute: actual install process
8
-
9
- # New
10
- def initialize(template,*params)
11
- @template = template
12
- @params = (params.first || {}).merge({options: {}})
13
- setup
14
- end
15
-
16
- def param(sym)
17
- param_value = @params[sym]
18
- default_value = self.class.param_named(sym).options[:default]
19
- return param_value || default_value
20
- end
21
-
22
- # DSL
23
- def ^; @template end # This is never used, not even sure if it works (something about a misplaced '.' error)
24
- def >>(klass); @template.hook(klass); end
25
-
26
- def method_missing(meth, *args, &block)
27
- if Drone.drones.include?(meth)
28
- klass = meth.to_app_drone_class
29
- return (self >> klass)
30
- else
31
- super
32
- end
33
- end
34
-
35
- def pair?(drone_symbol)
36
- drone_klass = ('AppDrone::' + drone_symbol.to_s.classify).constantize
37
- return @template.hook?(drone_klass)
38
- end
39
-
40
- # Expected implementations
41
- def align; end
42
- def execute; end
43
-
44
- # Optional implementations
45
- def setup; end
46
-
47
- def render(partial, opts={})
48
- class_name = self.class.to_s.split('::').last.underscore
49
- template_path = "/drones/#{class_name}/#{partial}.erb"
50
- full_path = File.dirname(__FILE__) + template_path
51
- snippet = ERB.new File.read(full_path)
52
- output = snippet.result(binding)
53
- output = "# --- \n# #{self.class.to_s}\n# ---\n" + output unless opts[:skip_stamp]
54
- return output
55
- end
56
-
57
- def do!(partial)
58
- @template.do! render(partial), self
59
- end
60
-
61
- # DSL: Integration-specific options
62
- attr_accessor :params
63
- class << self
64
- def param_with(drone_klass, name, type, *options)
65
- param(name,type,options.first.merge({ with: drone_klass }))
66
- end
67
-
68
- def param(name, type, *options)
69
- (@params ||= []) << Param.new(name, type, options.first)
70
- end
71
- def params; @params || [] end
72
- def param_named(n); params.find { |p| p.name == n } end
73
-
74
- def desc(d=nil)
75
- return @description if d.nil?
76
- @description = d
77
- end
78
-
79
- def category(c=nil)
80
- return @category if c.nil?
81
- @category = c
82
- end
83
-
84
- def depends_on(*klass_symbols); @dependencies = klass_symbols end
85
- def dependencies
86
- (@dependencies || []).map(&:to_app_drone_class)
87
- end
88
-
89
- def dependants
90
- self.superclass.drones.select { |d| d.to_app_drone_class.dependencies.include?(self) }.map(&:to_app_drone_class)
91
- end
92
-
93
- def pairs_with(*klass_symbols); @pairs = klass_symbols end
94
- def pairs
95
- (@pairs || []).map(&:to_app_drone_class)
96
- end
97
-
98
- def owns_generator_method(m); @generator_method = m end
99
- def generator_method; @generator_method end
100
-
101
- def drones
102
- self.descendants.map(&:to_sym)
103
- end
104
-
105
- def categories
106
- self.descendants.map(&:category).uniq
107
- end
108
-
109
- def to_sym
110
- self.to_s.split('::').last.underscore.to_sym
111
- end
112
-
113
- def human_name
114
- self.to_sym.to_s.humanize.titleize
115
- end
116
-
117
- end
118
-
119
- end
120
-
121
- end
@@ -1,46 +0,0 @@
1
- # Incomplete
2
- module AppDrone
3
- class Bootstrap < Drone
4
- desc "Installs Twitter Bootstrap stylesheets and javascripts"
5
- category :ui
6
-
7
- #param :vendor, :boolean, info: 'place a local copy of the files into the repo for customization'
8
-
9
- param :responsive, :boolean, info: 'include responsive grid'
10
- param :font_awesome, :boolean, info: 'use font-awesome for icons', default: true
11
- param :javascript_plugins, :choose_many, info: 'pipeline javascript plugin files', default: [], choices: %w(modal dropdown scrollspy tab tooltip popover alert button collapse carousel typeahead)
12
-
13
- depends_on :bundle, :stylesheet, :javascript
14
- pairs_with :flair
15
-
16
- def align
17
- bundle.add 'compass_twitter_bootstrap', git: 'git://github.com/vwall/compass-twitter-bootstrap.git', group: :assets
18
- false ? align_vendor : align_bundle
19
- flair!
20
- end
21
-
22
- def execute
23
- false ? execute_vendor : execute_bundle
24
- end
25
-
26
- private
27
- def align_vendor
28
- # TODO import paths for stylesheet (different to bundle)
29
- param(:javascript_plugins).each { |p| javascript.pipeline "bootstrap-#{p}" }
30
- end
31
-
32
- def align_bundle
33
- stylesheet.import param(:font_awesome) ? 'compass_twitter_bootstrap_awesome' : 'compass_twitter_bootstrap'
34
- stylesheet.import 'compass_twitter_bootstrap_responsive' if param(:responsive)
35
- param(:javascript_plugins).each { |p| javascript.pipeline "bootstrap-#{p}" }
36
- end
37
-
38
- def execute_vendor
39
- # TODO pull files from git
40
- end
41
-
42
- def execute_bundle
43
- end
44
-
45
- end
46
- end
@@ -1,7 +0,0 @@
1
- .btn-group
2
- a.btn.btn-primary.btn-large Shiny!
3
- <% if param(:font_awesome) %>
4
- a.btn.btn-large
5
- i.icon-heart
6
- | with Font Awesome!
7
- <% end %>
@@ -1,22 +0,0 @@
1
- module AppDrone
2
- class Bundle < Drone
3
- desc "Manages gem installations"
4
- owns_generator_method :gemfile
5
-
6
- attr_accessor :gems
7
- @@gem = Struct.new('Gem', :name, :opts)
8
-
9
- def setup
10
- self.gems = []
11
- end
12
-
13
- def add(g,*opts)
14
- self.gems << @@gem.new(g,*opts)
15
- end
16
-
17
- def execute
18
- do! :gem_entries
19
- end
20
-
21
- end
22
- end
@@ -1,23 +0,0 @@
1
- # Complete!
2
- module AppDrone
3
- class Gems < Drone
4
- desc "Manages gem installations"
5
- owns_generator_method :gemfile
6
-
7
- attr_accessor :gems
8
- @@gem = Struct.new('Gem', :name, :opts)
9
-
10
- def setup
11
- self.gems = []
12
- end
13
-
14
- def add(g,*opts)
15
- self.gems << @@gem.new(g,*opts)
16
- end
17
-
18
- def execute
19
- do! :gem_entries
20
- end
21
-
22
- end
23
- end
@@ -1,6 +0,0 @@
1
- <% gems.each { |g| %>@generator.gem '<%= g.name %>'<%= g.opts.to_s.gsub('{',', ').gsub('}','') %>
2
- <% } %>
3
- run_bundle
4
- @generator.options = @generator.options.dup
5
- @generator.options[:skip_bundle] = true
6
- @generator.options.freeze
@@ -1,23 +0,0 @@
1
- # Complete!
2
- module AppDrone
3
- class Gems < Drone
4
- desc "Manages gem installations"
5
- owns_generator_method :gemfile
6
-
7
- attr_accessor :gems
8
- @@gem = Struct.new('Gem', :name, :opts)
9
-
10
- def setup
11
- self.gems = []
12
- end
13
-
14
- def add(g,*opts)
15
- self.gems << @@gem.new(g,*opts)
16
- end
17
-
18
- def execute
19
- do! :gem_entries
20
- end
21
-
22
- end
23
- end
@@ -1 +0,0 @@
1
- generate 'cancan:ability'
@@ -1,19 +0,0 @@
1
- module AppDrone
2
- class Cancan < Drone
3
- desc "Role-based authorization"
4
- category :auth
5
-
6
- depends_on :bundle
7
-
8
- param :generate_abilities, :boolen, info: 'build the Ability.rb file'
9
-
10
- def align
11
- bundle.add 'cancan'
12
- end
13
-
14
- def execute
15
- do! :ability if param(:generate_abilities)
16
- end
17
-
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- module AppDrone
2
- class Chosen < Drone
3
- desc 'Installs the Chosen plugin by HarvestHQ'
4
- category :ui
5
- depends_on :bundle, :stylesheet, :javascript
6
- pairs_with :flair
7
-
8
- def align
9
- bundle.add 'chosen-rails'
10
- stylesheet.pipeline 'chosen'
11
- javascript.pipeline 'chosen-jquery'
12
- javascript.on_ready "$('.chzn-select').chosen();"
13
- flair!
14
- end
15
- end
16
- end
File without changes
@@ -1,9 +0,0 @@
1
- module AppDrone
2
- class Cleanup < Drone
3
- desc "Removes some default Rails files that aren't very useful"
4
- category :app
5
- def execute
6
- do! :cleanup
7
- end
8
- end
9
- end
@@ -1,13 +0,0 @@
1
- module AppDrone
2
- class EasyRoles < Drone
3
- desc "Easy user roles"
4
- category :auth
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'easy_roles'
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module AppDrone
2
- class EasyRoles45 < Drone
3
- desc "Add roles to your User models"
4
- category :auth
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'easy_roles'
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module AppDrone
2
- class EasyRoles45 < Drone
3
- desc "Add roles to your User models"
4
- category :auth
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'easy_roles'
10
- end
11
-
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- module AppDrone
2
- class Ember < Drone
3
- desc 'Installs ember.js for Rails'
4
- category :ux
5
- depends_on :bundle, :javascript
6
- param :app_skeleton, :boolean, info: 'build an Ember app skeleton'
7
-
8
- def align
9
- bundle.add 'ember-rails'
10
- javascript.pipeline 'ember'
11
- if param(:app_skeleton)
12
- javascript.pipeline 'ember/#{app_name}.js'
13
- end
14
- end
15
-
16
- def execute
17
- do! :install
18
- end
19
-
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- module AppDrone
2
- class EmberJs < Drone
3
- desc 'Installs ember.js for Rails'
4
- depends_on :bundle, :javascript
5
-
6
- param :app_skeleton, :boolean, info: 'build an Ember app skeleton'
7
-
8
- def align
9
- bundle.add 'ember-rails'
10
- javascript.pipeline 'ember'
11
- if param(:app_skeleton)
12
- javascript.pipeline 'ember/\#{app_name}.js'
13
- end
14
- end
15
-
16
- def execute
17
- do! :install
18
- end
19
-
20
- end
21
- end
@@ -1,3 +0,0 @@
1
- <% if param(:app_skeleton) %>
2
- generate "ember:bootstrap"
3
- <% end %>
@@ -1,39 +0,0 @@
1
- module AppDrone
2
- class Flair < Drone
3
- desc "Creates a page to demonstrate the drones' hard work"
4
- depends_on :high_voltage, :slim_view
5
- category :base
6
-
7
- attr_accessor :flairs
8
-
9
- def setup
10
- self.flairs = []
11
- end
12
-
13
- def add(klass)
14
- flairs << klass.class.to_sym
15
- end
16
-
17
- def execute
18
- do! :flair_page
19
- end
20
-
21
- def flair_for(drone_name)
22
- drone = send(drone_name)
23
- return drone.render 'flair.html.slim', skip_stamp: true
24
- end
25
- end
26
-
27
-
28
- # extend drones so they can call `flair!` rather than the verbose method
29
- # this pattern is useful for drones that take a single boolean parameter
30
- # e.g.
31
- # flair: do / don't flair, as opposed to
32
- # bootstrap: vendor, responsive, font_awesome...
33
- class Drone
34
- def flair!
35
- flair.add(self) if pair?(:flair)
36
- end
37
- end
38
-
39
- end
@@ -1,8 +0,0 @@
1
- @generator.create_file 'app/views/pages/flair.html.slim', <<-FLAIR
2
- h1 Flair!
3
-
4
- <% flairs.each do |drone_name| %>
5
- h3 <%= drone_name.to_s.humanize.titleize %>
6
-
7
- <%= flair_for(drone_name) %><% end %>
8
- FLAIR
@@ -1,27 +0,0 @@
1
- module AppDrone
2
- class Showcase < Drone
3
- desc "Creates a page to demonstrate the drones' hard work"
4
- depends_on :high_voltage, :slim_view
5
-
6
- attr_accessor :flairs
7
-
8
- def setup
9
- self.flairs = []
10
- end
11
-
12
- def me!(klass)
13
- flairs << klass.class.to_s.gsub('AppDrone::','').underscore
14
- end
15
-
16
- def execute
17
- do! :flair_page
18
- end
19
-
20
- def flair_for(drone_name)
21
- flair_path = File.join File.dirname(__FILE__), '..', drone_name, 'flair.html.slim'
22
- snippet = ERB.new File.read(flair_path)
23
- return snippet.result(binding)
24
- end
25
- end
26
-
27
- end
@@ -1,11 +0,0 @@
1
- @generator.create_file 'app/views/pages/showcase.html.slim', <<-SHOWCASE
2
- h1 Showcase
3
-
4
- <% showcases.each do |drone_name| %>
5
-
6
- h3 <%= drone_name.humanize.titleize %>
7
-
8
- <%= showcase_for(drone_name) %>
9
-
10
- <% end %>
11
- SHOWCASE
@@ -1,8 +0,0 @@
1
- button#gritterTrigger Growl for me, baby!
2
-
3
- javascript:
4
- $(function() {
5
- $('#gritterTrigger').click(function() {
6
- $.gritter.add({ title: 'Grrrrrr!!!', text: 'Like that? :P', time: 2000, position: 'top-left' });
7
- });
8
- });
@@ -1,21 +0,0 @@
1
- module AppDrone
2
- class Gritter < Drone
3
- desc "Growl-like notifications for jQuery"
4
- category :ui
5
-
6
- depends_on :bundle, :stylesheet, :javascript
7
- pairs_with :flair
8
-
9
- def align
10
- bundle.add 'gritter'
11
- stylesheet.import 'gritter'
12
- javascript.pipeline 'gritter'
13
- flair!
14
- end
15
-
16
- def execute
17
- do! :install
18
- end
19
-
20
- end
21
- end
@@ -1 +0,0 @@
1
- generate "gritter:locale"
@@ -1 +0,0 @@
1
- @generator.directory 'app/views/pages'
@@ -1,15 +0,0 @@
1
- module AppDrone
2
- class HighVoltage < Drone
3
- desc "DANGER! Super-simple static webpages"
4
- category :base
5
- depends_on :bundle
6
-
7
- def align
8
- bundle.add 'high_voltage'
9
- end
10
-
11
- def execute
12
- do! :create_pages_directory
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- js_asset_path = File.join %w(app assets javascripts application.js)
2
- @generator.remove_file(js_asset_path)
3
- @coffee_asset_path = File.join %w(app assets javascripts application.js.coffee)
4
- @generator.create_file @coffee_asset_path, <<-COFFEE
5
- <% pipeline_requires.each { |r| %>//= require <%= r %>
6
- <% } %>
7
- COFFEE
8
-
9
- @coffee_init_path = File.join %w(app assets javascripts init.js.coffee)
10
- @generator.create_file @coffee_init_path, <<-COFFEE
11
- $(document).ready ->
12
- <% on_readies.each { |r| %><%= r %>
13
- <% } %>
14
-
15
- COFFEE
@@ -1,26 +0,0 @@
1
- module AppDrone
2
- class Javascript < Drone
3
- desc "Generates application.js.coffee with manifest options and jQuery load hooks"
4
- category :base
5
- attr_accessor :pipeline_requires, :on_readies
6
-
7
- depends_on :bundle # not really, but makes for good ordering in DependencyChain
8
-
9
- def setup
10
- self.pipeline_requires = []
11
- self.on_readies = []
12
-
13
- self.pipeline 'jquery'
14
- self.pipeline 'jquery_ujs'
15
- self.pipeline 'init'
16
- end
17
-
18
- def pipeline(r); self.pipeline_requires << r end
19
- def on_ready(r); self.on_readies << r end
20
-
21
- def execute
22
- do! :application_coffee
23
- end
24
-
25
- end
26
- end
@@ -1,23 +0,0 @@
1
- # Incomplete
2
- module AppDrone
3
- class Javascripts < Drone
4
- desc "Generates application.js.coffee with manifest and jQuery load hooks"
5
- attr_accessor :requires, :onreadies
6
-
7
- def setup
8
- self.requires = []
9
- self.onreadies = []
10
- self.add_require 'jquery'
11
- self.add_require 'jquery_ujs'
12
- self.add_require 'jquery-ui' # TODO if ui, otherwise vendor
13
- end
14
-
15
- def add_require(r); self.requires << r end
16
- def add_onready(r); self.onreadies << r end
17
-
18
- def execute
19
- do! :application_coffee
20
- end
21
-
22
- end
23
- end
@@ -1 +0,0 @@
1
- @generator.inject_into_file 'config/environments/development.rb', "\n config.action_mailer.delivery_method = :letter_opener", before: "\nend"
@@ -1,17 +0,0 @@
1
- module AppDrone
2
- class LetterOpener < Drone
3
- desc "Preview mail in the browser instead of sending"
4
- category :dev
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'letter_opener', group: :development
10
- end
11
-
12
- def execute
13
- do! :development_delivery_method
14
- end
15
-
16
- end
17
- end
@@ -1,13 +0,0 @@
1
- module AppDrone
2
- class Migrant < Drone
3
- desc "Easier schema management that complements your domain model"
4
- category :model
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'migrant'
10
- end
11
-
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module AppDrone
2
- class RankedModel < Drone
3
- desc "Rank and sort your objects"
4
- category :model
5
-
6
- depends_on :bundle
7
-
8
- def align
9
- bundle.add 'ranked_model'
10
- end
11
-
12
- end
13
- end
@@ -1 +0,0 @@
1
- generate "simple_form:install<%= ' --bootstrap' if pair?(:bootstrap) %>"