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