mumuki-domain 7.0.1 → 7.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.
- 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