Class: Mumukit::Sync::Store::Github::Schema::Field
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Mumukit::Sync::Store::Github::Schema::Field
- Defined in:
- lib/mumukit/sync/store/github/schema.rb
Instance Method Summary collapse
- #field_value_present?(document) ⇒ Boolean
-
#find_file_name(root) ⇒ Object
Reading fields from Github.
- #get_field_value(document) ⇒ Object
- #get_file_extension(language) ⇒ Object
-
#get_file_name(language) ⇒ Object
Writing fields to Github.
- #read_field_file(root) ⇒ Object
- #reverse_name ⇒ Object
- #safe_transform ⇒ Object
Instance Method Details
#field_value_present?(document) ⇒ Boolean
86 87 88 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 86 def field_value_present?(document) document[reverse_name].present? end |
#find_file_name(root) ⇒ Object
Reading fields from Github
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 103 def find_file_name(root) files = Dir.glob("#{root}/#{name}.*") if files.length == 1 files[0] elsif files.empty? && required raise "Missing #{name} file" else nil end end |
#get_field_value(document) ⇒ Object
82 83 84 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 82 def get_field_value(document) safe_transform.to.call document[reverse_name] end |
#get_file_extension(language) ⇒ Object
90 91 92 93 94 95 96 97 98 99 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 90 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) ⇒ Object
Writing fields to Github
78 79 80 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 78 def get_file_name(language) "#{name}.#{get_file_extension(language)}" end |
#read_field_file(root) ⇒ Object
114 115 116 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 114 def read_field_file(root) find_file_name(root).try { |it| safe_transform.from.call it } end |
#reverse_name ⇒ Object
68 69 70 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 68 def reverse_name reverse || name end |
#safe_transform ⇒ Object
72 73 74 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 72 def safe_transform transform || struct(to: proc { |it| it }, from: proc { |it| File.read(it) }) end |