Class: ToLua::Helpers
Constant Summary collapse
- LUA_C_STYLE_ESCAPES =
{ "\a" => "\\a", "\b" => "\\b", "\f" => "\\f", "\n" => "\\n", "\r" => "\\r", "\t" => "\\t", "\v" => "\\v", "\\" => "\\\\", "\"" => "\\\"", "'" => "\\'" }.freeze
- LUA_RESERVED_KEYWORDS =
%w( and break do else elseif end false for function if in local nil not or repeat return then true until while )
Class Method Summary collapse
- .encode_string(string) ⇒ Object
- .reserved_keyword?(identifier) ⇒ Boolean
- .valid_identifier?(identifier) ⇒ Boolean
- .valid_identifier_characters?(identifier) ⇒ Boolean
Class Method Details
.encode_string(string) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/to_lua/helpers.rb', line 21 def self.encode_string(string) encoded = [] string.each_char do |char| if LUA_C_STYLE_ESCAPES[char] encoded << LUA_C_STYLE_ESCAPES[char] elsif char =~ /^[^[:print:]]$/ char.each_byte do |byte| encoded << '\\' encoded << byte.to_s end else encoded << char end end encoded.join end |
.reserved_keyword?(identifier) ⇒ Boolean
48 49 50 |
# File 'lib/to_lua/helpers.rb', line 48 def self.reserved_keyword?(identifier) LUA_RESERVED_KEYWORDS.include?(identifier) end |
.valid_identifier?(identifier) ⇒ Boolean
40 41 42 |
# File 'lib/to_lua/helpers.rb', line 40 def self.valid_identifier?(identifier) valid_identifier_characters?(identifier) && !reserved_keyword?(identifier) end |
.valid_identifier_characters?(identifier) ⇒ Boolean
44 45 46 |
# File 'lib/to_lua/helpers.rb', line 44 def self.valid_identifier_characters?(identifier) !!(identifier =~ /^[_a-zA-Z][_a-zA-Z0-9]*$/) end |