Class: Mumukit::Sync::Store::Github

Inherits:
Object
  • Object
show all
Extended by:
Core::Configurable
Defined in:
lib/mumukit/sync/store/github.rb,
lib/mumukit/sync/store/github/bot.rb,
lib/mumukit/sync/store/github/schema.rb,
lib/mumukit/sync/store/github/ordering.rb,
lib/mumukit/sync/store/github/operation.rb,
lib/mumukit/sync/store/github/guide_export.rb,
lib/mumukit/sync/store/github/guide_import.rb,
lib/mumukit/sync/store/github/guide_reader.rb,
lib/mumukit/sync/store/github/guide_writer.rb,
lib/mumukit/sync/store/github/guide_builder.rb,
lib/mumukit/sync/store/github/exercise_builder.rb,
lib/mumukit/sync/store/github/with_file_reading.rb

Overview

This Store enables importing and exporting content from and to Github

Defined Under Namespace

Modules: NaturalOrdering, Ordering, Schema, WithFileReading, WithSchema Classes: Bot, ExerciseBuilder, FixedOrdering, GuideBuilder, GuideExport, GuideImport, GuideReader, GuideWriter, Operation, OrganizationNotFoundError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bot, author_email = nil, web_hook_base_url = nil) ⇒ Github

Returns a new instance of Github.



8
9
10
11
12
# File 'lib/mumukit/sync/store/github.rb', line 8

def initialize(bot, author_email = nil, web_hook_base_url = nil)
  @bot = bot
  @author_email = author_email || bot.email
  @web_hook_base_url = web_hook_base_url
end

Class Method Details

.defaultsObject



38
39
40
# File 'lib/mumukit/sync/store/github.rb', line 38

def self.defaults
  struct
end

Instance Method Details

#read_resource(sync_key) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/mumukit/sync/store/github.rb', line 18

def read_resource(sync_key)
  return unless sync_key.kind.like? :guide

  Mumukit::Sync::Store::Github::GuideImport.new(
    bot: @bot,
    repo: sync_key.id,
    web_hook_base_url: @web_hook_base_url).run!
end

#sync_keysObject



14
15
16
# File 'lib/mumukit/sync/store/github.rb', line 14

def sync_keys
  Mumukit::Sync::Store.non_discoverable!
end

#write_resource!(sync_key, resource_h) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/mumukit/sync/store/github.rb', line 27

def write_resource!(sync_key, resource_h)
  return unless sync_key.kind.like? :guide

  Mumukit::Sync::Store::Github::GuideExport.new(
    slug: sync_key.id,
    document: resource_h,
    author_email: @author_email,
    web_hook_base_url: @web_hook_base_url,
    bot: @bot).run!
end