appscrolls 0.10.0 → 0.10.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.
data/.gitignore CHANGED
@@ -6,3 +6,4 @@ dist/*
6
6
  .idea
7
7
  .rvmrc
8
8
  .DS_Store
9
+ tmp
@@ -4,6 +4,12 @@
4
4
 
5
5
  * `puma` - added basic support for Puma; also Cloud Foundry will use Puma automatically
6
6
 
7
+ ### v0.10.1
8
+
9
+ * `cfoundry` renamed to `cf`
10
+ * `cf` - automatically creates & binds postgresql/mysql if selected; deletes existing app of same name
11
+ * installation forces installation of latest bundler 1.3.4+ & rails 3.2.13+
12
+
7
13
  ## v0.9
8
14
 
9
15
  * `Cloud Foundry` - added support for uploading to Cloud Foundry
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{The App Scrolls is a magical tool to generate new Rails and modify existing Rails applications (coming) to include your favourite, powerful magic.}
13
13
  s.description = s.summary
14
14
 
15
- s.add_dependency "activesupport", "~> 3.0"
15
+ s.add_dependency "bundler", "~> 1.3.4"
16
+ s.add_dependency "rails", "~> 3.2.13"
16
17
  s.add_dependency "i18n"
17
- s.add_dependency "rails", "~> 3.2.2"
18
18
  s.add_dependency "json", "~> 1.7.0"
19
19
  s.add_dependency "thor"
20
20
  s.add_development_dependency "cucumber"
@@ -0,0 +1,88 @@
1
+ # Scroll is based on the following documentation
2
+ # * http://blog.cloudfoundry.com/2012/03/15/using-cloud-foundry-services-with-ruby-part-2-run-time-support-for-ruby-applications/
3
+ # * http://blog.cloudfoundry.com/2012/04/19/deploying-jruby-on-rails-applications-on-cloud-foundry/
4
+
5
+ vmc_version = '0.3.23'
6
+
7
+ @name = File.basename(File.expand_path("."))
8
+
9
+ gem 'vmc', "~> #{vmc_version}"
10
+ gem 'cf-runtime'
11
+
12
+ required_dbs = %w[mysql postgresql]
13
+
14
+ selected_db = required_dbs.find { |db| scroll? db }
15
+ unless selected_db
16
+ say_custom "cf", "Please include a DB choice from: #{required_dbs.join ", "}"
17
+ exit_now = true
18
+ end
19
+
20
+ manifest = {"applications"=>
21
+ {"."=>
22
+ {"name"=>@name,
23
+ "framework"=>
24
+ {"name"=>"rails3",
25
+ "info"=>
26
+ {"mem"=>"256M", "description"=>"Rails Application", "exec"=>nil}},
27
+ "url"=>"${name}.${target-base}",
28
+ "mem"=>"256M",
29
+ "instances"=>1,
30
+ "services"=>{}}}}
31
+
32
+ case selected_db.to_sym
33
+ when :postgresql
34
+ manifest["applications"]["."]["services"]["#{@name}-postgresql"] = {"type"=>"postgresql"}
35
+ db_username = config['pg_username'] || 'root'
36
+ db_password = config['pg_password'] || ''
37
+ when :mysql
38
+ manifest["applications"]["."]["services"]["#{@name}-mysql"] = {"type"=>"mysql"}
39
+ end
40
+
41
+ require "yaml"
42
+ create_file "manifest.yml", manifest.to_yaml
43
+
44
+ exit 1 if exit_now
45
+
46
+ after_bundler do
47
+ run %Q{vmc _#{vmc_version}_ apps | grep "\\b#{@name}\\b" && vmc _#{vmc_version}_ delete #{@name}}
48
+
49
+ # Desirable to vendor everything
50
+ run "bundle package"
51
+
52
+ production = <<-YAML.gsub(/^\s{2}/, '')
53
+ production:
54
+ adapter: #{selected_db}
55
+ <% db_svc = CFRuntime::CloudApp.service_props('#{selected_db}') %>
56
+ database: <%= db_svc[:database] rescue '#{project_name}_production' %>
57
+ username: <%= db_svc[:username] rescue '#{db_username}' %>
58
+ password: <%= db_svc[:password] rescue '#{db_password}' %>
59
+ <%= db_svc && db_svc[:host] ? "host: \#{db_svc[:host]}" : "" %>
60
+ <%= db_svc && db_svc[:port] ? "port: \#{db_svc[:port]}" : "" %>
61
+ YAML
62
+ append_file "config/database.yml", production
63
+ end
64
+
65
+ after_everything do
66
+ run "rake assets:precompile"
67
+ if jruby?
68
+ run "warble"
69
+ run "mkdir -p deploy"
70
+ run "cp #{project_name}.war deploy/"
71
+ end
72
+ run "vmc _#{vmc_version}_ push #{project_name} --runtime ruby19 --path . --no-start"
73
+ run "vmc _#{vmc_version}_ env-add #{project_name} BUNDLE_WITHOUT=assets:test:development"
74
+ run "vmc _#{vmc_version}_ start #{project_name}"
75
+ end
76
+
77
+ __END__
78
+
79
+ name: Cloud Foundry
80
+ description: Prepare codebase and perform initial deploy to a Cloud Foundry target
81
+ website: http://cloudfoundry.org
82
+ author: drnic
83
+
84
+ requires: []
85
+ run_after: [postgresql, mysql]
86
+ run_before: []
87
+
88
+ category: deployment
@@ -1,5 +1,3 @@
1
- gem "pg"
2
-
3
1
  gsub_file "config/database.yml", /username: .*/, "username: #{config['pg_username']}"
4
2
  gsub_file "config/database.yml", /password: .*/, "password: #{config['pg_password']}"
5
3
  %w[development test production].each do |env|
@@ -31,7 +29,7 @@ author: drnic
31
29
  exclusive: orm
32
30
  category: persistence
33
31
 
34
- run_before: [eycloud]
32
+ run_before: [eycloud, cf]
35
33
 
36
34
  args: -d postgresql
37
35
 
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module AppScrollsScrolls
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appscrolls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,16 +10,16 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-27 00:00:00.000000000 Z
13
+ date: 2013-03-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: activesupport
16
+ name: bundler
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
21
21
  - !ruby/object:Gem::Version
22
- version: '3.0'
22
+ version: 1.3.4
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,39 +27,39 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
- version: '3.0'
30
+ version: 1.3.4
31
31
  - !ruby/object:Gem::Dependency
32
- name: i18n
32
+ name: rails
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  none: false
35
35
  requirements:
36
- - - ! '>='
36
+ - - ~>
37
37
  - !ruby/object:Gem::Version
38
- version: '0'
38
+ version: 3.2.13
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
- - - ! '>='
44
+ - - ~>
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 3.2.13
47
47
  - !ruby/object:Gem::Dependency
48
- name: rails
48
+ name: i18n
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
- - - ~>
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 3.2.2
54
+ version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
- - - ~>
60
+ - - ! '>='
61
61
  - !ruby/object:Gem::Version
62
- version: 3.2.2
62
+ version: '0'
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: json
65
65
  requirement: !ruby/object:Gem::Requirement
@@ -210,7 +210,7 @@ files:
210
210
  - sample.rb
211
211
  - scrolls/active_admin.rb
212
212
  - scrolls/capybara.rb
213
- - scrolls/cfoundry.rb
213
+ - scrolls/cf.rb
214
214
  - scrolls/cucumber.rb
215
215
  - scrolls/delayed_job.rb
216
216
  - scrolls/env_yaml.rb
@@ -306,12 +306,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
306
306
  - - ! '>='
307
307
  - !ruby/object:Gem::Version
308
308
  version: '0'
309
+ segments:
310
+ - 0
311
+ hash: -3286780568142603210
309
312
  required_rubygems_version: !ruby/object:Gem::Requirement
310
313
  none: false
311
314
  requirements:
312
315
  - - ! '>='
313
316
  - !ruby/object:Gem::Version
314
317
  version: '0'
318
+ segments:
319
+ - 0
320
+ hash: -3286780568142603210
315
321
  requirements: []
316
322
  rubyforge_project:
317
323
  rubygems_version: 1.8.25
@@ -331,4 +337,3 @@ test_files:
331
337
  - spec/spec_helper.rb
332
338
  - spec/support/rails_directory.rb
333
339
  - spec/support/template_runner.rb
334
- has_rdoc:
@@ -1,68 +0,0 @@
1
- # Scroll is based on the following documentation
2
- # * http://blog.cloudfoundry.com/2012/03/15/using-cloud-foundry-services-with-ruby-part-2-run-time-support-for-ruby-applications/
3
- # * http://blog.cloudfoundry.com/2012/04/19/deploying-jruby-on-rails-applications-on-cloud-foundry/
4
-
5
- gem 'vmc'
6
- gem 'cf-runtime'
7
-
8
- required_dbs = %w[mysql postgresql]
9
-
10
- selected_db = required_dbs.find { |db| scroll? db }
11
- unless selected_db
12
- say_custom "cfoundry", "Please include a DB choice from: #{required_dbs.join ", "}"
13
- exit_now = true
14
- end
15
-
16
- # TODO similar config for mysql
17
- db_username = config['pg_username'] || 'root'
18
- db_password = config['pg_password'] || ''
19
-
20
- after_bundler do
21
- # Must vendor everything
22
- run "bundle package"
23
-
24
- append_file "config/database.yml" do
25
- <<-YAML.gsub(/^\s{2}/, '')
26
- production:
27
- adapter: #{selected_db}
28
- <% require 'cfruntime/properties' %>
29
- <% db_svc = CFRuntime::CloudApp.service_props('#{selected_db}') %>
30
- database: <%= db_svc[:database] rescue '#{project_name}_production' %>
31
- username: <%= db_svc[:username] rescue '#{db_username}' %>
32
- password: <%= db_svc[:password] rescue '#{db_password}' %>
33
- <%= db_svc && db_svc[:host] ? "host: #{db_svc[:host]}" : "" %>
34
- <%= db_svc && db_svc[:port] ? "post: #{db_svc[:port]}" : "" %>
35
- YAML
36
- end
37
- end
38
-
39
- after_everything do
40
- run "rake assets:precompile"
41
- if jruby?
42
- run "warble"
43
- run "mkdir -p deploy"
44
- run "cp #{project_name}.war deploy/"
45
- end
46
- run "vmc push #{project_name} --runtime ruby19 --path . --no-start"
47
- run "vmc env-add #{project_name} BUNDLE_WITHOUT=assets:test:development"
48
- run "vmc start #{project_name}"
49
- end
50
-
51
- __END__
52
-
53
- name: CloudFoundry
54
- description: Prepare codebase and perform initial deploy to a CloudFoundry target
55
- website: http://cloudfoundry.org
56
- author: drnic
57
-
58
- requires: []
59
- run_after: [postgresql, mysql]
60
- run_before: []
61
-
62
- category: deployment
63
- # exclusive:
64
-
65
- # config:
66
- # - foo:
67
- # type: boolean
68
- # prompt: "Is foo true?"