Class: TwitterCldr::Resources::Importer
- Inherits:
-
Object
- Object
- TwitterCldr::Resources::Importer
show all
- Defined in:
- lib/twitter_cldr/resources/importer.rb
Direct Known Subclasses
BidiTestImporter, CasefolderClassGenerator, CollationTriesImporter, HyphenationImporter, LanguageCodesImporter, LocalesResourcesImporter, PhoneCodesImporter, PostalCodesImporter, Properties::PropertyImporter, RbnfTestImporter, SegmentTestsImporter, TailoringImporter, TransformTestImporter, Uli::SegmentExceptionsImporter, UnicodeDataImporter, UnicodePropertyAliasesImporter
Constant Summary
collapse
- DEFAULT_ENGINE =
:mri
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Importer
Returns a new instance of Importer.
57
58
59
60
|
# File 'lib/twitter_cldr/resources/importer.rb', line 57
def initialize(options = {})
@params = self.class.default_params.merge(options)
@requirements = self.class.requirements
end
|
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
55
56
57
|
# File 'lib/twitter_cldr/resources/importer.rb', line 55
def params
@params
end
|
#requirements ⇒ Object
Returns the value of attribute requirements.
55
56
57
|
# File 'lib/twitter_cldr/resources/importer.rb', line 55
def requirements
@requirements
end
|
Class Method Details
.default_params ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/twitter_cldr/resources/importer.rb', line 38
def default_params
parameters.merge(
output_path: @output_path,
locales: @locales,
ruby_engine: @ruby_engine || DEFAULT_ENGINE
)
end
|
.locales(locs) ⇒ Object
30
31
32
|
# File 'lib/twitter_cldr/resources/importer.rb', line 30
def locales(locs)
@locales = locs
end
|
.output_path(path) ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/twitter_cldr/resources/importer.rb', line 22
def output_path(path)
@output_path = if path.start_with?('/')
path
else
File.join(TwitterCldr::RESOURCES_DIR, path)
end
end
|
.parameter(key, value) ⇒ Object
34
35
36
|
# File 'lib/twitter_cldr/resources/importer.rb', line 34
def parameter(key, value)
parameters[key] = value
end
|
.parameters ⇒ Object
50
51
52
|
# File 'lib/twitter_cldr/resources/importer.rb', line 50
def parameters
@parameters ||= {}
end
|
.requirement(name, *args) ⇒ Object
13
14
15
16
|
# File 'lib/twitter_cldr/resources/importer.rb', line 13
def requirement(name, *args)
const_name = "#{name.to_s.capitalize}Requirement".to_sym
requirements[name] = Requirements.const_get(const_name).new(*args)
end
|
.requirements ⇒ Object
46
47
48
|
# File 'lib/twitter_cldr/resources/importer.rb', line 46
def requirements
@requirements ||= {}
end
|
.ruby_engine(engine) ⇒ Object
18
19
20
|
# File 'lib/twitter_cldr/resources/importer.rb', line 18
def ruby_engine(engine)
@ruby_engine = engine
end
|
Instance Method Details
#can_import? ⇒ Boolean
62
63
64
|
# File 'lib/twitter_cldr/resources/importer.rb', line 62
def can_import?
importability_errors.empty?
end
|
#import ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/twitter_cldr/resources/importer.rb', line 66
def import
if can_import?
prepare
execute
else
raise "Can't import #{self.class.name}: #{importability_errors.first}"
end
end
|
#prepare ⇒ Object
75
76
77
78
79
|
# File 'lib/twitter_cldr/resources/importer.rb', line 75
def prepare
before_prepare
requirements.each { |_, req| req.prepare }
after_prepare
end
|