to_lua 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/to_lua/generator.rb +10 -3
- data/lib/to_lua/helpers.rb +17 -0
- metadata +34 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62072c4e042598c081315d2b4a8205f5f5e27cdd
|
4
|
+
data.tar.gz: 09482878204c938bd03716697b8cefcaeb45491b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d739faa3ee8539b53f42bb9710cf8eea5a217e8307d9bbacb03734dc9a3644a15e46b3414fb79aa11736fae8ce2e8ff01648d5f5d54120e1f246fb65289f8dba
|
7
|
+
data.tar.gz: dd48b005f845439ff4bc086fc38cbc0597091eea6ef9dbb66fe54be992f6f12e59f9f813a02fbb9e738800925165fbc73b481439386ce67ba7d97a8446a5543c
|
data/lib/to_lua/generator.rb
CHANGED
@@ -62,9 +62,16 @@ module ToLua
|
|
62
62
|
self.each do |key, value|
|
63
63
|
field = ''
|
64
64
|
field << state.indent * state.depth if state.pretty?
|
65
|
-
|
66
|
-
|
67
|
-
|
65
|
+
|
66
|
+
key_str = key.to_s
|
67
|
+
if Helpers.valid_identifier?(key_str)
|
68
|
+
field << key_str
|
69
|
+
else
|
70
|
+
field << '['
|
71
|
+
field << key_str.to_lua
|
72
|
+
field << ']'
|
73
|
+
end
|
74
|
+
|
68
75
|
field << ' ' if state.pretty?
|
69
76
|
field << '='
|
70
77
|
field << ' ' if state.pretty?
|
data/lib/to_lua/helpers.rb
CHANGED
@@ -14,6 +14,11 @@ module ToLua
|
|
14
14
|
"[" => "\\[",
|
15
15
|
"]" => "\\]"
|
16
16
|
}.freeze
|
17
|
+
|
18
|
+
LUA_RESERVED_KEYWORDS = %w(
|
19
|
+
and break do else elseif end false for function if in local nil not or
|
20
|
+
repeat return then true until while
|
21
|
+
)
|
17
22
|
|
18
23
|
def self.encode_string(string)
|
19
24
|
encoded = []
|
@@ -33,5 +38,17 @@ module ToLua
|
|
33
38
|
|
34
39
|
encoded.join
|
35
40
|
end
|
41
|
+
|
42
|
+
def self.valid_identifier?(identifier)
|
43
|
+
valid_identifier_characters?(identifier) && !reserved_keyword?(identifier)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.valid_identifier_characters?(identifier)
|
47
|
+
!!(identifier =~ /^[_a-zA-Z][_a-zA-Z0-9]*$/)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.reserved_keyword?(identifier)
|
51
|
+
LUA_RESERVED_KEYWORDS.include?(identifier)
|
52
|
+
end
|
36
53
|
end
|
37
54
|
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_lua
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mantas Norvaiša
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
12
|
-
dependencies:
|
11
|
+
date: 2015-05-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.2.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.2.0
|
13
41
|
description:
|
14
42
|
email: mntnorv@gmail.com
|
15
43
|
executables: []
|
@@ -31,7 +59,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
31
59
|
requirements:
|
32
60
|
- - ">="
|
33
61
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
62
|
+
version: 2.0.0
|
35
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
64
|
requirements:
|
37
65
|
- - ">="
|
@@ -39,9 +67,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
67
|
version: '0'
|
40
68
|
requirements: []
|
41
69
|
rubyforge_project:
|
42
|
-
rubygems_version: 2.4.
|
70
|
+
rubygems_version: 2.4.6
|
43
71
|
signing_key:
|
44
72
|
specification_version: 4
|
45
|
-
summary: Serialize objects to lua tables
|
73
|
+
summary: Serialize Ruby objects to lua tables
|
46
74
|
test_files: []
|
47
|
-
has_rdoc:
|