shoestrap 0.4.1 → 1.0.0.pre1
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.
- checksums.yaml +7 -0
- data/.gitignore +17 -18
- data/.rspec +1 -1
- data/.ruby-version +1 -0
- data/.travis.yml +4 -11
- data/CHANGELOG.md +15 -1
- data/CONTRIBUTING +1 -0
- data/Gemfile +1 -1
- data/Guardfile +7 -0
- data/LICENSE +17 -4
- data/README.md +32 -14
- data/Rakefile +11 -10
- data/bin/shoestrap +2 -10
- data/features/features_helper.rb +91 -0
- data/features/shoestrap/commands/new_command_feature.rb +191 -0
- data/features/shoestrap/generators/bdd_generator_feature.rb +43 -0
- data/features/shoestrap/generators/bootstrap_generator_feature.rb +11 -0
- data/features/shoestrap/generators/coffee_files_generator_feature.rb +32 -0
- data/features/shoestrap/generators/foundation_generator_feature.rb +34 -0
- data/features/shoestrap/generators/kuhsaft_generator_feature.rb +38 -0
- data/features/shoestrap/generators/smacss_files_generator_feature.rb +45 -0
- data/lib/generators/shoestrap/bdd_generator.rb +34 -0
- data/lib/generators/shoestrap/bootstrap_generator.rb +6 -0
- data/lib/generators/shoestrap/coffee_files_generator.rb +19 -0
- data/lib/generators/shoestrap/database_generator.rb +9 -0
- data/lib/generators/shoestrap/foundation_generator.rb +24 -0
- data/lib/generators/shoestrap/gem_install_generator.rb +12 -0
- data/lib/generators/shoestrap/kuhsaft_generator.rb +34 -0
- data/lib/generators/shoestrap/mailcatcher_generator.rb +14 -0
- data/lib/generators/shoestrap/smacss_file_generator.rb +33 -0
- data/lib/shoestrap.rb +2 -6
- data/lib/shoestrap/application_generator.rb +96 -0
- data/lib/shoestrap/cli.rb +35 -0
- data/lib/shoestrap/railtie.rb +7 -0
- data/lib/shoestrap/shell.rb +9 -0
- data/lib/shoestrap/version.rb +3 -0
- data/shoestrap.gemspec +28 -21
- data/spec/shoestrap/application_generator_spec.rb +170 -0
- data/spec/shoestrap/cli_spec.rb +28 -0
- data/spec/spec_helper.rb +34 -0
- data/templates/application_generator/application.html.haml +51 -0
- data/templates/application_generator/application_helper.rb +6 -0
- data/templates/application_generator/application_template.rb +72 -0
- data/templates/application_generator/favicons/favicon-sc-129x129.png +0 -0
- data/templates/application_generator/favicons/favicon-sc-16x16.ico +0 -0
- data/templates/application_generator/favicons/favicon-sc-32x32.png +0 -0
- data/templates/bdd_generator/active_record_spec_helper.rb +19 -0
- data/templates/bdd_generator/dotrspec +2 -0
- data/templates/bdd_generator/fast_spec_helper.rb +6 -0
- data/templates/bdd_generator/spec_helper.rb +12 -0
- data/templates/coffee_generator/application.js.coffee +3 -0
- data/templates/foundation_generator/_ie8_grid.css +85 -0
- data/templates/foundation_generator/_settings.css.sass +171 -0
- data/templates/kuhsaft_generator/kuhsaft.rb +5 -0
- data/templates/smacss_generator/application.css.sass +18 -0
- metadata +165 -74
- data/.rvmrc +0 -34
- data/lib/generators/shoestrap/app_generator.rb +0 -35
- data/lib/generators/shoestrap/cms_generator.rb +0 -57
- data/lib/generators/shoestrap/deployment_generator.rb +0 -62
- data/lib/generators/shoestrap/templates/cms/migration.rb +0 -15
- data/lib/generators/shoestrap/templates/cms/model.rb +0 -10
- data/lib/generators/shoestrap/templates/cms/model.yml.erb +0 -9
- data/lib/generators/shoestrap/templates/cms/view.yml.erb +0 -10
- data/lib/generators/shoestrap/templates/deployment/airbrake.rb +0 -10
- data/lib/generators/shoestrap/templates/deployment/database.yml.erb +0 -30
- data/lib/generators/shoestrap/templates/deployment/deployment.rake.erb +0 -23
- data/lib/generators/shoestrap/templates/deployment/unicorn.rb +0 -38
- data/lib/shoestrap/app_builder.rb +0 -132
- data/lib/shoestrap/tasks/middleman.rb +0 -21
- data/lib/shoestrap/tasks/radiant.rb +0 -41
- data/lib/shoestrap/tasks/rails.rb +0 -81
- data/templates/Gemfile.erb +0 -43
- data/templates/Guardfile +0 -33
- data/templates/README.md.erb +0 -30
- data/templates/_main_navigation.html.haml.erb +0 -5
- data/templates/application.html.haml +0 -24
- data/templates/bootstrap_and_overrides.css.sass +0 -7
- data/templates/cms_navigation.rb +0 -9
- data/templates/development_mail_interceptor.rb +0 -7
- data/templates/haml/scaffold/_form.html.haml +0 -10
- data/templates/haml/scaffold/edit.html.haml +0 -8
- data/templates/haml/scaffold/index.html.haml +0 -29
- data/templates/haml/scaffold/new.html.haml +0 -5
- data/templates/haml/scaffold/show.html.haml +0 -11
- data/templates/index.html.haml +0 -27
- data/templates/kuhsaft.css.sass +0 -2
- data/templates/rails/scaffold_controller/controller.rb +0 -89
- data/templates/setup_mail.rb +0 -1
- data/templates/shoestrap.yml +0 -41
@@ -0,0 +1,35 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
require_relative 'application_generator'
|
4
|
+
|
5
|
+
module Shoestrap
|
6
|
+
class CLI < Thor
|
7
|
+
|
8
|
+
method_option :css,
|
9
|
+
:type => :string,
|
10
|
+
:default => 'bootstrap',
|
11
|
+
:banner => 'Specify which CSS Framework is used by the Application Generator'
|
12
|
+
|
13
|
+
method_option :database,
|
14
|
+
:type => :string,
|
15
|
+
:default => 'postgresql',
|
16
|
+
:banner => 'Specify which database is used when creating new Rails app'
|
17
|
+
|
18
|
+
method_option :kuhsaft,
|
19
|
+
:type => :boolean,
|
20
|
+
:default => true,
|
21
|
+
:banner => 'Specify wether kuhsaft should be installed'
|
22
|
+
|
23
|
+
desc 'new <application_name>', 'Generate a new rails app with shoestrap'
|
24
|
+
|
25
|
+
def new(application_name)
|
26
|
+
application_generator.start(application_name, options)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def application_generator
|
32
|
+
@application_generator ||= ApplicationGenerator
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/shoestrap.gemspec
CHANGED
@@ -1,26 +1,33 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'shoestrap/version'
|
3
5
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "shoestrap"
|
8
|
+
spec.version = Shoestrap::VERSION
|
9
|
+
spec.authors = ["Felipe Kaufmann"]
|
10
|
+
spec.email = ["felipekaufmann@gmail.com"]
|
11
|
+
spec.description = %q{SC Bootstrapper and Generators}
|
12
|
+
spec.summary = %q{Rails App Bootstrapper and Generator used at Screen Concept}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
13
15
|
|
14
|
-
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
15
20
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "pry"
|
24
|
+
spec.add_development_dependency "rspec", '2.14.0.rc1'
|
25
|
+
spec.add_development_dependency "guard"
|
26
|
+
spec.add_development_dependency "guard-rspec"
|
27
|
+
spec.add_development_dependency "ruby_gntp"
|
20
28
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
s.add_dependency 'blazing', '0.4.0.beta3'
|
29
|
+
spec.add_dependency 'rails', '4.0.0'
|
30
|
+
spec.add_dependency 'airbrake'
|
31
|
+
spec.add_dependency 'thor'
|
32
|
+
spec.add_dependency 'blazing', '0.4.0.beta3'
|
26
33
|
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
require_relative '../../lib/shoestrap/application_generator'
|
2
|
+
require_relative '../spec_helper'
|
3
|
+
|
4
|
+
module Shoestrap
|
5
|
+
describe ApplicationGenerator do
|
6
|
+
|
7
|
+
let(:default_options) { { css: 'bootstrap', database: 'postgresql', kuhsaft: true } }
|
8
|
+
|
9
|
+
describe '#start' do
|
10
|
+
it 'says it is going to generate an app' do
|
11
|
+
ApplicationGenerator.stub(:shoestrap_generators).and_return(:true)
|
12
|
+
output = capture(:stdout, :stderr) do
|
13
|
+
ApplicationGenerator.start('test_app', default_options)
|
14
|
+
end
|
15
|
+
expect(output).to match(/\[shoestrap\] Generating new Rails Application test_app/)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'calls rails new with the shoestrap template' do
|
19
|
+
ApplicationGenerator.stub(:shoestrap_generators).and_return(:true)
|
20
|
+
capture(:stdout, :stderr) do
|
21
|
+
expect(Shell).to receive(:exec).with("rails new test_app -m #{File.join(
|
22
|
+
File.dirname(__FILE__).gsub('spec','lib'),
|
23
|
+
'../../templates/application_generator/application_template.rb')} -d postgresql")
|
24
|
+
ApplicationGenerator.start('test_app', default_options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'runs the shoestrap generators' do
|
29
|
+
capture(:stdout, :stderr) do
|
30
|
+
expect(ApplicationGenerator).to receive(:shoestrap_generators)
|
31
|
+
ApplicationGenerator.start('test_app', default_options)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#shoestrap_generators' do
|
37
|
+
|
38
|
+
before :each do
|
39
|
+
ApplicationGenerator.stub(:setup_bdd_environment)
|
40
|
+
ApplicationGenerator.stub(:setup_database)
|
41
|
+
ApplicationGenerator.stub(:setup_css_framework)
|
42
|
+
ApplicationGenerator.stub(:setup_smacss_files)
|
43
|
+
ApplicationGenerator.stub(:setup_coffee_files)
|
44
|
+
ApplicationGenerator.stub(:setup_kuhsaft)
|
45
|
+
ApplicationGenerator.stub(:install_gems)
|
46
|
+
ApplicationGenerator.stub(:apply_special_sauce)
|
47
|
+
ApplicationGenerator.stub(:setup_mailcatcher)
|
48
|
+
Dir.stub(:chdir).and_yield
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'installs requried gems' do
|
52
|
+
expect(ApplicationGenerator).to receive(:install_gems)
|
53
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'sets up the css framework' do
|
57
|
+
expect(ApplicationGenerator).to receive(:setup_css_framework)
|
58
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'sets up the smacss files' do
|
62
|
+
expect(ApplicationGenerator).to receive(:setup_smacss_files)
|
63
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'sets up the coffee files' do
|
67
|
+
expect(ApplicationGenerator).to receive(:setup_coffee_files)
|
68
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'sets up the bdd environment' do
|
72
|
+
expect(ApplicationGenerator).to receive(:setup_bdd_environment)
|
73
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'sets up kuhsaft' do
|
77
|
+
expect(ApplicationGenerator).to receive(:setup_kuhsaft)
|
78
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'applies special sauce when the correct environment variable is set' do
|
82
|
+
original_value = ENV['GIVE_ME_SPECIAL_SAUCE']
|
83
|
+
ENV['GIVE_ME_SPECIAL_SAUCE'] = "true"
|
84
|
+
expect(ApplicationGenerator).to receive(:apply_special_sauce)
|
85
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
86
|
+
ENV['GIVE_ME_SPECIAL_SAUCE'] = original_value
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'does not apply special sauce normally' do
|
90
|
+
original_value = ENV['GIVE_ME_SPECIAL_SAUCE']
|
91
|
+
ENV['GIVE_ME_SPECIAL_SAUCE'] = nil
|
92
|
+
expect(ApplicationGenerator).not_to receive(:apply_special_sauce)
|
93
|
+
ApplicationGenerator.shoestrap_generators('test_app', default_options)
|
94
|
+
ENV['GIVE_ME_SPECIAL_SAUCE'] = original_value
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe '#install_gems' do
|
99
|
+
it 'delegates to the Gem Install Generator' do
|
100
|
+
Shell.stub(:exec)
|
101
|
+
expect(GemInstallGenerator).to receive(:start)
|
102
|
+
ApplicationGenerator.install_gems([])
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'delegates to the Gem Install Generator' do
|
106
|
+
GemInstallGenerator.stub(:start)
|
107
|
+
expect(Shell).to receive(:exec).with('bundle')
|
108
|
+
ApplicationGenerator.install_gems([])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe '#setup_css_framework' do
|
113
|
+
it 'runs the generator it was called with' do
|
114
|
+
DummyGenerator = double
|
115
|
+
expect(DummyGenerator).to receive('start')
|
116
|
+
ApplicationGenerator.setup_css_framework('dummy')
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe '#setup_smacss_files' do
|
121
|
+
it 'runs the smacss files generator' do
|
122
|
+
expect(SmacssFilesGenerator).to receive('start')
|
123
|
+
ApplicationGenerator.setup_smacss_files
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe '#setup_coffee_files' do
|
128
|
+
it 'runs the coffee files generator' do
|
129
|
+
expect(CoffeeFilesGenerator).to receive('start')
|
130
|
+
ApplicationGenerator.setup_coffee_files
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe '#setup_bdd_environment' do
|
135
|
+
it 'runs the rspec generator' do
|
136
|
+
expect(BddGenerator).to receive('start')
|
137
|
+
ApplicationGenerator.setup_bdd_environment
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe '#setup_kuhsaft' do
|
142
|
+
it 'delegates to the Gem Install Generator' do
|
143
|
+
expect(KuhsaftGenerator).to receive(:start)
|
144
|
+
ApplicationGenerator.setup_kuhsaft
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
describe '#apply_special_sauce' do
|
149
|
+
it 'calls sauce apply on current directory' do
|
150
|
+
expect(Shell).to receive(:exec).with('sauce apply . --appname=foo')
|
151
|
+
ApplicationGenerator.apply_special_sauce('foo')
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
describe '#required_gems' do
|
156
|
+
it 'includes kuhsaft by default' do
|
157
|
+
pending "waiting for kuhsaft pre-release"
|
158
|
+
#expect(ApplicationGenerator.required_gems(default_options)).to include('kuhsaft')
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'includes bootstrap-sass by default' do
|
162
|
+
expect(ApplicationGenerator.required_gems(default_options)).to include('bootstrap-sass')
|
163
|
+
end
|
164
|
+
|
165
|
+
it 'includes zurb-foundation when css option is set to foundation' do
|
166
|
+
expect(ApplicationGenerator.required_gems(default_options.merge( css: 'foundation' ))).to include('zurb-foundation')
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../../lib/shoestrap/cli'
|
2
|
+
require_relative '../spec_helper'
|
3
|
+
|
4
|
+
module Shoestrap
|
5
|
+
describe CLI do
|
6
|
+
|
7
|
+
subject { CLI }
|
8
|
+
|
9
|
+
describe '#new' do
|
10
|
+
it 'delegates to ApplicationGenerator' do
|
11
|
+
expect(ApplicationGenerator).to receive(:start)
|
12
|
+
subject.start(['new', 'foo'])
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'does not delegate to ApplicationGenerator when no application name is provided' do
|
16
|
+
capture(:stdout, :stderr) do
|
17
|
+
expect(ApplicationGenerator).not_to receive(:start)
|
18
|
+
subject.start(['new'])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'passes bootstrap & postgresql & kuhsaft as default to the ApplicationGenerator' do
|
23
|
+
expect(ApplicationGenerator).to receive(:start).with('test_app', { 'css' => 'bootstrap', 'database' => 'postgresql', 'kuhsaft' => true })
|
24
|
+
subject.start(['new', 'test_app'])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
|
3
|
+
#
|
4
|
+
# Override Shoestrap::Shell.exec so no acutal shelling out
|
5
|
+
# happens when running tests.
|
6
|
+
#
|
7
|
+
# You can set expectations for system calls like so:
|
8
|
+
# Shell.expects(:exec).with('rails new test_app')
|
9
|
+
#
|
10
|
+
module Shoestrap
|
11
|
+
module Shell
|
12
|
+
extend self
|
13
|
+
|
14
|
+
def self.exec(command)
|
15
|
+
puts "#{command}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
# Use capture to silece and capture stderr/stdout
|
22
|
+
# Useful to hide logged messages etc. in test run
|
23
|
+
#
|
24
|
+
def capture(*streams)
|
25
|
+
streams.map! { |stream| stream.to_s }
|
26
|
+
begin
|
27
|
+
result = StringIO.new
|
28
|
+
streams.each { |stream| eval "$#{stream} = result" }
|
29
|
+
yield
|
30
|
+
ensure
|
31
|
+
streams.each { |stream| eval("$#{stream} = #{stream.upcase}") }
|
32
|
+
end
|
33
|
+
result.string
|
34
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
!!! 5
|
2
|
+
/[if lt IE 7] <html class='no-js lt-ie9 lt-ie8 lt-ie7'>
|
3
|
+
/[if IE 7] <html class='no-js lt-ie9 lt-ie8'>
|
4
|
+
/[if IE 8] <html class='no-js lt-ie9'>
|
5
|
+
/[if gt IE 8]><!
|
6
|
+
%html.no-js{ lang: I18n.locale }
|
7
|
+
/ <![endif]
|
8
|
+
%head
|
9
|
+
%title= content_for?(:title) ? yield(:title) : 'Untitled'
|
10
|
+
|
11
|
+
%meta{ charset: 'utf-8' }
|
12
|
+
%meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge,chrome=1' }
|
13
|
+
%meta{ name: 'keywords', content: '' }
|
14
|
+
%meta{ name: 'description', content: '' }
|
15
|
+
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0' }
|
16
|
+
|
17
|
+
-# Favicons
|
18
|
+
= favicon_link_tag('favicons/favicon-sc-129x129.png', rel: 'apple-touch-icon', type: 'image/png')
|
19
|
+
= favicon_link_tag('favicons/favicon-sc-32x32.png', rel: 'icon', type: 'image/png')
|
20
|
+
<!--[if IE]>
|
21
|
+
= favicon_link_tag('favicons/favicon-sc-16x16.ico')
|
22
|
+
<![endif]-->
|
23
|
+
|
24
|
+
-# Typekit
|
25
|
+
= javascript_include_tag '//use.typekit.net/XXXX.js', :media => 'all'
|
26
|
+
:javascript
|
27
|
+
try{Typekit.load();}catch(e){}
|
28
|
+
|
29
|
+
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
|
30
|
+
= javascript_include_tag 'modernizr', 'data-turbolinks-track' => true
|
31
|
+
= csrf_meta_tags
|
32
|
+
|
33
|
+
%body{ class: body_class }
|
34
|
+
= render_navigation
|
35
|
+
|
36
|
+
= yield
|
37
|
+
|
38
|
+
-# Application JavaScripts
|
39
|
+
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
40
|
+
|
41
|
+
-# Selectivizr
|
42
|
+
<!--[if lte IE 8]>
|
43
|
+
= javascript_include_tag 'selectivizr'
|
44
|
+
<![endif]-->
|
45
|
+
|
46
|
+
-# Google Analytics
|
47
|
+
:javascript
|
48
|
+
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview'],['_trackPageLoadTime']];
|
49
|
+
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
50
|
+
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
51
|
+
s.parentNode.insertBefore(g,s)}(document,'script'));
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#
|
2
|
+
# SC Rails Application Template
|
3
|
+
#
|
4
|
+
def source_paths
|
5
|
+
[File.expand_path(File.dirname(__FILE__))]
|
6
|
+
end
|
7
|
+
|
8
|
+
#
|
9
|
+
# Locale and Timezone
|
10
|
+
#
|
11
|
+
application "config.time_zone = 'Bern'"
|
12
|
+
application "config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]"
|
13
|
+
application "config.i18n.available_locales = [:de]"
|
14
|
+
application "config.i18n.default_locale = :de"
|
15
|
+
|
16
|
+
inject_into_file 'config/application.rb', :after => "Application < Rails::Application" do
|
17
|
+
<<-eos
|
18
|
+
# Customize generators
|
19
|
+
config.generators do |g|
|
20
|
+
g.stylesheets false
|
21
|
+
g.form_builder :simple_form
|
22
|
+
g.template_engine :haml
|
23
|
+
g.test_framework :rspec
|
24
|
+
g.javascripts false
|
25
|
+
g.assets false
|
26
|
+
g.helper false
|
27
|
+
end
|
28
|
+
eos
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# Default Gems (others are added to gemfile by individual generators called after app generation)
|
33
|
+
#
|
34
|
+
gem 'simple_form', '3.0.0.rc'
|
35
|
+
gem 'haml'
|
36
|
+
gem 'haml-rails'
|
37
|
+
gem 'simple-navigation'
|
38
|
+
gem 'mail'
|
39
|
+
gem 'fabrication'
|
40
|
+
gem 'shoestrap'
|
41
|
+
gem 'kuhsaft'
|
42
|
+
gem 'selectivizr-rails'
|
43
|
+
gem 'modernizr-rails'
|
44
|
+
gem 'bourbon'
|
45
|
+
|
46
|
+
gem_group :development, :test do
|
47
|
+
gem 'pry'
|
48
|
+
gem 'ruby_gntp'
|
49
|
+
gem 'rspec-rails'
|
50
|
+
gem 'guard-rspec'
|
51
|
+
gem 'guard-spring'
|
52
|
+
end
|
53
|
+
|
54
|
+
gem_group :test do
|
55
|
+
gem 'database_cleaner'
|
56
|
+
end
|
57
|
+
|
58
|
+
#
|
59
|
+
# Application layout
|
60
|
+
#
|
61
|
+
remove_file "app/views/layouts/application.html.erb"
|
62
|
+
copy_file "application.html.haml", "app/views/layouts/application.html.haml"
|
63
|
+
|
64
|
+
#
|
65
|
+
# Application helper
|
66
|
+
#
|
67
|
+
copy_file "application_helper.rb", "app/helpers/application_helper.rb", force: true
|
68
|
+
|
69
|
+
#
|
70
|
+
# Favicons
|
71
|
+
#
|
72
|
+
directory "favicons", "app/assets/images/favicons/"
|