mumuki-domain 7.0.1 → 7.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/assignment.rb +4 -3
- data/app/models/book.rb +1 -1
- data/app/models/concerns/contextualization.rb +1 -1
- data/app/models/concerns/submittable/solvable.rb +1 -1
- data/app/models/concerns/with_expectations.rb +5 -1
- data/app/models/concerns/with_messages.rb +1 -1
- data/app/models/content.rb +4 -0
- data/app/models/exam.rb +2 -2
- data/app/models/exercise/problem.rb +13 -1
- data/app/models/exercise.rb +13 -7
- data/app/models/guide.rb +8 -4
- data/app/models/language.rb +3 -2
- data/app/models/topic.rb +2 -2
- data/db/migrate/20190905174934_add_submitted_at_to_assignments.rb +5 -0
- data/db/migrate/20190918134321_remove_new_expectations.rb +5 -0
- data/db/migrate/20190918140026_add_custom_expectations.rb +6 -0
- data/db/migrate/20190929180601_add_expectations_to_language.rb +5 -0
- data/lib/mumuki/domain/seed.rb +2 -2
- data/lib/mumuki/domain/{stores/bibliotheca_store.rb → store/bibliotheca.rb} +1 -1
- data/lib/mumuki/domain/{stores → store/github}/exercise_schema.rb +7 -4
- data/lib/mumuki/domain/{stores → store/github}/guide_schema.rb +5 -2
- data/lib/mumuki/domain/store/github.rb +7 -0
- data/lib/mumuki/domain/{stores/thesaurus_store.rb → store/thesaurus.rb} +13 -8
- data/lib/mumuki/domain/store.rb +3 -0
- data/lib/mumuki/domain/syncable.rb +1 -1
- data/lib/mumuki/domain/version.rb +1 -1
- data/lib/mumuki/domain.rb +7 -10
- metadata +56 -23
- data/lib/mumuki/domain/stores.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d28ad86997ca94c1d5a301bb2ffb5729a1ea8b7d345a701668dc6bb76a3b9d4
|
4
|
+
data.tar.gz: 951bef6f687690e25ceb89fedfb34c23f2dfee1fa0c649a04a36c1dcd7b47e44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f709598d00fed3cdaf355123f16b80dc192cb484c6a2860e1b402ecef517ccad5d6a846783a4b2af2de5c07d4336fb7526f68e8084a7a6224df02b711aeaa60
|
7
|
+
data.tar.gz: a0dc2166520edb45ff6ef2cc6907c01818ffca73cfdb16518dda08d19e46eb3b98ab01a3d5ab054b5265c25ea447a99e3690c6cebdbdf923be0c5798dc644af8
|
data/app/models/assignment.rb
CHANGED
@@ -44,6 +44,7 @@ class Assignment < ApplicationRecord
|
|
44
44
|
transaction do
|
45
45
|
messages.destroy_all if submission_id.present?
|
46
46
|
update! submission_id: submission.id
|
47
|
+
update! submitted_at: DateTime.current
|
47
48
|
update_submissions_count!
|
48
49
|
update_last_submission!
|
49
50
|
end
|
@@ -127,7 +128,7 @@ class Assignment < ApplicationRecord
|
|
127
128
|
end
|
128
129
|
|
129
130
|
def to_resource_h
|
130
|
-
as_json(except: [:exercise_id, :submission_id, :organization_id, :id, :submitter_id, :solution, :created_at, :updated_at, :submission_status],
|
131
|
+
as_json(except: [:exercise_id, :submission_id, :organization_id, :id, :submitter_id, :solution, :created_at, :updated_at, :submission_status, :submitted_at],
|
131
132
|
include: {
|
132
133
|
guide: {
|
133
134
|
only: [:slug, :name],
|
@@ -140,7 +141,7 @@ class Assignment < ApplicationRecord
|
|
140
141
|
deep_merge(
|
141
142
|
'organization' => Organization.current.name,
|
142
143
|
'sid' => submission_id,
|
143
|
-
'created_at' => updated_at,
|
144
|
+
'created_at' => submitted_at || updated_at,
|
144
145
|
'content' => solution,
|
145
146
|
'status' => submission_status,
|
146
147
|
'exercise' => {
|
@@ -210,7 +211,7 @@ class Assignment < ApplicationRecord
|
|
210
211
|
end
|
211
212
|
|
212
213
|
def update_last_submission!
|
213
|
-
submitter.update!(last_submission_date: DateTime.
|
214
|
+
submitter.update!(last_submission_date: DateTime.current, last_exercise: exercise)
|
214
215
|
end
|
215
216
|
|
216
217
|
end
|
data/app/models/book.rb
CHANGED
@@ -33,7 +33,7 @@ class Book < Content
|
|
33
33
|
rebuild_complements! resource_h[:complements].to_a.map { |it| Guide.find_by(slug: it)&.as_complement_of(self) }.compact
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
36
|
+
def to_expanded_resource_h
|
37
37
|
super.merge(
|
38
38
|
chapters: chapters.map(&:slug),
|
39
39
|
complements: complements.map(&:slug))
|
@@ -75,7 +75,7 @@ module Contextualization
|
|
75
75
|
visible_expectation_results.map do |it|
|
76
76
|
{
|
77
77
|
result: it[:result],
|
78
|
-
explanation:
|
78
|
+
explanation: Mulang::Expectation.parse(it).translate(inspection_keywords)
|
79
79
|
}
|
80
80
|
end
|
81
81
|
end
|
@@ -6,7 +6,7 @@ module Solvable
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def run_tests!(params)
|
9
|
-
language.run_tests!(params.merge(locale: locale, expectations: expectations))
|
9
|
+
language.run_tests!(params.merge(locale: locale, expectations: expectations, custom_expectations: custom_expectations))
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -22,8 +22,12 @@ module WithExpectations
|
|
22
22
|
self[:expectations]
|
23
23
|
end
|
24
24
|
|
25
|
+
def own_custom_expectations
|
26
|
+
self[:custom_expectations]
|
27
|
+
end
|
28
|
+
|
25
29
|
def ensure_expectations_format
|
26
30
|
errors.add :own_expectations,
|
27
|
-
:invalid_format unless own_expectations.to_a.all? { |it|
|
31
|
+
:invalid_format unless own_expectations.to_a.all? { |it| Mulang::Expectation.valid? it }
|
28
32
|
end
|
29
33
|
end
|
data/app/models/content.rb
CHANGED
data/app/models/exam.rb
CHANGED
@@ -20,7 +20,7 @@ class Exam < ApplicationRecord
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def enabled?
|
23
|
-
enabled_range.cover? DateTime.
|
23
|
+
enabled_range.cover? DateTime.current
|
24
24
|
end
|
25
25
|
|
26
26
|
def enabled_range
|
@@ -28,7 +28,7 @@ class Exam < ApplicationRecord
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def enabled_for?(user)
|
31
|
-
enabled_range_for(user).cover? DateTime.
|
31
|
+
enabled_range_for(user).cover? DateTime.current
|
32
32
|
end
|
33
33
|
|
34
34
|
def in_progress_for?(user)
|
@@ -25,12 +25,24 @@ class Problem < QueriableChallenge
|
|
25
25
|
own_expectations + guide_expectations
|
26
26
|
end
|
27
27
|
|
28
|
+
def custom_expectations
|
29
|
+
"#{own_custom_expectations}\n#{guide_custom_expectations}"
|
30
|
+
end
|
31
|
+
|
28
32
|
def guide_expectations
|
29
33
|
guide.expectations
|
30
34
|
end
|
31
35
|
|
36
|
+
def guide_custom_expectations
|
37
|
+
guide.custom_expectations
|
38
|
+
end
|
39
|
+
|
32
40
|
def evaluation_criteria?
|
33
|
-
manual_evaluation? ||
|
41
|
+
manual_evaluation? || expectations? || test.present?
|
42
|
+
end
|
43
|
+
|
44
|
+
def expectations?
|
45
|
+
own_expectations.present? || own_custom_expectations.present?
|
34
46
|
end
|
35
47
|
|
36
48
|
private
|
data/app/models/exercise.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
class Exercise < ApplicationRecord
|
2
2
|
RANDOMIZED_FIELDS = [:default_content, :description, :extra, :hint, :test]
|
3
|
+
BASIC_RESOURCE_FIELDS = %i(
|
4
|
+
name layout editor corollary teacher_info manual_evaluation locale
|
5
|
+
choices assistance_rules randomizations tag_list extra_visible goal
|
6
|
+
free_form_editor_source initial_state final_state)
|
3
7
|
|
4
8
|
include WithDescription
|
5
9
|
include WithLocale
|
@@ -97,7 +101,7 @@ class Exercise < ApplicationRecord
|
|
97
101
|
attrs[:bibliotheca_id] = resource_h[:id]
|
98
102
|
attrs[:number] = number
|
99
103
|
attrs[:manual_evaluation] ||= false
|
100
|
-
attrs = attrs.except(:expectations) if type != 'Problem'
|
104
|
+
attrs = attrs.except(:expectations, :custom_expectations) if type != 'Problem'
|
101
105
|
|
102
106
|
assign_attributes(attrs)
|
103
107
|
save!
|
@@ -111,19 +115,21 @@ class Exercise < ApplicationRecord
|
|
111
115
|
choice_values.index(value)
|
112
116
|
end
|
113
117
|
|
114
|
-
# Keep this list up to date with
|
115
|
-
# Mumukit::Sync::Store::Github::Schema::Exercise
|
116
118
|
def to_resource_h
|
119
|
+
to_expanded_resource_h.compact
|
120
|
+
end
|
121
|
+
|
122
|
+
# Keep this list up to date with
|
123
|
+
# Mumuki::Domain::Store::ExerciseSchema
|
124
|
+
def to_expanded_resource_h
|
117
125
|
language_resource_h = language.to_embedded_resource_h if language != guide.language
|
118
|
-
as_json(only:
|
119
|
-
choices assistance_rules randomizations tag_list extra_visible goal
|
120
|
-
free_form_editor_source initial_state final_state))
|
126
|
+
as_json(only: BASIC_RESOURCE_FIELDS)
|
121
127
|
.merge(id: bibliotheca_id, language: language_resource_h, type: type.underscore)
|
122
128
|
.merge(expectations: self[:expectations])
|
129
|
+
.merge(custom_expectations: self[:custom_expectations])
|
123
130
|
.merge(settings: self[:settings])
|
124
131
|
.merge(RANDOMIZED_FIELDS.map { |it| [it, self[it]] }.to_h)
|
125
132
|
.symbolize_keys
|
126
|
-
.compact
|
127
133
|
end
|
128
134
|
|
129
135
|
def reset!
|
data/app/models/guide.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
class Guide < Content
|
2
|
+
BASIC_RESOURCE_FIELDS = %i(
|
3
|
+
authors beta collaborators corollary
|
4
|
+
custom_expectations expectations extra id_format
|
5
|
+
learn_more private settings sources teacher_info type)
|
6
|
+
|
2
7
|
include WithStats,
|
3
8
|
WithExpectations,
|
4
9
|
WithLanguage
|
@@ -87,14 +92,13 @@ class Guide < Content
|
|
87
92
|
end
|
88
93
|
|
89
94
|
# Keep this list up to date with
|
90
|
-
#
|
91
|
-
def
|
92
|
-
as_json(only:
|
95
|
+
# Mumuki::Domain::Store::Github::GuideSchema
|
96
|
+
def to_expanded_resource_h
|
97
|
+
as_json(only: BASIC_RESOURCE_FIELDS)
|
93
98
|
.symbolize_keys
|
94
99
|
.merge(super)
|
95
100
|
.merge(exercises: exercises.map(&:to_resource_h))
|
96
101
|
.merge(language: language.to_embedded_resource_h)
|
97
|
-
.compact
|
98
102
|
end
|
99
103
|
|
100
104
|
def to_markdownified_resource_h
|
data/app/models/language.rb
CHANGED
@@ -9,13 +9,14 @@ class Language < ApplicationRecord
|
|
9
9
|
validates :name, presence: true, uniqueness: {case_sensitive: false}
|
10
10
|
|
11
11
|
# This list must kept up to date with
|
12
|
-
#
|
12
|
+
# Mumuki::Domain::Store::Thesaurus::InfoConverter
|
13
13
|
resource_fields :comment_type,
|
14
14
|
:devicon,
|
15
15
|
:editor_css_urls,
|
16
16
|
:editor_html_urls,
|
17
17
|
:editor_js_urls,
|
18
18
|
:editor_shows_loading_content,
|
19
|
+
:expectations,
|
19
20
|
:extension,
|
20
21
|
:feedback,
|
21
22
|
:highlight_mode,
|
@@ -24,12 +25,12 @@ class Language < ApplicationRecord
|
|
24
25
|
:layout_js_urls,
|
25
26
|
:layout_shows_loading_content,
|
26
27
|
:multifile,
|
27
|
-
:settings,
|
28
28
|
:name,
|
29
29
|
:output_content_type,
|
30
30
|
:prompt,
|
31
31
|
:queriable,
|
32
32
|
:runner_url,
|
33
|
+
:settings,
|
33
34
|
:stateful_console,
|
34
35
|
:test_extension,
|
35
36
|
:test_template,
|
data/app/models/topic.rb
CHANGED
@@ -33,8 +33,8 @@ class Topic < Content
|
|
33
33
|
rebuild! resource_h[:lessons].to_a.map { |it| lesson_for(it) }
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
37
|
-
super.merge(appendix: appendix, lessons: lessons.map(&:slug))
|
36
|
+
def to_expanded_resource_h
|
37
|
+
super.merge(appendix: appendix, lessons: lessons.map(&:slug))
|
38
38
|
end
|
39
39
|
|
40
40
|
def as_chapter_of(book)
|
data/lib/mumuki/domain/seed.rb
CHANGED
@@ -17,13 +17,13 @@ module Mumuki::Domain::Seed
|
|
17
17
|
|
18
18
|
def self.import_main_contents!
|
19
19
|
Mumukit::Sync::Syncer.new(
|
20
|
-
|
20
|
+
Mumuki::Domain::Store::Bibliotheca.new(
|
21
21
|
Mumukit::Platform.bibliotheca_bridge)).import_all! /^#{MAIN_CONTENT_ORGANIZATIONS.join('|')}\/.*$/i
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.import_languages!
|
25
25
|
Mumukit::Sync::Syncer.new(
|
26
|
-
|
26
|
+
Mumuki::Domain::Store::Thesaurus.new(
|
27
27
|
Mumukit::Platform.thesaurus_bridge)).import_all!
|
28
28
|
end
|
29
29
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
-
module
|
1
|
+
module Mumuki::Domain::Store::Github::ExerciseSchema
|
2
2
|
extend Mumukit::Sync::Store::Github::Schema
|
3
3
|
|
4
4
|
def self.fields_schema
|
5
5
|
[
|
6
6
|
{name: :id, kind: :special},
|
7
7
|
{name: :name, kind: :special},
|
8
|
+
{name: :locale, kind: :metadata},
|
8
9
|
|
9
10
|
{name: :tags, kind: :metadata, reverse: :tag_list, transform: with { |it| it.to_a }},
|
10
11
|
{name: :layout, kind: :metadata},
|
@@ -17,9 +18,11 @@ module Mumukit::Sync::Store::Github::Schema::Exercise
|
|
17
18
|
{name: :manual_evaluation, kind: :metadata},
|
18
19
|
{name: :choices, kind: :metadata},
|
19
20
|
|
20
|
-
{name: :expectations,
|
21
|
-
{name: :
|
22
|
-
{name: :
|
21
|
+
{name: :expectations, kind: :file, extension: 'yml', transform: yaml_list('expectations')},
|
22
|
+
{name: :custom_expectations, kind: :file, extension: 'edl'},
|
23
|
+
{name: :assistance_rules, kind: :file, extension: 'yml', transform: yaml_list('rules')},
|
24
|
+
{name: :randomizations, kind: :file, extension: 'yml', transform: yaml_hash},
|
25
|
+
{name: :settings, kind: :file, extension: 'yml', transform: yaml_hash},
|
23
26
|
|
24
27
|
{name: :goal, kind: :metadata},
|
25
28
|
{name: :test, kind: :file, extension: :test},
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Mumuki::Domain::Store::Github::GuideSchema
|
2
2
|
extend Mumukit::Sync::Store::Github::Schema
|
3
3
|
|
4
4
|
def self.fields_schema
|
@@ -17,7 +17,10 @@ module Mumukit::Sync::Store::Github::Schema::Guide
|
|
17
17
|
{name: :order, kind: :metadata, transform: with { |it| it.map { |e| e[:id] } }, reverse: :exercises},
|
18
18
|
{name: :private, kind: :metadata},
|
19
19
|
|
20
|
-
{name: :expectations,
|
20
|
+
{name: :expectations, kind: :file, extension: 'yml', transform: yaml_list('expectations')},
|
21
|
+
{name: :custom_expectations, kind: :file, extension: 'edl'},
|
22
|
+
{name: :settings, kind: :file, extension: 'yml', transform: yaml_hash},
|
23
|
+
|
21
24
|
{name: :description, kind: :file, extension: 'md', required: true},
|
22
25
|
{name: :corollary, kind: :file, extension: 'md'},
|
23
26
|
{name: :sources, kind: :file, extension: 'md'},
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Mumuki::Domain::Store
|
2
2
|
|
3
3
|
## This Store enables importing languages
|
4
4
|
## from Thesaurus API
|
@@ -17,7 +17,7 @@ module Mumukit::Sync::Store
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def transform_after_read(runner_url, info)
|
20
|
-
|
20
|
+
Mumuki::Domain::Store::Thesaurus::InfoConverter.new(runner_url, info).call
|
21
21
|
end
|
22
22
|
|
23
23
|
def write_resource!(*)
|
@@ -41,12 +41,13 @@ module Mumukit::Sync::Store
|
|
41
41
|
highlight_mode: @info.dig('language', 'ace_mode'),
|
42
42
|
visible_success_output: @info.dig('language', 'graphic').present?,
|
43
43
|
devicon: @info.dig('language', 'icon', 'name'),
|
44
|
-
|
45
|
-
feedback:
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
44
|
+
expectations: feature_present?('expectations'),
|
45
|
+
feedback: feature_present?('feedback'),
|
46
|
+
multifile: feature_present?('multifile'),
|
47
|
+
queriable: feature_present?('query'),
|
48
|
+
settings: feature_present?('settings'),
|
49
|
+
stateful_console: feature_present?('stateful'),
|
50
|
+
triable: feature_present?('try'),
|
50
51
|
test_extension: @info.dig('test_framework', 'test_extension'),
|
51
52
|
test_template: @info.dig('test_framework', 'template'),
|
52
53
|
layout_js_urls: get_assets_for(:layout, 'js'),
|
@@ -60,6 +61,10 @@ module Mumukit::Sync::Store
|
|
60
61
|
}
|
61
62
|
end
|
62
63
|
|
64
|
+
def feature_present?(feature)
|
65
|
+
@info.dig('features', feature).present?
|
66
|
+
end
|
67
|
+
|
63
68
|
def get_assets_for(kind, content_type)
|
64
69
|
absolutize(get_asset_field(kind, content_type) || [])
|
65
70
|
end
|
@@ -66,7 +66,7 @@ module Mumuki::Domain::Syncable
|
|
66
66
|
def locate!(sync_key_id)
|
67
67
|
find_by! sync_key_id_field => sync_key_id
|
68
68
|
rescue ActiveRecord::RecordNotFound
|
69
|
-
raise ActiveRecord::RecordNotFound, "
|
69
|
+
raise ActiveRecord::RecordNotFound, "Couldn't find #{self.name} with #{sync_key_id_field}: #{sync_key_id}"
|
70
70
|
end
|
71
71
|
|
72
72
|
# Locates and imports a resource, extracting
|
data/lib/mumuki/domain.rb
CHANGED
@@ -7,11 +7,11 @@ require 'mumukit/auth'
|
|
7
7
|
require 'mumukit/bridge'
|
8
8
|
require 'mumukit/content_type'
|
9
9
|
require 'mumukit/directives'
|
10
|
-
require 'mumukit/inspection'
|
11
10
|
require 'mumukit/platform'
|
12
11
|
require 'mumukit/randomizer'
|
13
12
|
require 'mumukit/sync'
|
14
13
|
require 'mumukit/login'
|
14
|
+
require 'mumukit/inspection'
|
15
15
|
|
16
16
|
I18n.load_translations_path File.join(__dir__, 'domain', 'locales', '**', '*.yml')
|
17
17
|
|
@@ -34,7 +34,7 @@ require_relative './domain/extensions'
|
|
34
34
|
require_relative './domain/organization'
|
35
35
|
require_relative './domain/helpers'
|
36
36
|
require_relative './domain/syncable'
|
37
|
-
require_relative './domain/
|
37
|
+
require_relative './domain/store'
|
38
38
|
|
39
39
|
class Mumukit::Assistant
|
40
40
|
def self.valid?(rules)
|
@@ -42,12 +42,6 @@ class Mumukit::Assistant
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
class Mumukit::Expectation
|
46
|
-
def self.valid?(expectation)
|
47
|
-
!!Mumukit::Inspection.parse(expectation['inspection']) rescue false
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
45
|
class Mumukit::Randomizer
|
52
46
|
def self.valid?(randomizations)
|
53
47
|
!!parse(randomizations) rescue false
|
@@ -55,6 +49,9 @@ class Mumukit::Randomizer
|
|
55
49
|
end
|
56
50
|
|
57
51
|
Mumukit::Sync::Store::Github.configure do |config|
|
58
|
-
config.guide_schema =
|
59
|
-
config.exercise_schema =
|
52
|
+
config.guide_schema = Mumuki::Domain::Store::Github::GuideSchema
|
53
|
+
config.exercise_schema = Mumuki::Domain::Store::Thesaurus
|
60
54
|
end
|
55
|
+
|
56
|
+
Mulang::Inspection.register_extension! Mumukit::Inspection::Css
|
57
|
+
Mulang::Inspection.register_extension! Mumukit::Inspection::Source
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumuki-domain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franco Leonardo Bulgarelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -109,21 +109,35 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0.5'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: mumukit-
|
112
|
+
name: mumukit-randomizer
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '1.0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '1.0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name: mumukit-
|
126
|
+
name: mumukit-platform
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '5.1'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '5.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mumukit-sync
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
@@ -137,47 +151,61 @@ dependencies:
|
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '1.0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name: mumukit-
|
154
|
+
name: mumukit-login
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
159
|
+
version: '7.0'
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
166
|
+
version: '7.0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: mulang
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
173
|
+
version: '5.0'
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
180
|
+
version: '5.0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name: mumukit-
|
182
|
+
name: mumukit-inspection
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
187
|
+
version: '5.0'
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
194
|
+
version: '5.0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: sprockets
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '3.7'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '3.7'
|
181
209
|
- !ruby/object:Gem::Dependency
|
182
210
|
name: pg
|
183
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,19 +221,19 @@ dependencies:
|
|
193
221
|
- !ruby/object:Gem::Version
|
194
222
|
version: 0.18.0
|
195
223
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
224
|
+
name: bundler
|
197
225
|
requirement: !ruby/object:Gem::Requirement
|
198
226
|
requirements:
|
199
227
|
- - "~>"
|
200
228
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
229
|
+
version: '2.0'
|
202
230
|
type: :development
|
203
231
|
prerelease: false
|
204
232
|
version_requirements: !ruby/object:Gem::Requirement
|
205
233
|
requirements:
|
206
234
|
- - "~>"
|
207
235
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
236
|
+
version: '2.0'
|
209
237
|
description: Mumuki Platform's Domain Model
|
210
238
|
email:
|
211
239
|
- franco@mumuki.org
|
@@ -555,6 +583,10 @@ files:
|
|
555
583
|
- db/migrate/20190702003600_add_loading_flags_to_language.rb
|
556
584
|
- db/migrate/20190702182407_add_new_profile_fields.rb
|
557
585
|
- db/migrate/20190724190355_add_settings_to_languages.rb
|
586
|
+
- db/migrate/20190905174934_add_submitted_at_to_assignments.rb
|
587
|
+
- db/migrate/20190918134321_remove_new_expectations.rb
|
588
|
+
- db/migrate/20190918140026_add_custom_expectations.rb
|
589
|
+
- db/migrate/20190929180601_add_expectations_to_language.rb
|
558
590
|
- lib/mumuki/domain.rb
|
559
591
|
- lib/mumuki/domain/engine.rb
|
560
592
|
- lib/mumuki/domain/evaluation.rb
|
@@ -620,11 +652,12 @@ files:
|
|
620
652
|
- lib/mumuki/domain/status/submission/pending.rb
|
621
653
|
- lib/mumuki/domain/status/submission/running.rb
|
622
654
|
- lib/mumuki/domain/status/submission/submission.rb
|
623
|
-
- lib/mumuki/domain/
|
624
|
-
- lib/mumuki/domain/
|
625
|
-
- lib/mumuki/domain/
|
626
|
-
- lib/mumuki/domain/
|
627
|
-
- lib/mumuki/domain/
|
655
|
+
- lib/mumuki/domain/store.rb
|
656
|
+
- lib/mumuki/domain/store/bibliotheca.rb
|
657
|
+
- lib/mumuki/domain/store/github.rb
|
658
|
+
- lib/mumuki/domain/store/github/exercise_schema.rb
|
659
|
+
- lib/mumuki/domain/store/github/guide_schema.rb
|
660
|
+
- lib/mumuki/domain/store/thesaurus.rb
|
628
661
|
- lib/mumuki/domain/submission.rb
|
629
662
|
- lib/mumuki/domain/submission/base.rb
|
630
663
|
- lib/mumuki/domain/submission/confirmation.rb
|
data/lib/mumuki/domain/stores.rb
DELETED