magazine 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 (99) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/javascripts/magazine/application.js +13 -0
  6. data/app/assets/stylesheets/magazine/application.css +15 -0
  7. data/app/controllers/magazine/application_controller.rb +4 -0
  8. data/app/controllers/magazine/articles_controller.rb +56 -0
  9. data/app/controllers/magazine/articles_controller.rb~ +55 -0
  10. data/app/helpers/magazine/application_helper.rb +30 -0
  11. data/app/helpers/magazine/application_helper.rb~ +30 -0
  12. data/app/models/magazine/data.rb~ +40 -0
  13. data/app/models/magazine/rack.rb +40 -0
  14. data/app/models/magazine/rack.rb~ +40 -0
  15. data/app/views/layouts/magazine/application.html.erb +14 -0
  16. data/config/routes.rb +5 -0
  17. data/config/routes.rb~ +5 -0
  18. data/lib/magazine.rb +8 -0
  19. data/lib/magazine.rb~ +8 -0
  20. data/lib/magazine/engine.rb +12 -0
  21. data/lib/magazine/engine.rb~ +13 -0
  22. data/lib/magazine/version.rb +3 -0
  23. data/lib/tasks/magazine_tasks.rake +4 -0
  24. data/spec/dummy/README.rdoc +28 -0
  25. data/spec/dummy/Rakefile +6 -0
  26. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  27. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/spec/dummy/app/controllers/application_controller.rb +9 -0
  29. data/spec/dummy/app/controllers/application_controller.rb~ +5 -0
  30. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  31. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  32. data/spec/dummy/app/views/magazine/articles/index.html.erb +23 -0
  33. data/spec/dummy/app/views/magazine/articles/index.html.erb~ +23 -0
  34. data/spec/dummy/app/views/magazine/articles/shared/_list_article.html.erb +1 -0
  35. data/spec/dummy/app/views/magazine/articles/shared/_list_article.html.erb~ +1 -0
  36. data/spec/dummy/app/views/magazine/articles/shared/beans/_kilimanjaro.html.erb +1 -0
  37. data/spec/dummy/app/views/magazine/articles/shared/beans/_kilimanjaro.html.erb~ +0 -0
  38. data/spec/dummy/app/views/magazine/articles/shared/drip/_water.html.erb +1 -0
  39. data/spec/dummy/app/views/magazine/articles/shared/drip/_water.html.erb~ +0 -0
  40. data/spec/dummy/app/views/magazine/articles/show.html.erb +6 -0
  41. data/spec/dummy/app/views/magazine/articles/show.html.erb~ +6 -0
  42. data/spec/dummy/app/views/magazine/index.html.erb~ +7 -0
  43. data/spec/dummy/bin/bundle +3 -0
  44. data/spec/dummy/bin/rails +4 -0
  45. data/spec/dummy/bin/rake +4 -0
  46. data/spec/dummy/config.ru +4 -0
  47. data/spec/dummy/config/application.rb +23 -0
  48. data/spec/dummy/config/boot.rb +5 -0
  49. data/spec/dummy/config/database.yml +25 -0
  50. data/spec/dummy/config/environment.rb +5 -0
  51. data/spec/dummy/config/environments/development.rb +37 -0
  52. data/spec/dummy/config/environments/production.rb +78 -0
  53. data/spec/dummy/config/environments/test.rb +39 -0
  54. data/spec/dummy/config/initializers/assets.rb +8 -0
  55. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  56. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  57. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  58. data/spec/dummy/config/initializers/inflections.rb +16 -0
  59. data/spec/dummy/config/initializers/magazine.rb +1 -0
  60. data/spec/dummy/config/initializers/magazine.rb~ +0 -0
  61. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  62. data/spec/dummy/config/initializers/session_store.rb +3 -0
  63. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  64. data/spec/dummy/config/locales/en.yml +23 -0
  65. data/spec/dummy/config/magazine.yml +48 -0
  66. data/spec/dummy/config/magazine.yml~ +48 -0
  67. data/spec/dummy/config/routes.rb +3 -0
  68. data/spec/dummy/config/routes.rb~ +4 -0
  69. data/spec/dummy/config/secrets.yml +22 -0
  70. data/spec/dummy/db/test.sqlite3 +0 -0
  71. data/spec/dummy/log/development.log +0 -0
  72. data/spec/dummy/log/test.log +1180 -0
  73. data/spec/dummy/public/404.html +67 -0
  74. data/spec/dummy/public/422.html +67 -0
  75. data/spec/dummy/public/500.html +66 -0
  76. data/spec/dummy/public/favicon.ico +0 -0
  77. data/spec/dummy/tmp/cache/assets/test/sprockets/13ef700ed1b340ce31710c628c9b1506 +0 -0
  78. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  79. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  80. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  81. data/spec/dummy/tmp/cache/assets/test/sprockets/3c36df6af1863f67917951036d1d7221 +0 -0
  82. data/spec/dummy/tmp/cache/assets/test/sprockets/5bf1895db17a04b83c2f8c9bd096ca85 +0 -0
  83. data/spec/dummy/tmp/cache/assets/test/sprockets/7f4ca612f398e7c52f7fd934cddbaa50 +0 -0
  84. data/spec/dummy/tmp/cache/assets/test/sprockets/b9d7ea8e2449bbec7d43b6518403dc6c +0 -0
  85. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  86. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  87. data/spec/dummy/tmp/cache/assets/test/sprockets/ed792a88666afd4aff94594da589930e +0 -0
  88. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  89. data/spec/features/magazine/articles_spec.rb +109 -0
  90. data/spec/features/magazine/articles_spec.rb~ +109 -0
  91. data/spec/models/magazine/data.rb~ +5 -0
  92. data/spec/models/magazine/data_spec.rb~ +12 -0
  93. data/spec/models/magazine/rack_spec.rb +173 -0
  94. data/spec/models/magazine/rack_spec.rb~ +173 -0
  95. data/spec/rails_helper.rb +38 -0
  96. data/spec/rails_helper.rb~ +39 -0
  97. data/spec/spec_helper.rb +85 -0
  98. data/spec/spec_helper.rb~ +86 -0
  99. metadata +306 -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,109 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe 'Magazine Articles' do
4
+ feature 'visit /:mount_point' do
5
+ scenario do
6
+ visit magazine_path
7
+ # Category list
8
+ expect(page).to have_content('ドリップ')
9
+ expect(page).to have_content('コーヒー豆')
10
+
11
+ # Article list
12
+ expect(page).to have_selector('img[src="/images/magazine/cover_photo.jpg"]')
13
+ expect(page).to have_content('All Articles')
14
+ expect(page).to have_content('ウォータードリップ')
15
+ expect(page).to have_content('ペーパードリップ')
16
+ expect(page).to have_content('ネルドリップ')
17
+ expect(page).to have_content('ブルーマウンテン')
18
+ expect(page).to have_content('コナ')
19
+ expect(page).to have_content('キリマンジャロ')
20
+ end
21
+ end
22
+
23
+ feature 'visit /:mount_point/:category_slug' do
24
+ context 'exist category' do
25
+ scenario do
26
+ visit magazine.category_index_path('drip')
27
+ # Category list
28
+ expect(page).to have_content('ドリップ')
29
+ expect(page).to have_content('コーヒー豆')
30
+
31
+ # Article list
32
+ expect(page).to have_selector('img[src="/images/magazine/drip/cover_photo.jpg"]')
33
+ expect(page).to have_content('ドリップ Articles')
34
+ expect(page).to have_content('ウォータードリップ')
35
+ expect(page).to have_content('ペーパードリップ')
36
+ expect(page).to have_content('ネルドリップ')
37
+ expect(page).to_not have_content('ブルーマウンテン')
38
+ expect(page).to_not have_content('コナ')
39
+ expect(page).to_not have_content('キリマンジャロ')
40
+ end
41
+ end
42
+
43
+ context 'not exist category' do
44
+ scenario do
45
+ expect {
46
+ visit magazine.category_index_path('foo')
47
+ }.to raise_error(ActionController::RoutingError)
48
+ end
49
+ end
50
+ end
51
+
52
+ feature 'visit /:mount_point/:category_slug/:article_slug' do
53
+ context 'exist article' do
54
+ context 'not in review' do
55
+ scenario do
56
+ visit magazine.article_path('drip', 'water')
57
+ expect(page).to have_content('ウォータードリップ')
58
+ expect(page).to have_content('専用の機材を用い水でコーヒーを抽出する方法。')
59
+ expect(page).to have_selector('img[src="/images/magazine/drip/water/thumbnail.jpg"]')
60
+ expect(page).to have_content('water drip content')
61
+ end
62
+ end
63
+
64
+ context 'in review' do
65
+ context 'success authorize' do
66
+ scenario do
67
+ expect {
68
+ visit magazine.article_path('beans', 'kilimanjaro')
69
+ }.to_not raise_error
70
+ end
71
+ end
72
+
73
+ context 'fail authorize' do
74
+ before do
75
+ class ::ApplicationController < ActionController::Base
76
+ private
77
+ def current_admin
78
+ false
79
+ end
80
+ end
81
+ end
82
+
83
+ after do
84
+ class ::ApplicationController < ActionController::Base
85
+ private
86
+ def current_admin
87
+ true
88
+ end
89
+ end
90
+ end
91
+
92
+ scenario do
93
+ expect {
94
+ visit magazine.article_path('beans', 'kilimanjaro')
95
+ }.to raise_error(ActionController::RoutingError)
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ context 'not exist article' do
102
+ scenario do
103
+ expect {
104
+ visit magazine.article_path('foo', 'water')
105
+ }.to raise_error(ActionController::RoutingError)
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,109 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe 'Magazine Articles' do
4
+ feature 'visit /:mount_point' do
5
+ scenario do
6
+ visit magazine_path
7
+ # Category list
8
+ expect(page).to have_content('ドリップ')
9
+ expect(page).to have_content('コーヒー豆')
10
+
11
+ # Article list
12
+ expect(page).to have_selector('img[src="/images/magazine/cover_photo.jpg"]')
13
+ expect(page).to have_content('All Articles')
14
+ expect(page).to have_content('ウォータードリップ')
15
+ expect(page).to have_content('ペーパードリップ')
16
+ expect(page).to have_content('ネルドリップ')
17
+ expect(page).to have_content('ブルーマウンテン')
18
+ expect(page).to have_content('コナ')
19
+ expect(page).to have_content('キリマンジャロ')
20
+ end
21
+ end
22
+
23
+ feature 'visit /:mount_point/:category_slug' do
24
+ context 'exist category' do
25
+ scenario do
26
+ visit magazine.category_index_path('drip')
27
+ # Category list
28
+ expect(page).to have_content('ドリップ')
29
+ expect(page).to have_content('コーヒー豆')
30
+
31
+ # Article list
32
+ expect(page).to have_selector('img[src="/images/magazine/drip/cover_photo.jpg"]')
33
+ expect(page).to have_content('ドリップ Articles')
34
+ expect(page).to have_content('ウォータードリップ')
35
+ expect(page).to have_content('ペーパードリップ')
36
+ expect(page).to have_content('ネルドリップ')
37
+ expect(page).to_not have_content('ブルーマウンテン')
38
+ expect(page).to_not have_content('コナ')
39
+ expect(page).to_not have_content('キリマンジャロ')
40
+ end
41
+ end
42
+
43
+ context 'not exist category' do
44
+ scenario do
45
+ expect {
46
+ visit magazine.category_index_path('foo')
47
+ }.to raise_error(ActionController::RoutingError)
48
+ end
49
+ end
50
+ end
51
+
52
+ feature 'visit /:mount_point/:category_slug/:article_slug' do
53
+ context 'exist article' do
54
+ context 'not in review' do
55
+ scenario do
56
+ visit magazine.article_path('drip', 'water')
57
+ expect(page).to have_content('ウォータードリップ')
58
+ expect(page).to have_content('専用の機材を用い水でコーヒーを抽出する方法。')
59
+ expect(page).to have_selector('img[src="/images/magazine/drip/water/thumbnail.jpg"]')
60
+ expect(page).to have_content('water drip content')
61
+ end
62
+ end
63
+
64
+ context 'in review' do
65
+ context 'success authorize' do
66
+ scenario do
67
+ expect {
68
+ visit magazine.article_path('beans', 'kilimanjaro')
69
+ }.to_not raise_error
70
+ end
71
+ end
72
+
73
+ context 'fail authorize' do
74
+ before do
75
+ class ::ApplicationController < ActionController::Base
76
+ private
77
+ def current_admin
78
+ false
79
+ end
80
+ end
81
+ end
82
+
83
+ after do
84
+ class ::ApplicationController < ActionController::Base
85
+ private
86
+ def current_admin
87
+ true
88
+ end
89
+ end
90
+ end
91
+
92
+ scenario do
93
+ expect {
94
+ visit magazine.article_path('beans', 'kilimanjaro')
95
+ }.to raise_error(ActionController::RoutingError)
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ context 'not exist article' do
102
+ scenario do
103
+ expect {
104
+ visit magazine.article_path('foo', 'water')
105
+ }.to raise_error(ActionController::RoutingError)
106
+ end
107
+ end
108
+ end
109
+ end