stationed 0.0.1

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