class Mumukit::Sync::Store::Github::Schema::Field

Public Instance Methods

field_value_present?(document) click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 97
def field_value_present?(document)
  document[reverse_name].present?
end
find_file_name(description, root) click to toggle source

Reading fields from Github

# File lib/mumukit/sync/store/github/schema.rb, line 114
def find_file_name(description, root)
  files = Dir.glob("#{root}/#{name}.*")
  if files.length == 1
    files[0]
  elsif files.empty? && required
    raise Mumukit::Sync::SyncError, "Missing #{description} #{name} file"
  else
    nil
  end
end
get_field_value(document) click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 93
def get_field_value(document)
  safe_transform.to.call document[reverse_name]
end
get_file_extension(language) click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 101
def get_file_extension(language)
  case extension
  when :code then
    language[:extension]
  when :test then
    language[:test_extension]
  else
    extension
  end
end
get_file_name(language) click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 89
def get_file_name(language)
  "#{name}.#{get_file_extension(language)}"
end
get_file_pattern() click to toggle source

Writing fields to Github

# File lib/mumukit/sync/store/github/schema.rb, line 85
def get_file_pattern
  get_file_name extension: '*', test_extension: '*'
end
read_field_file(description, root) click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 125
def read_field_file(description, root)
  find_file_name(description, root).try { |it| safe_transform.from.call it }
end
reverse_name() click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 76
def reverse_name
  reverse || name
end
safe_transform() click to toggle source
# File lib/mumukit/sync/store/github/schema.rb, line 80
def safe_transform
  transform || struct(to: proc { |it| it }, from: proc { |it| File.read(it) })
end