app_stack 1.3.4 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/Gemfile +6 -5
- data/Gemfile.lock +17 -5
- data/README.md +13 -1
- data/app_stack.gemspec +6 -5
- data/lib/app_stack/app.rb +86 -0
- data/lib/app_stack/cli_options.rb +42 -36
- data/lib/app_stack/compare_list.rb +195 -0
- data/lib/app_stack/configuration.rb +119 -0
- data/lib/app_stack/operator.rb +60 -0
- data/lib/app_stack/version.rb +1 -1
- data/lib/app_stack.rb +34 -6
- data/spec/app_stack_spec.rb +17 -0
- data/spec/cli_options_spec.rb +20 -0
- data/spec/compare_list_spec.rb +18 -0
- data/spec/configuration_spec.rb +95 -0
- data/spec/examples/la-assets-helper/app_stack.yml +14 -0
- data/spec/examples/la-assets-helper/lib/la_assets.rb +319 -0
- data/spec/examples/la-import_app/Trivia.erb +2 -0
- data/spec/examples/la-import_app/app_stack.yml +83 -0
- data/spec/examples/la-mongoid/app_stack.yml +49 -0
- data/spec/examples/la-mongoid/config/boot.rb +15 -0
- data/spec/examples/la-mongoid/config/database.rb +12 -0
- data/spec/examples/la-mongoid/config/mongoid.yml +22 -0
- data/spec/examples/la-mongoid/config/mongoid.yml.erb +22 -0
- data/spec/examples/la-sinatra/Gemfile.erb +11 -0
- data/spec/examples/la-sinatra/app_stack.yml +16 -0
- data/spec/examples/no-stacked/some_list.rb +4 -0
- data/spec/examples/sample_config/app_stack.yml +82 -0
- data/spec/examples/sample_config/hash_export.yml +4 -0
- data/spec/load_stack_spec.rb +13 -0
- data/spec/spec_helper.rb +7 -2
- data/tags +87 -34
- metadata +66 -87
- data/.app_stack.yml +0 -14
- data/bin/config_assets +0 -3
- data/lib/app_stack/copy_list_builder.rb +0 -147
- data/lib/app_stack/local_files_parser.rb +0 -95
- data/lib/app_stack/stack_app.rb +0 -119
- data/spec/config_spec.rb +0 -82
- data/spec/fixtures/config_sample/sample.yml +0 -19
- data/spec/fixtures/sample_files/module_1/Gemfile.erb +0 -1
- data/spec/fixtures/sample_files/module_1/app_stack.yml +0 -10
- data/spec/fixtures/sample_files/module_1/config/boot_sample.rb +0 -0
- data/spec/fixtures/sample_files/module_1/doc/excluding.txt +0 -1
- data/spec/fixtures/sample_files/module_1/doc/including.txt +0 -0
- data/spec/fixtures/sample_files/module_1/lib/mixins/b_lib.rb +0 -0
- data/spec/fixtures/sample_files/module_1/lib/mixins/s_lib.rb +0 -0
- data/spec/fixtures/sample_files/module_1/lib/samples/a_lib.rb +0 -0
- data/spec/fixtures/sample_files/module_1/spec/config_spec.rb +0 -0
- data/spec/fixtures/sample_files/module_2/Gemfile +0 -0
- data/spec/fixtures/sample_files/module_2/Gemfile.liquid +0 -1
- data/spec/fixtures/sample_files/module_2/app/lib/sequence.rb +0 -0
- data/spec/fixtures/sample_files/module_2/app_stack.yml +0 -3
- data/spec/fixtures/sample_files/module_3/app_stack.yml +0 -3
- data/spec/fixtures/sample_files/module_3/bin/del +0 -0
- data/spec/fixtures/sample_files/module_3/bin/rm +0 -0
- data/spec/fixtures/sample_files/module_3/config/application.yml +0 -0
- data/spec/fixtures/sample_files/module_3/config/database_development.yml +0 -0
- data/spec/fixtures/sample_files/module_3/config/database_production.yml +0 -0
- data/spec/fixtures/sample_files/module_3/lib/libfile_1.rb +0 -0
- data/spec/fixtures/sample_files/module_3/lib/libfile_2.rb +0 -0
- data/spec/fixtures/sample_files/my_app/app_stack.yml +0 -15
- data/spec/fixtures/sample_files/my_app/doc/excluding.txt +0 -1
- data/spec/fixtures/sample_files/my_app/local.conf +0 -0
- data/spec/fixtures/sample_files/my_app/local.conf.erb +0 -1
- data/spec/fixtures/sample_files/my_app/spec/config_spec.rb +0 -0
- data/spec/fixtures/sample_files/my_app_back/app_stack.yml +0 -15
- data/spec/fixtures/sample_files/my_app_back/doc/excluding.txt +0 -1
- data/spec/fixtures/sample_files/my_app_back/local.conf +0 -0
- data/spec/fixtures/sample_files/my_app_back/local.conf.erb +0 -1
- data/spec/fixtures/sample_files/my_app_back/spec/config_spec.rb +0 -0
- data/spec/merger_spec.rb +0 -43
- data/spec/stackup_spec.rb +0 -18
- /data/{file.erb → spec/examples/find_conf_file/both/.app_stack.yml} +0 -0
- /data/spec/{fixtures/sample_files/module_1/Gemfile → examples/find_conf_file/both/app_stack.yml} +0 -0
- /data/spec/{fixtures/sample_files/module_1/Rakefile → examples/find_conf_file/with_dot/.app_stack.yml} +0 -0
- /data/spec/{fixtures/config_sample → examples/sample_config}/wrong_key.yml +0 -0
- /data/spec/{fixtures/config_sample → examples/sample_config}/wrong_type.yml +0 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# libraries neither in the API layer nor in the database layer
|
3
|
+
|
4
|
+
# load and setup ruby gems system
|
5
|
+
require 'rubygems'
|
6
|
+
require 'bundler/setup'
|
7
|
+
require 'active_support/inflector/inflections' # :underscore
|
8
|
+
|
9
|
+
# load environment specific variables
|
10
|
+
# require ENV['APP_ROOT'] + '/config/env_' + ENV['RACK_ENV']
|
11
|
+
|
12
|
+
# extend load path
|
13
|
+
%w[app/lib lib].map { |d| $LOAD_PATH.unshift ENV['APP_ROOT'] + '/' + d }
|
14
|
+
# Dir[ENV['APP_ROOT'] + '/lib/**/*.rb'].each { |f| require f }
|
15
|
+
# Dir[ENV['APP_ROOT'] + '/app/lib/**/*.rb'].each { |f| require f }
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'mongoid'
|
4
|
+
|
5
|
+
# load configuration
|
6
|
+
Mongoid.load!(ENV['APP_ROOT'] + '/config/mongoid.yml', ENV['RACK_ENV'])
|
7
|
+
|
8
|
+
# load mixin function and custom modules into Mongoid
|
9
|
+
Dir[ENV['APP_ROOT'] + '/lib/mongoid/*.rb'].each { |f| require f }
|
10
|
+
|
11
|
+
# load all application models
|
12
|
+
Dir[ENV['APP_ROOT'] + '/app/models/**/*.rb'].each { |f| require f }
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Tell Mongoid which environment this configuration is for.
|
2
|
+
development:
|
3
|
+
sessions:
|
4
|
+
default:
|
5
|
+
hosts:
|
6
|
+
- localhost:27017
|
7
|
+
database: la_mongoid_dev
|
8
|
+
production:
|
9
|
+
sessions:
|
10
|
+
default:
|
11
|
+
hosts:
|
12
|
+
- localhost:27017
|
13
|
+
database: la_mongoid
|
14
|
+
test:
|
15
|
+
sessions:
|
16
|
+
default:
|
17
|
+
hosts:
|
18
|
+
- localhost:27017
|
19
|
+
database: la_mongoid_test
|
20
|
+
options:
|
21
|
+
allow_dynamic_fields: false
|
22
|
+
safe: true
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Tell Mongoid which environment this configuration is for.
|
2
|
+
development:
|
3
|
+
sessions:
|
4
|
+
default:
|
5
|
+
hosts:
|
6
|
+
- <%= mongodb_host %>
|
7
|
+
database: <%= application_code %>_dev
|
8
|
+
production:
|
9
|
+
sessions:
|
10
|
+
default:
|
11
|
+
hosts:
|
12
|
+
- <%= mongodb_host %>
|
13
|
+
database: <%= application_code %>
|
14
|
+
test:
|
15
|
+
sessions:
|
16
|
+
default:
|
17
|
+
hosts:
|
18
|
+
- <%= mongodb_host %>
|
19
|
+
database: <%= application_code %>_test
|
20
|
+
options:
|
21
|
+
allow_dynamic_fields: false
|
22
|
+
safe: true
|
@@ -0,0 +1,11 @@
|
|
1
|
+
source 'http://ruby.taobao.org/'
|
2
|
+
|
3
|
+
<% gems['default'].each do |g, v| %>
|
4
|
+
gem '<%= g %>'<% if v.size > 0 %>, '<%= v %>'<% end %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
group :development do
|
8
|
+
<% gems['development'].each do |g, v| %>
|
9
|
+
gem '<%= g %>'<% if v.size > 0 %>, '<%= v %>'<% end %>
|
10
|
+
<% end %>
|
11
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
export:
|
2
|
+
- lib/la_assets.rb
|
3
|
+
- app/lib/helpers/assets_helper.rb
|
4
|
+
- lib/tasks/assets.rake
|
5
|
+
- example:
|
6
|
+
- public/assets/definition.yml
|
7
|
+
- tests: []
|
8
|
+
- settings: []
|
9
|
+
attrs:
|
10
|
+
gems:
|
11
|
+
default:
|
12
|
+
sass: ''
|
13
|
+
closure-compiler: ''
|
14
|
+
term-ansicolor: ''
|
15
|
+
development: {}
|
16
|
+
services: {}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import:
|
2
|
+
- la-mongoid
|
3
|
+
- la-sinatra:
|
4
|
+
- tests
|
5
|
+
sync:
|
6
|
+
- la-mongoid
|
7
|
+
- la-assets-helper:
|
8
|
+
- default
|
9
|
+
- Rakefile: Rakefile
|
10
|
+
- la-sinatra:
|
11
|
+
- settings
|
12
|
+
- tests
|
13
|
+
render:
|
14
|
+
- la-sinatra: { Gemfile.erb: Gemfile, Procfile.erb: Procfile }
|
15
|
+
- la-mongoid: { config/mongoid.yml.erb: '' }
|
16
|
+
render_local: { Trivia.erb: Trivia }
|
17
|
+
export:
|
18
|
+
- app/lib/bases/web_application.rb
|
19
|
+
- lib/la_assets.rb
|
20
|
+
- lib/tasks/assets.rake
|
21
|
+
- app/lib/helpers/assets_helper.rb
|
22
|
+
- app/lib/helpers/slim_helper.rb
|
23
|
+
- app/lib/helpers/flash_i18n_errors_helper.rb
|
24
|
+
- app/lib/helpers/form_helper.rb
|
25
|
+
- features/support/*
|
26
|
+
- features/step_definitions/web_steps.rb
|
27
|
+
- lib/tasks/cucumber.rake
|
28
|
+
- lib/tasks/generator.rake
|
29
|
+
- public/assets/definition.yml
|
30
|
+
- gemfile:
|
31
|
+
- Gemfile
|
32
|
+
- rakefile:
|
33
|
+
- Rakefile
|
34
|
+
- foreman:
|
35
|
+
- Procfile
|
36
|
+
- cucumber:
|
37
|
+
- features/support/*
|
38
|
+
- features/step_definitions/web_steps.rb
|
39
|
+
- lib/task/cucumber.rake
|
40
|
+
- setup:
|
41
|
+
- .gitignore
|
42
|
+
- config.ru
|
43
|
+
- config/boot.rb
|
44
|
+
- config/exceptions.rb
|
45
|
+
- config/environment.rb
|
46
|
+
- config/application.rb
|
47
|
+
- config/route.rb
|
48
|
+
- app/lib/sinatra/mount.rb
|
49
|
+
- auth:
|
50
|
+
- app/lib/helpers/auth_helper.rb
|
51
|
+
attrs:
|
52
|
+
application_code: la_sinatra
|
53
|
+
application_name: Sinatra API/Web Frameword
|
54
|
+
gems:
|
55
|
+
default:
|
56
|
+
activesupport: ''
|
57
|
+
rack-session-mongo: ''
|
58
|
+
sinatra: ''
|
59
|
+
sinatra-contrib: ''
|
60
|
+
sinatra-r18n: ''
|
61
|
+
sinatra-flash: ''
|
62
|
+
slim: ''
|
63
|
+
puma: ''
|
64
|
+
gibberish: ''
|
65
|
+
bcrypt-ruby: ''
|
66
|
+
will_paginate_mongoid: ''
|
67
|
+
development:
|
68
|
+
rspec: ''
|
69
|
+
cucumber: ''
|
70
|
+
capybara: ''
|
71
|
+
poltergeist: ''
|
72
|
+
html2slim: ''
|
73
|
+
foreman: ''
|
74
|
+
simplecov: ''
|
75
|
+
rake: ''
|
76
|
+
rubocop: ''
|
77
|
+
sass: ''
|
78
|
+
closure-compiler: ''
|
79
|
+
term-ansicolor: ''
|
80
|
+
rspec_api_documentation: ''
|
81
|
+
services:
|
82
|
+
puma: 'bundle exec puma -p 8080 --pidfile /tmp/puma.pid'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe AppStack::App do
|
6
|
+
describe '#load_stack!' do
|
7
|
+
subject { AppStack::App.new(examples('sample_config/app_stack.yml')) }
|
8
|
+
it 'load stacked applications' do
|
9
|
+
subject.load_stack!
|
10
|
+
subject.app_stacks.size.should eq(3)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -9,6 +9,11 @@ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
9
9
|
|
10
10
|
require 'app_stack'
|
11
11
|
|
12
|
+
def examples(path)
|
13
|
+
File.join('spec/examples', path)
|
14
|
+
end
|
15
|
+
|
12
16
|
# reset files tructure of the my_app folder
|
13
|
-
FileUtils.rm_rf 'spec/fixtures/sample_files/my_app'
|
14
|
-
FileUtils.cp_r 'spec/fixtures/sample_files/my_app_back',
|
17
|
+
# FileUtils.rm_rf 'spec/fixtures/sample_files/my_app'
|
18
|
+
# FileUtils.cp_r 'spec/fixtures/sample_files/my_app_back',
|
19
|
+
# 'spec/fixtures/sample_files/my_app'
|