class Mumukit::Sync::Store::Github::GuideBuilder
Attributes
exercises[W]
Public Class Methods
new(slug)
click to toggle source
Calls superclass method
# File lib/mumukit/sync/store/github/guide_builder.rb, line 7 def initialize(slug) super() self.slug = slug end
Public Instance Methods
add_exercise(exercise)
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 20 def add_exercise(exercise) self.exercises << exercise end
build()
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 16 def build build_json.compact end
exercises()
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 12 def exercises @exercises ||= [] end
language()
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 28 def language meta['language'] end
locale()
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 24 def locale meta['locale'] end
Private Instance Methods
build_json()
click to toggle source
# File lib/mumukit/sync/store/github/guide_builder.rb, line 34 def build_json raise Mumukit::Sync::SyncError, "Missing guide language" if language.blank? file = build_fields_h(guide_schema.file_fields) { |field| self[field.reverse_name] } metadata = build_fields_h(guide_schema.metadata_fields) { |field| self.meta[field.name.to_s] } file.merge(metadata).merge( expectations: expectations.to_a, slug: slug, exercises: exercises.sort_by { |e| order.position_for(e[:id]) }).compact end