to_lua 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 788d72b7334d20049dc49d469132b848617c9307
4
+ data.tar.gz: f865e91cb845f1ca85fc0fab501f495aa1011977
5
+ SHA512:
6
+ metadata.gz: 3b22748559a85c9f2e77a58cf041c68ae87da6efc7f5cdbd6a343daa5ada514f7b49763e668dfe2c79157505bcb43f10461883a30c4433caaa69c2f3276d0a3a
7
+ data.tar.gz: 5baf0f0e092430b092dbdb27a076d2ddd121b85ff731972dda6f58f858713ceaa36044c90c86b67b83d6d50aa744c221e28c4fab89cd0c2f5105450e8444ea07
@@ -0,0 +1,51 @@
1
+ require_relative 'helpers'
2
+
3
+ module ToLua
4
+ module Extensions
5
+ module Hash
6
+ def to_lua
7
+ fields = []
8
+
9
+ self.each do |key, value|
10
+ field = '['
11
+ field << key.to_s.to_lua
12
+ field << ']='
13
+ field << value.to_lua
14
+ fields << field
15
+ end
16
+
17
+ '{' + fields.join(',') + '}'
18
+ end
19
+ end
20
+
21
+ module Array
22
+ def to_lua
23
+ fields = []
24
+
25
+ self.each do |value|
26
+ fields << value.to_lua
27
+ end
28
+
29
+ '{' + fields.join(',') + '}'
30
+ end
31
+ end
32
+
33
+ module String
34
+ def to_lua
35
+ '"' + ToLua::Helpers.encode_string(self) + '"'
36
+ end
37
+ end
38
+
39
+ module NilClass
40
+ def to_lua
41
+ 'nil'
42
+ end
43
+ end
44
+
45
+ module ToString
46
+ def to_lua
47
+ self.to_s
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,37 @@
1
+ module ToLua
2
+ class Helpers
3
+ LUA_C_STYLE_ESCAPES = {
4
+ "\a" => "\\a",
5
+ "\b" => "\\b",
6
+ "\f" => "\\f",
7
+ "\n" => "\\n",
8
+ "\r" => "\\r",
9
+ "\t" => "\\t",
10
+ "\v" => "\\v",
11
+ "\\" => "\\\\",
12
+ "\"" => "\\\"",
13
+ "'" => "\\'",
14
+ "[" => "\\[",
15
+ "]" => "\\]"
16
+ }.freeze
17
+
18
+ def self.encode_string(string)
19
+ encoded = []
20
+
21
+ string.each_char do |char|
22
+ if LUA_C_STYLE_ESCAPES[char]
23
+ encoded << LUA_C_STYLE_ESCAPES[char]
24
+ elsif char =~ /^[^[:print:]]$/
25
+ char.each_byte do |byte|
26
+ encoded << '\\'
27
+ encoded << byte.to_s
28
+ end
29
+ else
30
+ encoded << char
31
+ end
32
+ end
33
+
34
+ encoded.join
35
+ end
36
+ end
37
+ end
data/lib/to_lua.rb ADDED
@@ -0,0 +1,29 @@
1
+ require_relative 'to_lua/extensions'
2
+
3
+ class Hash
4
+ include ToLua::Extensions::Hash
5
+ end
6
+
7
+ class Array
8
+ include ToLua::Extensions::Array
9
+ end
10
+
11
+ class String
12
+ include ToLua::Extensions::String
13
+ end
14
+
15
+ class NilClass
16
+ include ToLua::Extensions::NilClass
17
+ end
18
+
19
+ class Numeric
20
+ include ToLua::Extensions::ToString
21
+ end
22
+
23
+ class TrueClass
24
+ include ToLua::Extensions::ToString
25
+ end
26
+
27
+ class FalseClass
28
+ include ToLua::Extensions::ToString
29
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: to_lua
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mantas Norvaiša
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: mntnorv@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/to_lua.rb
20
+ - lib/to_lua/extensions.rb
21
+ - lib/to_lua/helpers.rb
22
+ homepage: https://github.com/mntnorv/to_lua
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.4.1
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Serialize objects to lua tables
46
+ test_files: []