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(description, root) ⇒ Object
Reading fields from Github.
- #get_field_value(document) ⇒ Object
- #get_file_extension(language) ⇒ Object
- #get_file_name(language) ⇒ Object
-
#get_file_pattern ⇒ Object
Writing fields to Github.
- #read_field_file(description, root) ⇒ Object
- #reverse_name ⇒ Object
- #safe_transform ⇒ Object
Instance Method Details
#field_value_present?(document) ⇒ Boolean
97 98 99 |
# 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) ⇒ Object
Reading fields from Github
114 115 116 117 118 119 120 121 122 123 |
# 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) ⇒ Object
93 94 95 |
# 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) ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# 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) ⇒ Object
89 90 91 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 89 def get_file_name(language) "#{name}.#{get_file_extension(language)}" end |
#get_file_pattern ⇒ Object
Writing fields to Github
85 86 87 |
# 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) ⇒ Object
125 126 127 |
# 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 ⇒ Object
76 77 78 |
# File 'lib/mumukit/sync/store/github/schema.rb', line 76 def reverse_name reverse || name end |
#safe_transform ⇒ Object
80 81 82 |
# 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 |