stationed 0.0.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.
Files changed (135) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +20 -0
  3. data/README.md +136 -0
  4. data/Rakefile +27 -0
  5. data/app/helpers/crud_link_helper.rb +22 -0
  6. data/app/helpers/page_title_helper.rb +107 -0
  7. data/lib/generators/stationed/templates_generator.rb +24 -0
  8. data/lib/stationed/app_builder.rb +13 -0
  9. data/lib/stationed/crud_tag.rb +70 -0
  10. data/lib/stationed/engine.rb +8 -0
  11. data/lib/stationed/generators/app_generator.rb +52 -0
  12. data/lib/stationed/generators/plugins/capybara.rb +12 -0
  13. data/lib/stationed/generators/plugins/capybara_webkit.rb +14 -0
  14. data/lib/stationed/generators/plugins/database_cleaner.rb +13 -0
  15. data/lib/stationed/generators/plugins/devise.rb +43 -0
  16. data/lib/stationed/generators/plugins/draper.rb +14 -0
  17. data/lib/stationed/generators/plugins/factory_girl.rb +14 -0
  18. data/lib/stationed/generators/plugins/flashes.rb +12 -0
  19. data/lib/stationed/generators/plugins/foreman.rb +15 -0
  20. data/lib/stationed/generators/plugins/generators.rb +12 -0
  21. data/lib/stationed/generators/plugins/guard.rb +26 -0
  22. data/lib/stationed/generators/plugins/haml.rb +12 -0
  23. data/lib/stationed/generators/plugins/i18n_spec.rb +13 -0
  24. data/lib/stationed/generators/plugins/kaminari.rb +18 -0
  25. data/lib/stationed/generators/plugins/layout.rb +13 -0
  26. data/lib/stationed/generators/plugins/normalize.rb +12 -0
  27. data/lib/stationed/generators/plugins/pry.rb +19 -0
  28. data/lib/stationed/generators/plugins/pundit.rb +20 -0
  29. data/lib/stationed/generators/plugins/rack_deflater.rb +17 -0
  30. data/lib/stationed/generators/plugins/responders.rb +28 -0
  31. data/lib/stationed/generators/plugins/rspec.rb +21 -0
  32. data/lib/stationed/generators/plugins/rubocop.rb +14 -0
  33. data/lib/stationed/generators/plugins/simple_form.rb +32 -0
  34. data/lib/stationed/generators/plugins/simple_form_inputs.rb +13 -0
  35. data/lib/stationed/generators/plugins/spring.rb +13 -0
  36. data/lib/stationed/generators/plugins/stationed.rb +12 -0
  37. data/lib/stationed/generators/plugins/strong_parameters.rb +18 -0
  38. data/lib/stationed/generators/plugins/styles.rb +24 -0
  39. data/lib/stationed/generators/plugins/turbolinks.rb +13 -0
  40. data/lib/stationed/generators/plugins/webmock.rb +13 -0
  41. data/lib/stationed/generators/plugins/wiki.rb +20 -0
  42. data/lib/stationed/generators/plugins/yard.rb +14 -0
  43. data/lib/stationed/generators/plugins.rb +10 -0
  44. data/lib/stationed/generators/templates/Deployment.md +3 -0
  45. data/lib/stationed/generators/templates/Home.md +8 -0
  46. data/lib/stationed/generators/templates/Procfile +1 -0
  47. data/lib/stationed/generators/templates/README.md.erb +42 -0
  48. data/lib/stationed/generators/templates/Services.md +3 -0
  49. data/lib/stationed/generators/templates/Setup.md +58 -0
  50. data/lib/stationed/generators/templates/Testing.md +3 -0
  51. data/lib/stationed/generators/templates/application.html.haml +11 -0
  52. data/lib/stationed/generators/templates/application.scss +6 -0
  53. data/lib/stationed/generators/templates/application_decorator.rb +23 -0
  54. data/lib/stationed/generators/templates/application_responder.rb +6 -0
  55. data/lib/stationed/generators/templates/authorization.rb +11 -0
  56. data/lib/stationed/generators/templates/capybara_webkit.rb +1 -0
  57. data/lib/stationed/generators/templates/database_cleaner.rb +19 -0
  58. data/lib/stationed/generators/templates/devise.rb +3 -0
  59. data/lib/stationed/generators/templates/env.erb +3 -0
  60. data/lib/stationed/generators/templates/factories_spec.rb +10 -0
  61. data/lib/stationed/generators/templates/factory_girl.rb +3 -0
  62. data/lib/stationed/generators/templates/flashes.html.haml +5 -0
  63. data/lib/stationed/generators/templates/generators.rb +11 -0
  64. data/lib/stationed/generators/templates/gollum.rake +5 -0
  65. data/lib/stationed/generators/templates/gollum.rb +5 -0
  66. data/lib/stationed/generators/templates/i18n_spec.rb +10 -0
  67. data/lib/stationed/generators/templates/layout.scss +3 -0
  68. data/lib/stationed/generators/templates/normalize.css +425 -0
  69. data/lib/stationed/generators/templates/paginating_decorator.rb +7 -0
  70. data/lib/stationed/generators/templates/pundit.rb +1 -0
  71. data/lib/stationed/generators/templates/rubocop.rake +5 -0
  72. data/lib/stationed/generators/templates/rubocop.yml +38 -0
  73. data/lib/stationed/generators/templates/select2_input.rb +14 -0
  74. data/lib/stationed/generators/templates/simple_form.rb +65 -0
  75. data/lib/stationed/generators/templates/simplecov +6 -0
  76. data/lib/stationed/generators/templates/spec_helper.rb +27 -0
  77. data/lib/stationed/generators/templates/spring.rb +1 -0
  78. data/lib/stationed/generators/templates/static_input.rb +11 -0
  79. data/lib/stationed/generators/templates/webmock.rb +1 -0
  80. data/lib/stationed/generators/templates/yardopts +7 -0
  81. data/lib/stationed/version.rb +3 -0
  82. data/lib/stationed.rb +4 -0
  83. data/lib/tasks/stationed_tasks.rake +4 -0
  84. data/lib/templates/haml/scaffold/_form.html.haml +11 -0
  85. data/lib/templates/haml/scaffold/edit.html.haml +2 -0
  86. data/lib/templates/haml/scaffold/index.html.haml +24 -0
  87. data/lib/templates/haml/scaffold/new.html.haml +2 -0
  88. data/lib/templates/haml/scaffold/show.html.haml +9 -0
  89. data/lib/templates/rails/scaffold_controller/controller.rb +64 -0
  90. data/lib/templates/rspec/integration/request_spec.rb +10 -0
  91. data/lib/templates/rspec/model/model_spec.rb +6 -0
  92. data/lib/templates/rspec/scaffold/controller_spec.rb +224 -0
  93. data/lib/templates/rspec/scaffold/edit_spec.rb +20 -0
  94. data/lib/templates/rspec/scaffold/index_spec.rb +20 -0
  95. data/lib/templates/rspec/scaffold/new_spec.rb +20 -0
  96. data/lib/templates/rspec/scaffold/routing_spec.rb +17 -0
  97. data/lib/templates/rspec/scaffold/show_spec.rb +14 -0
  98. data/spec/dummy/README.rdoc +28 -0
  99. data/spec/dummy/Rakefile +6 -0
  100. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  101. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  102. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  103. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  104. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  105. data/spec/dummy/bin/bundle +3 -0
  106. data/spec/dummy/bin/rails +4 -0
  107. data/spec/dummy/bin/rake +4 -0
  108. data/spec/dummy/config/application.rb +23 -0
  109. data/spec/dummy/config/boot.rb +5 -0
  110. data/spec/dummy/config/database.yml +25 -0
  111. data/spec/dummy/config/environment.rb +5 -0
  112. data/spec/dummy/config/environments/development.rb +29 -0
  113. data/spec/dummy/config/environments/production.rb +80 -0
  114. data/spec/dummy/config/environments/test.rb +36 -0
  115. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  116. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  117. data/spec/dummy/config/initializers/inflections.rb +16 -0
  118. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  119. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  120. data/spec/dummy/config/initializers/session_store.rb +3 -0
  121. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  122. data/spec/dummy/config/locales/en.yml +23 -0
  123. data/spec/dummy/config/routes.rb +56 -0
  124. data/spec/dummy/config.ru +4 -0
  125. data/spec/dummy/db/test.sqlite3 +0 -0
  126. data/spec/dummy/log/development.log +0 -0
  127. data/spec/dummy/log/test.log +1418 -0
  128. data/spec/dummy/public/404.html +58 -0
  129. data/spec/dummy/public/422.html +58 -0
  130. data/spec/dummy/public/500.html +57 -0
  131. data/spec/dummy/public/favicon.ico +0 -0
  132. data/spec/helpers/crud_link_helper_spec.rb +88 -0
  133. data/spec/helpers/page_title_helper_spec.rb +83 -0
  134. data/spec/spec_helper.rb +14 -0
  135. metadata +261 -0
@@ -0,0 +1,12 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Haml
5
+ def finish_template
6
+ gem 'haml-rails'
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module I18nSpec
5
+ def finish_template
6
+ gem 'i18n-spec', group: :test
7
+ copy_file 'i18n_spec.rb', 'spec/locales/i18n_spec.rb'
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Kaminari
5
+ def finish_template
6
+ gem 'kaminari'
7
+ super
8
+ end
9
+
10
+ def run_bundle
11
+ super
12
+ generate 'kaminari:config'
13
+ generate 'kaminari:views default'
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Layout
5
+ def finish_template
6
+ remove_file 'app/views/layouts/application.html.haml'
7
+ copy_file 'application.html.haml', 'app/views/layouts/application.html.haml'
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Normalize
5
+ def finish_template
6
+ copy_file 'normalize.css', 'vendor/assets/stylesheets/normalize.css'
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Pry
5
+ def finish_template
6
+ gem_group :development, :test do
7
+ gem 'pry-rails'
8
+ gem 'pry-byebug'
9
+ gem 'pry-stack_explorer'
10
+ gem 'better_errors'
11
+ gem 'binding_of_caller'
12
+ end
13
+ super
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,20 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Pundit
5
+ def finish_template
6
+ gem 'pundit'
7
+ copy_file 'pundit.rb', 'spec/support/pundit.rb'
8
+ copy_file 'authorization.rb', 'app/controllers/concerns/authorization.rb'
9
+ inject_into_class 'app/controllers/application_controller.rb', 'ApplicationController', "\n include Authorization\n\n"
10
+ super
11
+ end
12
+
13
+ def run_bundle
14
+ super
15
+ generate 'pundit:install'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module RackDeflater
5
+ def finish_template
6
+ environment nil, env: :production do
7
+ <<-RUBY
8
+ # Enable deflate / gzip compression of controller-generated responses
9
+ config.middleware.use Rack::Deflater
10
+ RUBY
11
+ end
12
+ super
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Responders
5
+ def finish_template
6
+ gem 'responders'
7
+ copy_file 'application_responder.rb', 'lib/application_responder.rb'
8
+
9
+ inject_into_class 'app/controllers/application_controller.rb', 'ApplicationController' do
10
+ <<-RUBY
11
+ self.responder = ApplicationResponder
12
+ respond_to :html
13
+
14
+ RUBY
15
+ end
16
+
17
+ application do
18
+ <<-RUBY
19
+ # Enable auto-loading from ./lib
20
+ config.autoload_paths << Rails.root.join('lib')
21
+ RUBY
22
+ end
23
+ super
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Rspec
5
+ def finish_template
6
+ gem 'simplecov', group: :test
7
+ gem 'rspec-rails', group: [:development, :test]
8
+ copy_file 'simplecov', '.simplecov'
9
+ super
10
+ end
11
+
12
+ def run_bundle
13
+ super
14
+ generate 'rspec:install'
15
+ remove_file 'spec/spec_helper.rb'
16
+ copy_file 'spec_helper.rb', 'spec/spec_helper.rb'
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Rubocop
5
+ def finish_template
6
+ gem 'rubocop', group: :development
7
+ copy_file 'rubocop.rake', 'lib/tasks/rubocop.rake'
8
+ copy_file 'rubocop.yml', '.rubocop.yml'
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module SimpleForm
5
+ def finish_template
6
+ gem 'simple_form'
7
+ super
8
+ end
9
+
10
+ def run_bundle
11
+ super
12
+ generate 'simple_form:install'
13
+ remove_file 'config/initializers/simple_form.rb'
14
+ copy_file 'simple_form.rb', 'config/initializers/simple_form.rb'
15
+ application do
16
+ <<-RUBY
17
+ # Remove Rails' default error wrapper tags and rely solely on SimpleForm
18
+ # and its generated markup.
19
+ config.action_view.field_error_proc = lambda do |html_tag, instance|
20
+ html_tag.html_safe
21
+ end
22
+
23
+ # Always use SimpleForm for forms without needing the simple_form_for
24
+ # helper.
25
+ config.action_view.default_form_builder = SimpleForm::FormBuilder
26
+ RUBY
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module SimpleFormInputs
5
+ def finish_template
6
+ copy_file 'static_input.rb', 'app/inputs/static_input.rb'
7
+ copy_file 'select2_input.rb', 'app/inputs/select2_input.rb'
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Spring
5
+ def finish_template
6
+ gem 'spring-commands-rspec', group: :development
7
+ copy_file 'spring.rb', 'config/spring.rb'
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Stationed
5
+ def finish_template
6
+ gem 'stationed', path: '~/code/stationed'
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module StrongParameters
5
+ def finish_template
6
+ environment nil, env: :development do
7
+ <<-RUBY
8
+ # Raise an ActionController::UnpermittedParameters exception when
9
+ # a parameter is not explcitly permitted but is passed anyway.
10
+ config.action_controller.action_on_unpermitted_parameters = :raise
11
+ RUBY
12
+ end
13
+ super
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Styles
5
+ def finish_template
6
+ gem 'bourbon'
7
+ gem 'neat'
8
+ gem 'bitters'
9
+ remove_file 'app/assets/stylesheets/application.css'
10
+ copy_file 'application.scss', 'app/assets/stylesheets/application.scss'
11
+ copy_file 'layout.scss', 'app/assets/stylesheets/_layout.scss'
12
+ super
13
+ end
14
+
15
+ def run_bundle
16
+ super
17
+ run 'bitters install'
18
+ FileUtils.mv 'bitters', 'app/assets/stylesheets/bitters'
19
+ gsub_file 'app/assets/stylesheets/bitters/_bitters.scss', %r{// @import}, '@import'
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Turbolinks
5
+ def finish_template
6
+ gsub_file 'Gemfile', /^gem 'turbolinks'.*\n/, ''
7
+ gsub_file 'app/assets/javascripts/application.js', %r{//= require turbolinks\n}, ''
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Webmock
5
+ def finish_template
6
+ gem 'webmock', group: :test
7
+ copy_file 'webmock.rb', 'spec/support/webmock.rb'
8
+ super
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Wiki
5
+ def finish_template
6
+ gem 'gollum', require: 'gollum/app', group: [:development]
7
+ route "mount Precious::App => '/wiki' if defined?(Precious)"
8
+ copy_file 'Home.md', 'doc/wiki/Home.md'
9
+ copy_file 'Setup.md', 'doc/wiki/Setup.md'
10
+ copy_file 'Testing.md', 'doc/wiki/Testing.md'
11
+ copy_file 'Services.md', 'doc/wiki/Services.md'
12
+ copy_file 'Deployment.md', 'doc/wiki/Deployment.md'
13
+ copy_file 'gollum.rake', 'lib/tasks/gollum.rake'
14
+ copy_file 'gollum.rb', 'config/initializers/gollum.rb'
15
+ super
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ module Yard
5
+ def finish_template
6
+ gem 'yard', require: false, group: :doc
7
+ gem 'kramdown', require: false, group: :doc
8
+ copy_file 'yardopts', '.yardopts'
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module Stationed
2
+ module Generators
3
+ module Plugins
4
+ end
5
+ end
6
+ end
7
+
8
+ Dir.glob(File.expand_path('../plugins/*.rb', __FILE__)).each do |filename|
9
+ require filename
10
+ end
@@ -0,0 +1,3 @@
1
+ # Deployment
2
+
3
+ Describe how to the deploy the application
@@ -0,0 +1,8 @@
1
+ # Rails Application Development Wiki
2
+
3
+ ## Table of contents
4
+
5
+ * [[Setup|Setup Instructions]]
6
+ * [[Services]]
7
+ * [[Testing]]
8
+ * [[Deployment]]
@@ -0,0 +1 @@
1
+ web: bin/thin start --port $PORT --environment $RAILS_ENV
@@ -0,0 +1,42 @@
1
+ # <%= app_name %>
2
+
3
+ Provide a brief description of the purpose of this application.
4
+
5
+ ## Setup instructions
6
+
7
+ This application requires a working installation of Ruby and Rubygems on your
8
+ system, along with a functioning database such as SQLite or PostgreSQL. Install
9
+ Ruby gem dependencies using Bundler.
10
+
11
+ For full instructions, see [doc/wiki/Setup.md](doc/wiki/Setup.md).
12
+
13
+ ## Documentation
14
+
15
+ ### Wiki
16
+
17
+ The application-specific Wiki is stored in `doc/wiki` and contains anything
18
+ need to know to work with this project. You can view and edit the wiki in a
19
+ web-based application using the [Gollum][]
20
+ project.
21
+
22
+ ### API docs
23
+
24
+ You can generate API documentation for this project with the following Rake
25
+ task:
26
+
27
+ % bin/rake doc:yard
28
+
29
+ Documentation will be output in HTML format in `doc/app`. To also generate API
30
+ docs for the Rails framework, use:
31
+
32
+ % bin/rake doc:api
33
+
34
+ Further usage guides for the Rails framework can be generated using this task:
35
+
36
+ % bin/rake doc:guides
37
+
38
+ ## Authors
39
+
40
+ * Your Name <name@email.com>
41
+
42
+ [Gollum]: https://github.com/gollum/gollum
@@ -0,0 +1,3 @@
1
+ # Services
2
+
3
+ Describe additional serivces (job queues, cache servers, search engines, etc.)
@@ -0,0 +1,58 @@
1
+ # Setup instructions
2
+
3
+ This page will guide you through setting up the application.
4
+
5
+ ## 1. Get the code
6
+
7
+ First, make sure you have the repository checked out:
8
+
9
+ % git clone path/to/repo.git
10
+
11
+ ## 2. System dependencies
12
+
13
+ As this is a Ruby on Rails application, your system will need both Ruby and
14
+ Rubygems installed. Ensure that it is:
15
+
16
+ % ruby --version
17
+ ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
18
+ % gem --version
19
+ 2.2.2
20
+
21
+ If you don't have Ruby installed yet, using
22
+ {Rbenv}[https://github.com/sstephenson/rbenv] or {rvm}[http://rvm.io] is
23
+ recommeded to install it.
24
+
25
+ Once you've got Ruby set up, install {Bundler}[http://bundler.io] to install
26
+ further dependencies.
27
+
28
+ % gem install bundler
29
+ % bundle install
30
+
31
+ ## 3. Database configuration
32
+
33
+ Once Bundler has installed all required Ruby gems, you can go ahead and setup
34
+ your database. You will need to specify your database connection details in
35
+ `config/database.yml`. There is a template for you to customize in
36
+ `config/database.yml.example`.
37
+
38
+ ## 4. Application configuration
39
+
40
+ The application further depends on a couple of environment variables. These are
41
+ read from `.env`. There is a template file `env.example` for you to customize.
42
+ Create your personal `.env` file and make sure to fill in the blanks.
43
+
44
+ ## 5. Database setup
45
+
46
+ Once all your settings are done, you can create your database, load the schema
47
+ and any seed data with Rake:
48
+
49
+ % bin/rake db:setup
50
+
51
+ ## 6. Launch web server
52
+
53
+ Now you can start a new Rails server to browse through the application:
54
+
55
+ % bin/rails server
56
+
57
+ The application should now be accessible at
58
+ [http://localhost:3000](http://localhost:3000).
@@ -0,0 +1,3 @@
1
+ # Testing
2
+
3
+ Describe how to run the test suite
@@ -0,0 +1,11 @@
1
+ !!! 5
2
+ %html{ lang: 'en' }
3
+ %head
4
+ %meta{ charset: 'utf-8' }
5
+ %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0' }
6
+ %title= page_title
7
+ = stylesheet_link_tag 'application'
8
+ = csrf_meta_tags
9
+ %body
10
+ = yield
11
+ = javascript_include_tag 'application'
@@ -0,0 +1,6 @@
1
+ @import 'bourbon';
2
+ @import 'normalize';
3
+ @import 'bitters/bitters';
4
+ @import 'neat';
5
+ @import 'layout';
6
+ // @import 'modules/*';
@@ -0,0 +1,23 @@
1
+ class ApplicationDecorator < Draper::Decorator
2
+ # Always use our custom PaginatingDecorator to decorate ActiveRelation
3
+ # objects so we can properly delegate Kaminari's pagination extensions.
4
+ def self.collection_decorator_class
5
+ PaginatingDecorator
6
+ end
7
+
8
+ # Override Haml's default object notation to use the class name
9
+ # it would have used had an object not been decorated.
10
+ #
11
+ # This removes the need for markup like:
12
+ #
13
+ # %div[person.person]
14
+ # ...
15
+ #
16
+ # Instead allowing:
17
+ #
18
+ # %div[person]
19
+ # ...
20
+ def haml_object_ref
21
+ model.class.to_s.underscore
22
+ end
23
+ end
@@ -0,0 +1,6 @@
1
+ # Base responder for our application, that uses the Responders gem to mix in
2
+ # extra functinoality into Rails' default Responder.
3
+ class ApplicationResponder < ActionController::Responder
4
+ include Responders::FlashResponder
5
+ include Responders::HttpCacheResponder
6
+ end
@@ -0,0 +1,11 @@
1
+ # Controller concern for authorization using Pundit. This ensures that actions
2
+ # properly use Pundit's authorization hooks (`authorize` and `policy_scope`).
3
+ module Authorization
4
+ extend ActiveSupport::Concern
5
+ include Pundit
6
+
7
+ included do
8
+ after_action :verify_authorized, except: :index
9
+ after_action :verify_policy_scoped, only: :index
10
+ end
11
+ end
@@ -0,0 +1 @@
1
+ Capybara.javascript_driver = :webkit
@@ -0,0 +1,19 @@
1
+ RSpec.configure do |config|
2
+ config.before(:suite) do
3
+ DatabaseCleaner.strategy = :transaction
4
+ DatabaseCleaner.clean_with(:truncation)
5
+ end
6
+
7
+ config.before(:each) do
8
+ if example.metadata[:js]
9
+ DatabaseCleaner.strategy = :truncation
10
+ else
11
+ DatabaseCleaner.strategy = :transaction
12
+ DatabaseCleaner.start
13
+ end
14
+ end
15
+
16
+ config.after(:each) do
17
+ DatabaseCleaner.clean
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include Devise::TestHelpers, type: :controller
3
+ end
@@ -0,0 +1,3 @@
1
+ PORT=3000
2
+ RAILS_ENV=development
3
+ RAILS_SECRET_KEY_BASE=<%= SecureRandom.hex(64) %>
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'factories' do
4
+ FactoryGirl.factories.map(&:name).each do |factory_name|
5
+ specify "#{factory_name} factory is valid", :factory do
6
+ factory = build(factory_name)
7
+ expect(factory).to be_valid if factory.respond_to?(:valid?)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include FactoryGirl::Syntax::Methods
3
+ end
@@ -0,0 +1,5 @@
1
+ - if flash.any?
2
+ #flash
3
+ - flash.each do |type, message|
4
+ .flash{ class: type }= message
5
+
@@ -0,0 +1,11 @@
1
+ Rails.application.config.generators do |g|
2
+ g.template_engine :haml
3
+ g.test_framework :rspec, fixture: true, fixture_replacement: :factory_girl
4
+ g.view_specs true
5
+ g.helper_specs false
6
+ g.helper false
7
+ g.javascripts false
8
+ g.stylesheets false
9
+ g.fixture_replacement :factory_girl, dir: 'spec/factories'
10
+ g.assets false
11
+ end