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

Inherits:
Object
  • Object
show all
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 Classes: Bot, ExerciseBuilder, FixedOrdering, GuideBuilder, GuideExport, GuideImport, GuideReader, GuideWriter, Operation, OrganizationNotFoundError

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Github.



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

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

Instance Method Details

#read_resource(sync_key) ⇒ Object



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

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



12
13
14
# File 'lib/mumukit/sync/store/github.rb', line 12

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

#write_resource!(sync_key, resource_h) ⇒ Object



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

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