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.
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) %>"