Class: Sheetah::Specification
- Inherits:
-
Object
- Object
- Sheetah::Specification
show all
- Defined in:
- lib/sheetah/specification.rb
Defined Under Namespace
Classes: DuplicatedPatternError, InvalidPatternError, MutablePatternError
Instance Method Summary
collapse
Constructor Details
#initialize(ignore_unspecified_columns: false) ⇒ Specification
Returns a new instance of Specification.
16
17
18
19
|
# File 'lib/sheetah/specification.rb', line 16
def initialize(ignore_unspecified_columns: false)
@column_by_pattern = {}
@ignore_unspecified_columns = ignore_unspecified_columns
end
|
Instance Method Details
#freeze ⇒ Object
59
60
61
62
|
# File 'lib/sheetah/specification.rb', line 59
def freeze
@column_by_pattern.freeze
super
end
|
#get(header) ⇒ Object
37
38
39
40
41
42
43
44
45
|
# File 'lib/sheetah/specification.rb', line 37
def get()
return if .nil?
@column_by_pattern.each do |pattern, column|
return column if pattern === end
nil
end
|
#ignore_unspecified_columns? ⇒ Boolean
55
56
57
|
# File 'lib/sheetah/specification.rb', line 55
def ignore_unspecified_columns?
@ignore_unspecified_columns
end
|
#optional_columns ⇒ Object
51
52
53
|
# File 'lib/sheetah/specification.rb', line 51
def optional_columns
@column_by_pattern.each_value.reject(&:required?)
end
|
#required_columns ⇒ Object
47
48
49
|
# File 'lib/sheetah/specification.rb', line 47
def required_columns
@column_by_pattern.each_value.select(&:required?)
end
|
#set(pattern, column) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/sheetah/specification.rb', line 21
def set(pattern, column)
if pattern.nil?
raise InvalidPatternError, pattern.inspect
end
unless pattern.frozen?
raise MutablePatternError, pattern.inspect
end
if @column_by_pattern.key?(pattern)
raise DuplicatedPatternError, pattern.inspect
end
@column_by_pattern[pattern] = column
end
|