hsss 0.1.3 → 0.1.4
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/exe/hsss +3 -0
- data/hsss.gemspec +2 -2
- data/lib/hsss/version.rb +1 -1
- data/lib/hsss.rb +14 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c214ad328e8c64a680d183de71a3d70ecfc4033e
|
4
|
+
data.tar.gz: 8f94f9e93cceb204226fdfbe975d2d12473d5814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58c666e386a44a976090f939b9c88006909f3ab3cb2fb6f31a47294bf4193298b2e5af67195fbe2cc83f9cb4bad98c8b30f8f8627fcec05d2bb9bbfd196efdec
|
7
|
+
data.tar.gz: 36eb952a2a3ad64a5481895a715cecad71d10a1c0a9f534008bd1b5640ff6ce434334a29d1f0658464adbbdb2649ab3ace0b3c863e8858037c81dc56b46be992
|
data/exe/hsss
CHANGED
@@ -10,6 +10,8 @@ arg=OptionParser.new do |opts|
|
|
10
10
|
opts.on("--names [#{Hsss::DEFAULT_NAMES_NAME}]", "Script names variable"){|v| opt[:names_struct]=v}
|
11
11
|
opts.on("--count [#{Hsss::DEFAULT_COUNT_NAME}]", "integer script count variable"){|v| opt[:count_name]=v}
|
12
12
|
opts.on("--no-count", "Omit script count variable"){opt[:skip_count]=true}
|
13
|
+
opts.on("--each-macro [#{Hsss::DEFAULT_ITER_MACRO_NAME}]", "Iterator macro"){|v| opt[:iter_macro_name]=v}
|
14
|
+
opts.on("--no-each", "Omit the iterator macro"){opt[:skip_each]=true}
|
13
15
|
opts.on("--no-parse", "Skip using luac to check script syntax"){opt[:no_luac]=true}
|
14
16
|
opts.on("--prefix PREFIX", "Prefix default names with this"){|v| opt[:prefix]=v}
|
15
17
|
end
|
@@ -18,6 +20,7 @@ Hash-Safe Script Splinterer, a Lua Script and hash embedder into C source.
|
|
18
20
|
Good for putting Redis Lua scripts in your C headers.
|
19
21
|
Usage: hsss [options] files
|
20
22
|
EOS
|
23
|
+
arg.version=Hsss::VERSION
|
21
24
|
|
22
25
|
rest = arg.parse!
|
23
26
|
|
data/hsss.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Leo P."]
|
10
10
|
spec.email = ["junk@slact.net"]
|
11
11
|
|
12
|
-
spec.summary = %q{Hash-Safe Script
|
13
|
-
spec.description = %q{Transforms Lua files into structs of C-strings and associated headers. Great for embedding Redis Lua scripts.}
|
12
|
+
spec.summary = %q{Hash-Safe Script Splinterer}
|
13
|
+
spec.description = %q{Hash-Safe Script Splinterer: Transforms Lua files into structs of C-strings and associated headers. Great for embedding Redis Lua scripts.}
|
14
14
|
spec.homepage = "https://github.com/slact/hsss"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
data/lib/hsss/version.rb
CHANGED
data/lib/hsss.rb
CHANGED
@@ -7,11 +7,12 @@ module Hsss
|
|
7
7
|
DEFAULT_NAMES_NAME="redis_lua_script_names"
|
8
8
|
DEFAULT_SCRIPTS_NAME="redis_lua_scripts"
|
9
9
|
DEFAULT_COUNT_NAME="redis_lua_scripts_count"
|
10
|
+
DEFAULT_ITER_MACRO_NAME="REDIS_LUA_SCRIPTS_EACH"
|
10
11
|
|
11
12
|
class Hsss
|
12
13
|
EXT="lua"
|
13
14
|
|
14
|
-
attr_accessor :struct_name, :hashes_struct, :names_struct, :scripts_struct, :count_name
|
15
|
+
attr_accessor :struct_name, :hashes_struct, :names_struct, :scripts_struct, :count_name, :iter_macro_name
|
15
16
|
def initialize(files, opt={})
|
16
17
|
@scripts={}
|
17
18
|
|
@@ -19,7 +20,8 @@ module Hsss
|
|
19
20
|
hashes_struct: DEFAULT_HASHES_NAME,
|
20
21
|
names_struct: DEFAULT_NAMES_NAME,
|
21
22
|
scripts_struct: DEFAULT_SCRIPTS_NAME,
|
22
|
-
count_name: DEFAULT_COUNT_NAME
|
23
|
+
count_name: DEFAULT_COUNT_NAME,
|
24
|
+
iter_macro_name: DEFAULT_ITER_MACRO_NAME}.each do |var, default|
|
23
25
|
send "#{var}=", opt[var] || default
|
24
26
|
end
|
25
27
|
|
@@ -29,6 +31,7 @@ module Hsss
|
|
29
31
|
end
|
30
32
|
end
|
31
33
|
@include_count = !opt[:skip_count]
|
34
|
+
@include_iter_macro = !opt[:skip_each]
|
32
35
|
|
33
36
|
(Array === files ? files : [ files ]).each do |f|
|
34
37
|
begin
|
@@ -114,7 +117,15 @@ module Hsss
|
|
114
117
|
out="//nothing here\n"
|
115
118
|
end
|
116
119
|
|
117
|
-
out<< "const int #{@count_name}=#{@scripts.count};\n" if @include_count
|
120
|
+
out << "const int #{@count_name}=#{@scripts.count};\n" if @include_count
|
121
|
+
|
122
|
+
if @include_iter_macro
|
123
|
+
macro = []
|
124
|
+
macro << "#define #{iter_macro_name}(script_src, script_name, script_hash) \\"
|
125
|
+
macro << "for((script_src)=(char **)&#{scripts_struct}, (script_hash)=(char **)&#{hashes_struct}, (script_name)=(char **)&#{names_struct}; (script_src) < (char **)(&#{scripts_struct} + 1); (script_src)++, (script_hash)++, (script_name)++) "
|
126
|
+
out << macro.join("\n")
|
127
|
+
end
|
128
|
+
|
118
129
|
out
|
119
130
|
end
|
120
131
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hsss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leo P.
|
@@ -66,8 +66,8 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description: Transforms Lua files into structs of C-strings
|
70
|
-
Great for embedding Redis Lua scripts.
|
69
|
+
description: 'Hash-Safe Script Splinterer: Transforms Lua files into structs of C-strings
|
70
|
+
and associated headers. Great for embedding Redis Lua scripts.'
|
71
71
|
email:
|
72
72
|
- junk@slact.net
|
73
73
|
executables:
|
@@ -111,5 +111,5 @@ rubyforge_project:
|
|
111
111
|
rubygems_version: 2.5.1
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
|
-
summary: Hash-Safe Script
|
114
|
+
summary: Hash-Safe Script Splinterer
|
115
115
|
test_files: []
|