app_drone 0.10.0 → 0.11.0

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/README.md CHANGED
@@ -269,6 +269,7 @@ AppDrone is not for everyone. It's highly opinionated about how a Rails app shou
269
269
  - [base] **Cleanup**
270
270
  - [base] **HighVoltage** by ThoughtBot
271
271
  - [base] **Flair** - drones use this to demonstrate their working functionality
272
+ - [base] **Git** commit your repo, and allow drones to fetch external files via git
272
273
  - [views] **SimpleForm** with optional Country Select and automatic Twitter Bootstrap integration
273
274
  - [views] **NestedForm** for managing multiple models in a single form
274
275
  - [auth] **Sorcery** for no-frills user authentication
@@ -308,7 +309,6 @@ AppDrone is not for everyone. It's highly opinionated about how a Rails app shou
308
309
  - [test] Capybara
309
310
  - [test] Shoulda
310
311
  - [dev] Guard
311
- - [source-control] Git
312
312
  - [requests] InheritedResources (deprecated)
313
313
  - [requests] UserAgent blocking script
314
314
  - [mailing] SendGrid https://github.com/stephenb/sendgrid
@@ -62,6 +62,10 @@ class Drone
62
62
  @template.do! render(partial), self
63
63
  end
64
64
 
65
+ def do_finally!(partial)
66
+ @template.do_finally! render(partial), self
67
+ end
68
+
65
69
  # DSL: Integration-specific options
66
70
  attr_accessor :params
67
71
  class << self
@@ -0,0 +1 @@
1
+ @generator.remove_dir '<%= tmp_path %>'
@@ -0,0 +1,3 @@
1
+ git :init
2
+ git add: '.'
3
+ git commit: "-m \"AppDrone: #{app_name}\""
@@ -3,6 +3,8 @@ class Git < Drone
3
3
  desc "Clone external resources into your app"
4
4
  category :base
5
5
 
6
+ param :commit, :boolean, info: 'Commit your repo once built'
7
+
6
8
  attr_accessor :fetches
7
9
 
8
10
  def tmp_path; 'git_tmp' end
@@ -15,10 +17,12 @@ class Git < Drone
15
17
 
16
18
  def execute
17
19
  do! :fetch
20
+ do_finally! :cleanup
21
+ do_finally! :commit if param(:commit)
18
22
  end
19
23
 
20
24
  def locate(p)
21
- File.join '.', tmp_path, p
25
+ File.join tmp_path, p
22
26
  end
23
27
 
24
28
  private
@@ -2,4 +2,5 @@
2
2
  source = git.locate('jquery-html5-placeholder-shim/jquery.html5-placeholder-shim.js')
3
3
  dest = 'app/assets/javascripts/jquery.html5-placeholder-shim.js'
4
4
  %>
5
- @generator.copy_file '<%= source %>', '<%= dest %>'
5
+
6
+ @generator.run 'cp <%= source %> <%= dest %>'
@@ -17,9 +17,9 @@ class AppBuilder < Rails::AppBuilder
17
17
  # either way, this method is stupid.
18
18
  end
19
19
 
20
- <% overridden_generator_methods.each do |m| %>
20
+ <% generator_methods.each do |m| %>
21
21
  def <%= m %>
22
- super
22
+ <%= 'super' if overridden_generator_method?(m) %>
23
23
  <%= @directives[m].join("\n") %>
24
24
  end
25
25
  <% end %>
@@ -32,6 +32,9 @@ class AppBuilder < Rails::AppBuilder
32
32
  rake 'db:create'
33
33
  rake 'db:migrate'
34
34
 
35
+ <% if generator_methods.include?(:final) %>
36
+ final
37
+ <% end %>
35
38
 
36
39
  # Drone Notices
37
40
  <% drone_notices.each do |drone, notices| %>
@@ -17,13 +17,19 @@ class Template
17
17
  end
18
18
 
19
19
  def leftover_directives; @directives[:leftovers] || [] end
20
- def overridden_generator_methods; @directives.keys - [:leftovers] end
20
+ def generator_methods; @directives.keys - [:leftovers] end
21
+ def overridable_generator_methods; [:gemfile] end
22
+ def overridden_generator_method?(m); overridable_generator_methods.include?(m) end
21
23
 
22
24
  def do!(d,drone)
23
25
  generator_method = drone.class.generator_method || :leftovers
24
26
  (@directives[generator_method] ||= []) << d
25
27
  end
26
28
 
29
+ def do_finally!(d,drone)
30
+ (@directives[:final] ||= []) << d
31
+ end
32
+
27
33
  def notify!(notice,drone)
28
34
  (@drone_notices[drone.class] ||= []) << notice.gsub("'","\\'").gsub('"','\\"') # escape quotes
29
35
  end
@@ -1,3 +1,3 @@
1
1
  module AppDrone
2
- VERSION = "0.10.0"
2
+ VERSION = "0.11.0"
3
3
  end
data/out.rb CHANGED
@@ -35,6 +35,15 @@ run_bundle
35
35
 
36
36
  end
37
37
 
38
+ def final
39
+
40
+ # ---
41
+ # AppDrone::Git
42
+ # ---
43
+ @generator.remove_dir 'git_tmp'
44
+
45
+ end
46
+
38
47
 
39
48
  def leftovers
40
49
 
@@ -127,13 +136,17 @@ FLAIR
127
136
  # AppDrone::Html5PlaceholderShim
128
137
  # ---
129
138
 
130
- @generator.copy_file './git_tmp/jquery-html5-placeholder-shim/jquery.html5-placeholder-shim.js', 'app/assets/javascripts/jquery.html5-placeholder-shim.js'
139
+
140
+ @generator.run 'cp git_tmp/jquery-html5-placeholder-shim/jquery.html5-placeholder-shim.js app/assets/javascripts/jquery.html5-placeholder-shim.js'
131
141
 
132
142
 
133
143
  # This should be removed when the database drone is installed
134
144
  rake 'db:create'
135
145
  rake 'db:migrate'
136
146
 
147
+
148
+ final
149
+
137
150
 
138
151
  # Drone Notices
139
152
 
@@ -17,14 +17,14 @@ class AppDroneTest < Test::Unit::TestCase
17
17
 
18
18
  def test_dependants
19
19
  d = AppDrone::Bundle.dependants
20
- puts AppDrone::Drone.drones
20
+ drones = AppDrone::Drone.drones
21
21
  end
22
22
 
23
23
  def test_basic_behavior
24
24
  template = Template.new
25
25
  add_defaults_to_template(template)
26
26
 
27
- template.add :git
27
+ template.add :git, commit: false
28
28
  template.add :html5_placeholder_shim
29
29
 
30
30
  template.render_to_file
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.10.0
4
+ version: 0.11.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-04 00:00:00.000000000 Z
12
+ date: 2012-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &13619840 !ruby/object:Gem::Requirement
16
+ requirement: &18392420 !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: *13619840
24
+ version_requirements: *18392420
25
25
  description: Give your Rails apps a kickstart
26
26
  email:
27
27
  - whoisdanieldavey@gmail.com
@@ -59,12 +59,18 @@ files:
59
59
  - lib/app_drone/drones/factory_girl/factory_girl.rb
60
60
  - lib/app_drone/drones/flair/flair.rb
61
61
  - lib/app_drone/drones/flair/flair_page.erb
62
+ - lib/app_drone/drones/git/cleanup.erb
63
+ - lib/app_drone/drones/git/commit.erb
64
+ - lib/app_drone/drones/git/fetch.erb
65
+ - lib/app_drone/drones/git/git.rb
62
66
  - lib/app_drone/drones/gritter/flair.html.slim.erb
63
67
  - lib/app_drone/drones/gritter/gritter.rb
64
68
  - lib/app_drone/drones/gritter/install.erb
65
69
  - lib/app_drone/drones/has_scope/has_scope.rb
66
70
  - lib/app_drone/drones/high_voltage/create_pages_directory.erb
67
71
  - lib/app_drone/drones/high_voltage/high_voltage.rb
72
+ - lib/app_drone/drones/html5_placeholder_shim/copy_to_assets.erb
73
+ - lib/app_drone/drones/html5_placeholder_shim/html5_placeholder_shim.rb
68
74
  - lib/app_drone/drones/javascript/application_coffee.erb
69
75
  - lib/app_drone/drones/javascript/javascript.rb
70
76
  - lib/app_drone/drones/letter_opener/development_delivery_method.erb
@@ -100,12 +106,7 @@ files:
100
106
  - lib/app_drone/drones/whenever/whenever.rb
101
107
  - lib/app_drone/drones/whenever/wheneverize.erb
102
108
  - lib/app_drone/drones/will_paginate/will_paginate.rb
103
- - lib/app_drone/drones/zzz/git/fetch.erb
104
- - lib/app_drone/drones/zzz/git/git.rb
105
- - lib/app_drone/drones/zzz/git/install.erb
106
109
  - 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
109
110
  - lib/app_drone/drones/zzz/rspec/install.erb
110
111
  - lib/app_drone/drones/zzz/rspec/rspec.rb
111
112
  - lib/app_drone/object_extensions.rb
@@ -1,3 +0,0 @@
1
- git :init
2
- git add: '.'
3
- git commit: "-m \"AppBuilder: #{app_name}\""
File without changes