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

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.



3
4
5
6
7
# File 'lib/mumukit/sync/store/github.rb', line 3

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



13
14
15
16
17
18
19
20
# File 'lib/mumukit/sync/store/github.rb', line 13

def read_resource(sync_key)
  return unless sync_key.kind == :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



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

def sync_keys
  raise 'Non-discoverable store'
end

#write_resource!(sync_key, resource_h) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/mumukit/sync/store/github.rb', line 22

def write_resource!(sync_key, resource_h)
  return unless sync_key.kind == :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