tasks_scheduler 0.0.2

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 (71) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +33 -0
  5. data/app/assets/javascripts/tasks_scheduler.js +59 -0
  6. data/app/assets/stylesheets/tasks_scheduler.scss +34 -0
  7. data/app/controllers/scheduled_tasks_controller.rb +45 -0
  8. data/app/helpers/scheduled_tasks_helper.rb +17 -0
  9. data/app/models/scheduled_task.rb +61 -0
  10. data/app/models/scheduled_task/checker.rb +54 -0
  11. data/app/models/scheduled_task/log.rb +28 -0
  12. data/app/models/scheduled_task/runner.rb +50 -0
  13. data/app/models/scheduled_task/status.rb +53 -0
  14. data/app/views/scheduled_tasks/log.html.erb +9 -0
  15. data/app/views/scheduled_tasks/status.html.erb +7 -0
  16. data/app/views/scheduled_tasks/status_content.html.erb +47 -0
  17. data/config/initializers/assets.rb +1 -0
  18. data/config/locales/en.yml +22 -0
  19. data/config/locales/pt-BR.yml +22 -0
  20. data/config/routes.rb +13 -0
  21. data/db/migrate/20161122123828_create_scheduled_tasks.rb +11 -0
  22. data/db/migrate/20161123130153_add_status_attributes_to_scheduled_tasks.rb +9 -0
  23. data/db/migrate/20161124200712_add_pid_to_scheduled_tasks.rb +5 -0
  24. data/db/migrate/20161128163702_add_args_to_scheduled_tasks.rb +5 -0
  25. data/exe/tasks_scheduler +19 -0
  26. data/exe/tasks_scheduler_run_task +14 -0
  27. data/lib/tasks_scheduler.rb +9 -0
  28. data/lib/tasks_scheduler/checker.rb +20 -0
  29. data/lib/tasks_scheduler/cron_parser_patch.rb +27 -0
  30. data/lib/tasks_scheduler/cron_scheduling_validator.rb +18 -0
  31. data/lib/tasks_scheduler/engine.rb +9 -0
  32. data/lib/tasks_scheduler/version.rb +3 -0
  33. data/test/dummy/README.rdoc +28 -0
  34. data/test/dummy/Rakefile +6 -0
  35. data/test/dummy/app/assets/javascripts/application.js +13 -0
  36. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  37. data/test/dummy/app/controllers/application_controller.rb +5 -0
  38. data/test/dummy/app/helpers/application_helper.rb +2 -0
  39. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  40. data/test/dummy/bin/bundle +3 -0
  41. data/test/dummy/bin/rails +4 -0
  42. data/test/dummy/bin/rake +4 -0
  43. data/test/dummy/bin/setup +29 -0
  44. data/test/dummy/config.ru +4 -0
  45. data/test/dummy/config/application.rb +25 -0
  46. data/test/dummy/config/boot.rb +5 -0
  47. data/test/dummy/config/database.yml +25 -0
  48. data/test/dummy/config/environment.rb +5 -0
  49. data/test/dummy/config/environments/development.rb +41 -0
  50. data/test/dummy/config/environments/production.rb +81 -0
  51. data/test/dummy/config/environments/test.rb +42 -0
  52. data/test/dummy/config/initializers/assets.rb +11 -0
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +9 -0
  54. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  55. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  56. data/test/dummy/config/initializers/inflections.rb +16 -0
  57. data/test/dummy/config/initializers/mime_types.rb +4 -0
  58. data/test/dummy/config/initializers/session_store.rb +3 -0
  59. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  60. data/test/dummy/config/locales/en.yml +23 -0
  61. data/test/dummy/config/routes.rb +56 -0
  62. data/test/dummy/config/secrets.yml +22 -0
  63. data/test/dummy/db/schema.rb +31 -0
  64. data/test/dummy/public/404.html +67 -0
  65. data/test/dummy/public/422.html +67 -0
  66. data/test/dummy/public/500.html +66 -0
  67. data/test/dummy/public/favicon.ico +0 -0
  68. data/test/fixtures/scheduled_tasks.yml +4 -0
  69. data/test/models/scheduled_task_test.rb +72 -0
  70. data/test/test_helper.rb +36 -0
  71. metadata +223 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,4 @@
1
+ test_scheduling:
2
+ scheduling: 0 0 * * *
3
+ task: test
4
+ next_run: 2016-11-22 09:38:28
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+
3
+ class ScheduledTaskTest < ActiveSupport::TestCase
4
+ SCHEDULING_VALID_VALUES = {
5
+ '0 1 * * *' => Time.utc(2016, 12, 23, 1, 0, 0, 0),
6
+ '*/5 * * * *' => Time.utc(2016, 12, 22, 12, 5, 0, 0),
7
+ '* * 1 * *' => Time.utc(2017, 1, 1, 0, 0, 0, 0),
8
+ '* * * * *' => Time.utc(2016, 12, 22, 12, 1, 0, 0)
9
+ }
10
+
11
+ SCHEDULING_INVALID_VALUES = [' ', nil, '1', 'abc123', 456]
12
+
13
+ setup do
14
+ @scheduled_task = scheduled_tasks(:test_scheduling)
15
+ @time = Time.utc(2016, 12, 22, 12, 0, 0, 0)
16
+ end
17
+
18
+ test 'scheduling cron format' do
19
+ valid_invalid_column_values_test(
20
+ @scheduled_task, :scheduling, SCHEDULING_VALID_VALUES.keys, SCHEDULING_INVALID_VALUES
21
+ )
22
+ end
23
+
24
+ test 'calculate next run' do
25
+ SCHEDULING_VALID_VALUES.each do |k, v|
26
+ @scheduled_task.scheduling = k
27
+ assert_equal v, @scheduled_task.calculate_next_run(@time).utc,
28
+ "Time: #{@time}, Cron source: #{k}"
29
+ end
30
+ end
31
+
32
+ test 'status' do
33
+ assert_not @scheduled_task.last_run_start
34
+ assert_not @scheduled_task.last_run_successful_start
35
+ assert_not @scheduled_task.last_run_unsuccessful_start
36
+ assert_not @scheduled_task.last_run_successful_end
37
+ assert_not @scheduled_task.last_run_unsuccessful_end
38
+ assert_equal ScheduledTask::STATUS_WAITING, @scheduled_task.status
39
+
40
+ @scheduled_task.send('status_on_start')
41
+ assert_equal ScheduledTask::STATUS_RUNNING, @scheduled_task.status
42
+
43
+ @scheduled_task.send('status_on_end', nil)
44
+ assert_equal ScheduledTask::STATUS_WAITING, @scheduled_task.status
45
+
46
+ @scheduled_task.send('status_on_start')
47
+ assert_equal ScheduledTask::STATUS_RUNNING, @scheduled_task.status
48
+
49
+ @scheduled_task.send('status_on_end', StandardError.new('Test!'))
50
+ assert_equal ScheduledTask::STATUS_FAILED, @scheduled_task.status
51
+ end
52
+
53
+ test 'task in list' do
54
+ valid_invalid_column_values_test(
55
+ @scheduled_task, :task, ['test', 'about', 'db:migrate'], [nil, ' ', '123notatask']
56
+ )
57
+ end
58
+
59
+ test 'invoke args' do
60
+ @scheduled_task.args = ''
61
+ assert_equal [], @scheduled_task.send('invoke_args')
62
+
63
+ @scheduled_task.args = 'abc'
64
+ assert_equal ['abc'], @scheduled_task.send('invoke_args')
65
+
66
+ @scheduled_task.args = 'abc|def|ghi'
67
+ assert_equal %w(abc def ghi), @scheduled_task.send('invoke_args')
68
+
69
+ @scheduled_task.args = 'abc||ghi'
70
+ assert_equal ['abc', '', 'ghi'], @scheduled_task.send('invoke_args')
71
+ end
72
+ end
@@ -0,0 +1,36 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [
6
+ File.expand_path('../../test/dummy/db/migrate', __FILE__)
7
+ ]
8
+ require 'rails/test_help'
9
+
10
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
11
+ # to be shown.
12
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
13
+
14
+ # Load support files
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
+
17
+ # Load fixtures from the engine
18
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
19
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
20
+ ActiveSupport::TestCase.fixtures :all
21
+ end
22
+
23
+ module ActiveSupport
24
+ class TestCase
25
+ def valid_invalid_column_values_test(record, column, valid_values, invalid_values)
26
+ valid_values.each do |v|
27
+ record[column] = v
28
+ assert record.valid?, "#{record.errors.messages}, #{column} = #{v.inspect} should be valid"
29
+ end
30
+ invalid_values.each do |v|
31
+ record[column] = v
32
+ assert_not record.valid?, "#{column} = #{v.inspect} should be invalid"
33
+ end
34
+ end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tasks_scheduler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Eduardo H. Bogoni
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: active_scaffold
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: daemons
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: parse-cron
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 4.2.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 4.2.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description:
84
+ email:
85
+ - eduardobogoni@gmail.com
86
+ executables:
87
+ - tasks_scheduler
88
+ - tasks_scheduler_run_task
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - MIT-LICENSE
93
+ - README.rdoc
94
+ - Rakefile
95
+ - app/assets/javascripts/tasks_scheduler.js
96
+ - app/assets/stylesheets/tasks_scheduler.scss
97
+ - app/controllers/scheduled_tasks_controller.rb
98
+ - app/helpers/scheduled_tasks_helper.rb
99
+ - app/models/scheduled_task.rb
100
+ - app/models/scheduled_task/checker.rb
101
+ - app/models/scheduled_task/log.rb
102
+ - app/models/scheduled_task/runner.rb
103
+ - app/models/scheduled_task/status.rb
104
+ - app/views/scheduled_tasks/log.html.erb
105
+ - app/views/scheduled_tasks/status.html.erb
106
+ - app/views/scheduled_tasks/status_content.html.erb
107
+ - config/initializers/assets.rb
108
+ - config/locales/en.yml
109
+ - config/locales/pt-BR.yml
110
+ - config/routes.rb
111
+ - db/migrate/20161122123828_create_scheduled_tasks.rb
112
+ - db/migrate/20161123130153_add_status_attributes_to_scheduled_tasks.rb
113
+ - db/migrate/20161124200712_add_pid_to_scheduled_tasks.rb
114
+ - db/migrate/20161128163702_add_args_to_scheduled_tasks.rb
115
+ - exe/tasks_scheduler
116
+ - exe/tasks_scheduler_run_task
117
+ - lib/tasks_scheduler.rb
118
+ - lib/tasks_scheduler/checker.rb
119
+ - lib/tasks_scheduler/cron_parser_patch.rb
120
+ - lib/tasks_scheduler/cron_scheduling_validator.rb
121
+ - lib/tasks_scheduler/engine.rb
122
+ - lib/tasks_scheduler/version.rb
123
+ - test/dummy/README.rdoc
124
+ - test/dummy/Rakefile
125
+ - test/dummy/app/assets/javascripts/application.js
126
+ - test/dummy/app/assets/stylesheets/application.css
127
+ - test/dummy/app/controllers/application_controller.rb
128
+ - test/dummy/app/helpers/application_helper.rb
129
+ - test/dummy/app/views/layouts/application.html.erb
130
+ - test/dummy/bin/bundle
131
+ - test/dummy/bin/rails
132
+ - test/dummy/bin/rake
133
+ - test/dummy/bin/setup
134
+ - test/dummy/config.ru
135
+ - test/dummy/config/application.rb
136
+ - test/dummy/config/boot.rb
137
+ - test/dummy/config/database.yml
138
+ - test/dummy/config/environment.rb
139
+ - test/dummy/config/environments/development.rb
140
+ - test/dummy/config/environments/production.rb
141
+ - test/dummy/config/environments/test.rb
142
+ - test/dummy/config/initializers/assets.rb
143
+ - test/dummy/config/initializers/backtrace_silencers.rb
144
+ - test/dummy/config/initializers/cookies_serializer.rb
145
+ - test/dummy/config/initializers/filter_parameter_logging.rb
146
+ - test/dummy/config/initializers/inflections.rb
147
+ - test/dummy/config/initializers/mime_types.rb
148
+ - test/dummy/config/initializers/session_store.rb
149
+ - test/dummy/config/initializers/wrap_parameters.rb
150
+ - test/dummy/config/locales/en.yml
151
+ - test/dummy/config/routes.rb
152
+ - test/dummy/config/secrets.yml
153
+ - test/dummy/db/schema.rb
154
+ - test/dummy/public/404.html
155
+ - test/dummy/public/422.html
156
+ - test/dummy/public/500.html
157
+ - test/dummy/public/favicon.ico
158
+ - test/fixtures/scheduled_tasks.yml
159
+ - test/models/scheduled_task_test.rb
160
+ - test/test_helper.rb
161
+ homepage:
162
+ licenses:
163
+ - MIT
164
+ metadata: {}
165
+ post_install_message:
166
+ rdoc_options: []
167
+ require_paths:
168
+ - lib
169
+ required_ruby_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ requirements: []
180
+ rubyforge_project:
181
+ rubygems_version: 2.4.8
182
+ signing_key:
183
+ specification_version: 4
184
+ summary: Scheduler for Rake tasks.
185
+ test_files:
186
+ - test/fixtures/scheduled_tasks.yml
187
+ - test/models/scheduled_task_test.rb
188
+ - test/dummy/config.ru
189
+ - test/dummy/README.rdoc
190
+ - test/dummy/db/schema.rb
191
+ - test/dummy/app/views/layouts/application.html.erb
192
+ - test/dummy/app/assets/stylesheets/application.css
193
+ - test/dummy/app/assets/javascripts/application.js
194
+ - test/dummy/app/helpers/application_helper.rb
195
+ - test/dummy/app/controllers/application_controller.rb
196
+ - test/dummy/bin/bundle
197
+ - test/dummy/bin/rails
198
+ - test/dummy/bin/setup
199
+ - test/dummy/bin/rake
200
+ - test/dummy/Rakefile
201
+ - test/dummy/config/environments/production.rb
202
+ - test/dummy/config/environments/test.rb
203
+ - test/dummy/config/environments/development.rb
204
+ - test/dummy/config/application.rb
205
+ - test/dummy/config/boot.rb
206
+ - test/dummy/config/locales/en.yml
207
+ - test/dummy/config/initializers/session_store.rb
208
+ - test/dummy/config/initializers/filter_parameter_logging.rb
209
+ - test/dummy/config/initializers/wrap_parameters.rb
210
+ - test/dummy/config/initializers/backtrace_silencers.rb
211
+ - test/dummy/config/initializers/inflections.rb
212
+ - test/dummy/config/initializers/assets.rb
213
+ - test/dummy/config/initializers/cookies_serializer.rb
214
+ - test/dummy/config/initializers/mime_types.rb
215
+ - test/dummy/config/secrets.yml
216
+ - test/dummy/config/database.yml
217
+ - test/dummy/config/routes.rb
218
+ - test/dummy/config/environment.rb
219
+ - test/dummy/public/422.html
220
+ - test/dummy/public/favicon.ico
221
+ - test/dummy/public/404.html
222
+ - test/dummy/public/500.html
223
+ - test/test_helper.rb