Class: ExtractI18n::HTMLExtractor::ErbDocument
- Inherits:
-
Object
- Object
- ExtractI18n::HTMLExtractor::ErbDocument
show all
- Defined in:
- lib/extract_i18n/html_extractor/erb_document.rb
Constant Summary
collapse
- ERB_REGEXPS =
[
TwoWayRegexp.new(/<%=(?<inner_text>.+?)%>/m, /@@=(?<inner_text>[a-z0-9\-\._]+)@@/m),
TwoWayRegexp.new(/<%#(?<inner_text>.+?)%>/m, /@@#(?<inner_text>[a-z0-9\-\._]+)@@/m),
TwoWayRegexp.new(/<%(?<inner_text>.+?)%>/m, /@@(?<inner_text>[a-z0-9\-\._]+)@@/m)
].freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(document, erb_directives) ⇒ ErbDocument
Returns a new instance of ErbDocument.
14
15
16
17
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 14
def initialize(document, erb_directives)
@document = document
@erb_directives = erb_directives
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
29
30
31
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 29
def method_missing(name, *args, &block)
@document.public_send(name, *args, &block) if @document.respond_to? name
end
|
Instance Attribute Details
#erb_directives ⇒ Object
Returns the value of attribute erb_directives.
12
13
14
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 12
def erb_directives
@erb_directives
end
|
Class Method Details
.parse(filename, verbose: false) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 34
def parse(filename, verbose: false)
file_content = ''
File.open(filename) do |file|
file.read(nil, file_content)
return parse_string(file_content, verbose: verbose)
end
end
|
.parse_string(string, verbose: false) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 42
def parse_string(string, verbose: false)
erb_directives = string
document = create_document(string)
log_errors(document.errors, string) if verbose
ErbDocument.new(document, erb_directives)
end
|
Instance Method Details
#save ⇒ Object
19
20
21
22
23
24
25
26
27
|
# File 'lib/extract_i18n/html_extractor/erb_document.rb', line 19
def save
result = @document.to_html(indent: 2, encoding: 'UTF-8')
ERB_REGEXPS.each do |regexp|
regexp.inverse_replace!(result) do |string_format, data|
string_format % { inner_text: erb_directives[data[:inner_text]] }
end
end
result
end
|