tmxsuite 0.0.1
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.
- data/README.rdoc +6 -0
- data/bin/tmxsuite +234 -0
- data/lib/tmxsuite.rb +4 -0
- data/lib/tmxsuite/version.rb +3 -0
- data/tmxsuite.rdoc +5 -0
- metadata +129 -0
data/README.rdoc
ADDED
data/bin/tmxsuite
ADDED
@@ -0,0 +1,234 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'gli'
|
3
|
+
require 'yaml'
|
4
|
+
require_relative 'parser'
|
5
|
+
|
6
|
+
$LOAD_PATH << File.expand_path(File.dirname(__FILE__) + '/../lib')
|
7
|
+
|
8
|
+
begin # XXX: Remove this begin/rescue before distributing your app
|
9
|
+
require 'tmxsuite'
|
10
|
+
rescue LoadError
|
11
|
+
STDERR.puts "In development, you need to use `bundle exec bin/tmxsuite` to run your app"
|
12
|
+
STDERR.puts "At install-time, RubyGems will make sure lib, etc. are in the load path"
|
13
|
+
STDERR.puts "Feel free to remove this message from bin/tmxsuite now"
|
14
|
+
exit 64
|
15
|
+
end
|
16
|
+
|
17
|
+
include GLI::App
|
18
|
+
include Parser
|
19
|
+
|
20
|
+
|
21
|
+
program_desc 'A simple program for importing TMX files into database friendly formats and exporting segments again'
|
22
|
+
version Tmxsuite::VERSION
|
23
|
+
|
24
|
+
|
25
|
+
# accept(Dokument::TMX) do |string|
|
26
|
+
# Dokument::TMX.new(string)
|
27
|
+
# end
|
28
|
+
|
29
|
+
|
30
|
+
##DEFAULTS & OPTIONS
|
31
|
+
# config_file File.join(ENV['PWD'],'/lib/.todo.rc.yaml')
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
##GLOBAL OPTIONS - also external configuration file
|
37
|
+
#automatically created with initconfig
|
38
|
+
config_file File.join(File.expand_path(File.dirname(__FILE__)),'.tmxsuite.rc.yaml')
|
39
|
+
mem_file = File.join(File.expand_path(File.dirname(__FILE__)),'.memories.yaml')
|
40
|
+
|
41
|
+
desc 'Specify the directory where the tmxtemplates live'
|
42
|
+
arg_name 'tmxtemplates'
|
43
|
+
default_value File.join(File.expand_path File.dirname(__FILE__),'/TEMPLATES')
|
44
|
+
flag [:tmxtemplates]
|
45
|
+
|
46
|
+
desc 'Specify the file where the memorylist lives'
|
47
|
+
arg_name 'memlist'
|
48
|
+
default_value mem_file
|
49
|
+
flag [:memorylist]
|
50
|
+
|
51
|
+
desc 'Specify the directory where the exported memories live'
|
52
|
+
arg_name 'exportpath'
|
53
|
+
default_value File.join(File.expand_path File.dirname(__FILE__),'/EXPORT')
|
54
|
+
flag [:exportpath]
|
55
|
+
|
56
|
+
desc 'Enter a default user name'
|
57
|
+
arg_name 'user'
|
58
|
+
default_value ENV['USER']
|
59
|
+
flag [:username]
|
60
|
+
|
61
|
+
|
62
|
+
##END
|
63
|
+
|
64
|
+
desc 'Imports a new memory or directory of memories'
|
65
|
+
long_desc """
|
66
|
+
A memory must be TMX compliant.
|
67
|
+
The memory or memories are parsed and the segments are turned into the specified format
|
68
|
+
Subdirectories will be ignored
|
69
|
+
E.g. Creates a JSON file memoryname.json.
|
70
|
+
It makes sense to arrange memories by tags since tags can only be added per import
|
71
|
+
|
72
|
+
"""
|
73
|
+
arg_name 'memories'
|
74
|
+
command :import do |c|
|
75
|
+
|
76
|
+
desc 'Choose x for xpath, otherwise going to use SAX'
|
77
|
+
c.switch [:X,:xpath]
|
78
|
+
|
79
|
+
# c.desc 'The directory of memory to import'
|
80
|
+
# c.flag [:d, :directory]
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
c.flag [:t,:tags], :arg_name => 'tags',
|
85
|
+
:type => Array,
|
86
|
+
:desc => 'The domain-style tags for these memories'
|
87
|
+
|
88
|
+
c.desc 'The format to turn the TMX into'
|
89
|
+
c.arg_name 'json|csv|pretty|yaml|db'
|
90
|
+
# c.default_value defaults[:format]
|
91
|
+
c.flag :format
|
92
|
+
|
93
|
+
c.action do |global_options,options,memory_paths|
|
94
|
+
|
95
|
+
## memory_paths are the args to ARGV an array
|
96
|
+
|
97
|
+
# allow for memories to be added from standard input stream
|
98
|
+
|
99
|
+
if memory_paths.empty?
|
100
|
+
puts "Reading new memories from stdin...."
|
101
|
+
memory_paths = STDIN.readlines.map { |a| a.chomp }
|
102
|
+
end
|
103
|
+
|
104
|
+
# puts "START"
|
105
|
+
# puts memory_paths
|
106
|
+
# puts "END"
|
107
|
+
|
108
|
+
# TMX Sanity check
|
109
|
+
memory_paths.each do |m|
|
110
|
+
memory_paths.delete(m) if File.extname(m) != ".tmx"
|
111
|
+
end
|
112
|
+
|
113
|
+
# puts "START2"
|
114
|
+
# puts memory_paths
|
115
|
+
# puts "END2"
|
116
|
+
|
117
|
+
|
118
|
+
# memory_paths.delete_if {|x| File.extname(x) == ".tmx" }
|
119
|
+
|
120
|
+
File.open(global_options[:memorylist], 'a+') do |memorylist|
|
121
|
+
|
122
|
+
memories = 0
|
123
|
+
memory_paths.each do |mem|
|
124
|
+
|
125
|
+
|
126
|
+
##CHECK AGAIN FOR VALIDITY AFTER IMPORT
|
127
|
+
#if these are real memories, add to list - bring in Document module
|
128
|
+
|
129
|
+
#memname, mempath, createdon, createdby
|
130
|
+
meminfo = {
|
131
|
+
:memoryname => File.basename(mem),
|
132
|
+
:size => '%.2f' % ((File.size(mem).to_f)/1024000) + " MB",
|
133
|
+
:imported => Time.now.strftime("%F at %T"),
|
134
|
+
:previouswrite => File.mtime(mem).strftime("%F at %T"),
|
135
|
+
:previousread => File.atime(mem).strftime("%F at %T"),
|
136
|
+
:owner => global_options[:username],
|
137
|
+
:tags => options[:tags]
|
138
|
+
}
|
139
|
+
|
140
|
+
YAML::dump(meminfo, memorylist)
|
141
|
+
warn "added memories to memory list #{global_options[:memorylist]}"
|
142
|
+
memories +=1
|
143
|
+
end
|
144
|
+
|
145
|
+
if memories ==0
|
146
|
+
raise "Invalid memories on the command line or via standard input"
|
147
|
+
end
|
148
|
+
options[:memorycount] = memories
|
149
|
+
options[:files] = memory_paths
|
150
|
+
end
|
151
|
+
|
152
|
+
|
153
|
+
puts options.inspect
|
154
|
+
puts "Running import command...."
|
155
|
+
puts "Running Parser...."
|
156
|
+
Parser::TMXMultiParser.new(options)
|
157
|
+
end
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
# # Your command logic here
|
163
|
+
|
164
|
+
# # If you have any errors, just raise them
|
165
|
+
# # raise "that command made no sense"
|
166
|
+
# puts options.inspect
|
167
|
+
# puts "import command ran"
|
168
|
+
# end
|
169
|
+
end
|
170
|
+
|
171
|
+
desc 'Exports a JSON style segment block to a new TMX, adds to memory list'
|
172
|
+
arg_name 'Describe arguments to export here'
|
173
|
+
command :export do |c|
|
174
|
+
|
175
|
+
c.desc 'The format of the input file'
|
176
|
+
c.flag :f
|
177
|
+
|
178
|
+
c.action do |global_options,options,args|
|
179
|
+
|
180
|
+
puts options.inspect
|
181
|
+
puts "export command ran"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
desc 'Lists the memories you have imported previously'
|
186
|
+
arg_name 'Describe arguments to list here'
|
187
|
+
command :list do |c|
|
188
|
+
|
189
|
+
c.flag :s
|
190
|
+
|
191
|
+
c.action do |global_options,options,args|
|
192
|
+
puts global_options.inspect
|
193
|
+
|
194
|
+
puts "list command ran"
|
195
|
+
|
196
|
+
#sorting
|
197
|
+
if options[:s] == 'date'
|
198
|
+
#sort list by date
|
199
|
+
end
|
200
|
+
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
|
205
|
+
### DO THE DIRECTORY TMX CHECK HERE
|
206
|
+
|
207
|
+
pre do |global_options,command,options,args|
|
208
|
+
# Pre logic here
|
209
|
+
# Return true to proceed; false to abort and not call the
|
210
|
+
# chosen command
|
211
|
+
# Use skips_pre before a command to skip this block
|
212
|
+
# on that command only
|
213
|
+
|
214
|
+
#does file exist? if not create it
|
215
|
+
unless File.exists? global_options[:memorylist]
|
216
|
+
global_options[:memorylist] = File.open(mem_file, 'w')
|
217
|
+
warn "Created new memories file #{mem_file}"
|
218
|
+
end
|
219
|
+
true
|
220
|
+
end
|
221
|
+
|
222
|
+
post do |global,command,options,args|
|
223
|
+
# Post logic here
|
224
|
+
# Use skips_post before a command to skip this
|
225
|
+
# block on that command only
|
226
|
+
end
|
227
|
+
|
228
|
+
on_error do |exception|
|
229
|
+
# Error logic here
|
230
|
+
# return false to skip default error handling
|
231
|
+
true
|
232
|
+
end
|
233
|
+
|
234
|
+
exit run(ARGV)
|
data/lib/tmxsuite.rb
ADDED
data/tmxsuite.rdoc
ADDED
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tmxsuite
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Coder Vince
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-06 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rdoc
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: aruba
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: gli
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 2.5.4
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.5.4
|
78
|
+
description:
|
79
|
+
email: publicvince102@gmail.com
|
80
|
+
executables:
|
81
|
+
- tmxsuite
|
82
|
+
extensions: []
|
83
|
+
extra_rdoc_files:
|
84
|
+
- README.rdoc
|
85
|
+
- tmxsuite.rdoc
|
86
|
+
files:
|
87
|
+
- bin/tmxsuite
|
88
|
+
- lib/tmxsuite/version.rb
|
89
|
+
- lib/tmxsuite.rb
|
90
|
+
- README.rdoc
|
91
|
+
- tmxsuite.rdoc
|
92
|
+
homepage: http://www.termz.net
|
93
|
+
licenses: []
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options:
|
96
|
+
- --title
|
97
|
+
- tmxsuite
|
98
|
+
- --main
|
99
|
+
- README.rdoc
|
100
|
+
- -ri
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
- lib
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
hash: 2020861769513580170
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
segments:
|
120
|
+
- 0
|
121
|
+
hash: 2020861769513580170
|
122
|
+
requirements: []
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.8.25
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: A gem for processing Localization/Translation .TMX files into frontend and
|
128
|
+
backend friendly formats
|
129
|
+
test_files: []
|