tasuku 0.1.1 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/app/controllers/tasuku/taskables/code/responses_controller.rb +32 -0
- data/app/controllers/tasuku/taskables/questions/answers_controller.rb +1 -0
- data/app/helpers/tasuku/url_helper.rb +11 -0
- data/app/models/tasuku/task.rb +1 -0
- data/app/models/tasuku/task_requirement.rb +5 -0
- data/app/models/tasuku/taskables/code/request.rb +7 -0
- data/app/models/tasuku/taskables/code/response.rb +22 -0
- data/app/models/tasuku/taskables/code.rb +7 -0
- data/app/models/tasuku/taskables/question/option.rb +1 -0
- data/app/views/tasuku/taskables/_illustration.html.erb +7 -0
- data/app/views/tasuku/taskables/code/requests/_request.html.erb +9 -0
- data/app/views/tasuku/taskables/code/responses/_form.html.erb +5 -0
- data/app/views/tasuku/taskables/image/requests/_request.html.erb +1 -3
- data/app/views/tasuku/taskables/questions/_question.html.erb +2 -3
- data/app/views/tasuku/taskables/questions/answers/_form.html.erb +3 -1
- data/app/views/tasuku/taskables/text/requests/_request.html.erb +1 -3
- data/app/views/tasuku/taskables/url/requests/_request.html.erb +1 -3
- data/config/locales/en.yml +155 -11
- data/config/locales/nb.yml +14 -4
- data/config/routes.rb +6 -0
- data/db/migrate/20140611084458_add_video_urls.rb +8 -0
- data/db/migrate/20140813073552_create_tasuku_taskables_code_requests.rb +10 -0
- data/db/migrate/20140813075643_create_tasuku_taskables_code_responses.rb +11 -0
- data/db/migrate/20140813080116_add_reply_to_option.rb +5 -0
- data/db/migrate/20140910112050_create_tasuku_task_requirements.rb +10 -0
- data/db/migrate/20140926105940_add_description_to_code_requests.rb +5 -0
- data/lib/tasuku/concerns/illustratable.rb +3 -0
- data/lib/tasuku/concerns/models/requirables/inverse_requirable.rb +12 -0
- data/lib/tasuku/concerns/models/requirables/requirable.rb +35 -0
- data/lib/tasuku/concerns/models/requirables.rb +4 -0
- data/lib/tasuku/concerns/models/taskables/code/request.rb +19 -0
- data/lib/tasuku/concerns/models/taskables/code.rb +3 -0
- data/lib/tasuku/concerns/models/taskables.rb +1 -0
- data/lib/tasuku/concerns/models.rb +1 -0
- data/lib/tasuku/seeds.rb +3 -0
- data/lib/tasuku/version.rb +1 -1
- data/spec/controllers/tasuku/taskables/code/responses_controller_spec.rb +38 -0
- data/spec/controllers/tasuku/taskables/questions/answers_controller_spec.rb +21 -0
- data/spec/dummy/app/controllers/application_controller.rb +1 -0
- data/spec/dummy/config/routes.rb +2 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +30 -1
- data/spec/dummy/db/seeds.rb +1 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +7584 -57
- data/spec/dummy/log/test.log +37002 -13558
- data/spec/dummy/public/uploads/{tasks/taskables/image/request/image/1 → tasuku/taskables/image/request/image/2}/doge.jpg +0 -0
- data/spec/dummy/public/uploads/{tasks/taskables/image/response/image/1 → tasuku/taskables/question/image/2}/doge.jpg +0 -0
- data/spec/dummy/public/uploads/{tasks/taskables/question/image/1 → tasuku/taskables/text/request/image/2}/doge.jpg +0 -0
- data/spec/dummy/public/uploads/{tasks/taskables/text/request/image/1 → tasuku/taskables/url/request/image/2}/doge.jpg +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/factories/tasuku_responses.rb +6 -0
- data/spec/factories/tasuku_task_requirements.rb +8 -0
- data/spec/factories/tasuku_taskables_code_requests.rb +8 -0
- data/spec/factories/tasuku_taskables_code_responses.rb +6 -0
- data/spec/factories/tasuku_taskables_question_options.rb +1 -0
- data/spec/models/tasuku/task_requirement_spec.rb +9 -0
- data/spec/models/tasuku/task_spec.rb +42 -0
- data/spec/models/tasuku/taskables/code/request_spec.rb +6 -0
- data/spec/models/tasuku/taskables/code/response_spec.rb +27 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/shared_examples_for_redirectable.rb +9 -0
- data/spec/views/tasuku/taskables/code/requests/_request.html.erb_spec.rb +5 -0
- data/spec/views/tasuku/taskables/illustration_spec.rb +19 -0
- data/spec/views/tasuku/taskables/image/requests/_request.html.erb_spec.rb +8 -9
- data/spec/views/tasuku/taskables/questions/_question.html.erb_spec.rb +8 -9
- data/spec/views/tasuku/taskables/text/requests/_request.html.erb_spec.rb +8 -9
- data/spec/views/tasuku/taskables/url/requests/_request.html.erb_spec.rb +8 -9
- metadata +110 -31
- data/lib/tasks/concerns/models/taskables/image.rb +0 -3
- data/lib/tasks/concerns/models/taskables/text.rb +0 -3
- data/lib/tasks/concerns/models/taskables/url.rb +0 -3
- data/lib/tasks/concerns/models/taskables.rb +0 -7
- data/lib/tasks/concerns/models.rb +0 -4
- data/spec/dummy/public/uploads/tasks/taskables/url/request/image/1/doge.jpg +0 -0
- data/spec/dummy/public/uploads/tmp/1402401935-55786-0961/doge.jpg +0 -0
- data/spec/dummy/public/uploads/tmp/1402401935-55786-2854/doge.jpg +0 -0
- data/spec/dummy/public/uploads/tmp/1402402180-56033-5455/doge.jpg +0 -0
- data/spec/dummy/public/uploads/tmp/1402402180-56033-5512/doge.jpg +0 -0
- data/spec/factories/tasks_taskables_taskable_responses.rb +0 -8
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Tasuku
|
4
|
+
describe Taskables::Code::ResponsesController do
|
5
|
+
routes { Tasuku::Engine.routes }
|
6
|
+
|
7
|
+
describe "POST 'create'" do
|
8
|
+
it 'routes' do
|
9
|
+
expect(post: '/code/requests/1/responses').to route_to(
|
10
|
+
action: 'create',
|
11
|
+
controller: 'tasuku/taskables/code/responses',
|
12
|
+
request_id: '1'
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'with a response' do
|
17
|
+
let(:user) { create :user }
|
18
|
+
let(:code_request) { create :code_request, code: '1337' }
|
19
|
+
let(:params) { { request_id: code_request.id, taskables_code_response: { code: '1337' } } }
|
20
|
+
|
21
|
+
before { request.env['HTTP_REFERER'] = 'http://example.org' }
|
22
|
+
before { expect(subject).to receive(:current_user).and_return(user) }
|
23
|
+
|
24
|
+
it_behaves_like 'redirectable' do
|
25
|
+
let(:action) { :create }
|
26
|
+
let(:verb) { :post }
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'creates a new response' do
|
30
|
+
post :create, params
|
31
|
+
|
32
|
+
expect(code_request.responses.count).to eq 1
|
33
|
+
expect(code_request.responses.first.code).to eq '1337'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -33,6 +33,27 @@ module Tasuku
|
|
33
33
|
expect(question.answers.count).to eq 1
|
34
34
|
end
|
35
35
|
end
|
36
|
+
|
37
|
+
context 'no answers' do
|
38
|
+
let(:user) { create :user }
|
39
|
+
let(:question) { create :question }
|
40
|
+
let(:params) { { question_id: question.id } }
|
41
|
+
|
42
|
+
before { request.env['HTTP_REFERER'] = 'http://example.org' }
|
43
|
+
before { post :create, params }
|
44
|
+
|
45
|
+
it 'does not create a new answer' do
|
46
|
+
expect(question.answers.count).to be_zero
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'redirects back' do
|
50
|
+
expect(response).to redirect_to 'http://example.org'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'renders an alert' do
|
54
|
+
expect(flash[:alert]).to eq I18n.t('tasuku.taskables.questions.answers.no_answers')
|
55
|
+
end
|
56
|
+
end
|
36
57
|
end
|
37
58
|
|
38
59
|
end
|
data/spec/dummy/config/routes.rb
CHANGED
Binary file
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,19 +11,44 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20140926105940) do
|
15
15
|
|
16
16
|
create_table "articles", force: true do |t|
|
17
17
|
t.datetime "created_at"
|
18
18
|
t.datetime "updated_at"
|
19
19
|
end
|
20
20
|
|
21
|
+
create_table "tasuku_task_requirements", force: true do |t|
|
22
|
+
t.integer "task_id"
|
23
|
+
t.integer "requirement_id"
|
24
|
+
t.datetime "created_at"
|
25
|
+
t.datetime "updated_at"
|
26
|
+
end
|
27
|
+
|
28
|
+
create_table "tasuku_taskables_code_requests", force: true do |t|
|
29
|
+
t.string "text"
|
30
|
+
t.string "code"
|
31
|
+
t.datetime "created_at"
|
32
|
+
t.datetime "updated_at"
|
33
|
+
t.text "description"
|
34
|
+
end
|
35
|
+
|
36
|
+
create_table "tasuku_taskables_code_responses", force: true do |t|
|
37
|
+
t.string "code"
|
38
|
+
t.integer "request_id"
|
39
|
+
t.integer "author_id"
|
40
|
+
t.string "author_type"
|
41
|
+
t.datetime "created_at"
|
42
|
+
t.datetime "updated_at"
|
43
|
+
end
|
44
|
+
|
21
45
|
create_table "tasuku_taskables_image_requests", force: true do |t|
|
22
46
|
t.text "text"
|
23
47
|
t.datetime "created_at"
|
24
48
|
t.datetime "updated_at"
|
25
49
|
t.text "description"
|
26
50
|
t.string "image"
|
51
|
+
t.string "video_url"
|
27
52
|
end
|
28
53
|
|
29
54
|
create_table "tasuku_taskables_image_responses", force: true do |t|
|
@@ -53,6 +78,7 @@ ActiveRecord::Schema.define(version: 20140610121130) do
|
|
53
78
|
t.datetime "created_at"
|
54
79
|
t.datetime "updated_at"
|
55
80
|
t.boolean "correct", default: false
|
81
|
+
t.text "reply"
|
56
82
|
end
|
57
83
|
|
58
84
|
add_index "tasuku_taskables_question_options", ["question_id"], name: "index_tasuku_taskables_question_options_on_question_id"
|
@@ -75,6 +101,7 @@ ActiveRecord::Schema.define(version: 20140610121130) do
|
|
75
101
|
t.boolean "multiple"
|
76
102
|
t.boolean "show_statistics", default: true
|
77
103
|
t.string "image"
|
104
|
+
t.string "video_url"
|
78
105
|
end
|
79
106
|
|
80
107
|
create_table "tasuku_taskables_taskable_responses", force: true do |t|
|
@@ -95,6 +122,7 @@ ActiveRecord::Schema.define(version: 20140610121130) do
|
|
95
122
|
t.datetime "created_at"
|
96
123
|
t.datetime "updated_at"
|
97
124
|
t.string "image"
|
125
|
+
t.string "video_url"
|
98
126
|
end
|
99
127
|
|
100
128
|
create_table "tasuku_taskables_text_responses", force: true do |t|
|
@@ -114,6 +142,7 @@ ActiveRecord::Schema.define(version: 20140610121130) do
|
|
114
142
|
t.datetime "created_at"
|
115
143
|
t.datetime "updated_at"
|
116
144
|
t.string "image"
|
145
|
+
t.string "video_url"
|
117
146
|
end
|
118
147
|
|
119
148
|
create_table "tasuku_taskables_url_responses", force: true do |t|
|
data/spec/dummy/db/seeds.rb
CHANGED
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|