Class: Rescodegen::StringsKeyGenerator
- Inherits:
-
Object
- Object
- Rescodegen::StringsKeyGenerator
- Defined in:
- lib/rescodegen/key_generator/strings_key_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #code_safe_keys ⇒ Object
-
#initialize(lines) ⇒ StringsKeyGenerator
constructor
A new instance of StringsKeyGenerator.
- #keys ⇒ Object
Constructor Details
#initialize(lines) ⇒ StringsKeyGenerator
Returns a new instance of StringsKeyGenerator.
10 11 12 13 14 15 16 17 18 |
# File 'lib/rescodegen/key_generator/strings_key_generator.rb', line 10 def initialize(lines) @keys = lines.map { |l| l.encode("UTF-8", :invalid=>:replace, :replace=>"?").encode('UTF-8') } .reject { |l| l.strip == "" } .select { |l| l[0] == "\"" } .map do |line| line.gsub(/\n$/, "") .gsub(/(")(.*)(" = ".*)/, "\\2") # extracts key from "key" = "description"; format end end |
Class Method Details
.create_from_file(input_file) ⇒ Object
5 6 7 8 |
# File 'lib/rescodegen/key_generator/strings_key_generator.rb', line 5 def self.create_from_file(input_file) lines = File.open(input_file, "rb:UTF-16BE") StringsKeyGenerator.new lines end |
Instance Method Details
#code_safe_keys ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/rescodegen/key_generator/strings_key_generator.rb', line 24 def code_safe_keys @keys.map do |key| key.gsub(/%\.[0-9]f|%[a-zA-Z@]+/, "_") # replace %d, %ld, %.2f etc .gsub(/[^a-zA-Z0-9]/, "_") # replace unsupported characters .gsub(/(\s|_)+/, "_") # replaces 1 or more occurance of whitespace and/or '_' with single '_' .gsub(/^_|_$/, "") # remove _ from beginning and end .gsub(/(^[0-9])/, "_\\1") # add underscore at beginning if starts with number end end |
#keys ⇒ Object
20 21 22 |
# File 'lib/rescodegen/key_generator/strings_key_generator.rb', line 20 def keys @keys end |