app_drone 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
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