konjac 0.1.8.7 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +24 -7
- data/Rakefile +1 -0
- data/lib/konjac/cli.rb +9 -2
- data/lib/konjac/config.rb +12 -0
- data/lib/konjac/dictionary.rb +27 -20
- data/lib/konjac/exception.rb +4 -0
- data/lib/konjac/language.rb +14 -2
- data/lib/konjac/tag.rb +35 -2
- data/lib/konjac/tag_manager.rb +11 -0
- data/lib/konjac/translator.rb +5 -0
- data/lib/konjac/utils.rb +2 -0
- data/lib/konjac/version.rb +2 -1
- data/lib/konjac/word.rb +20 -13
- data/lib/konjac.rb +2 -0
- data/locales/en.yml +1 -1
- data/locales/ja.yml +1 -1
- metadata +21 -21
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
=
|
1
|
+
= Konjac
|
2
2
|
|
3
3
|
A Ruby command-line utility for translating files using a YAML wordlist
|
4
4
|
|
@@ -18,11 +18,13 @@ following in your terminal:
|
|
18
18
|
|
19
19
|
=== Development
|
20
20
|
|
21
|
-
With Ruby
|
22
|
-
navigate in your command line to a
|
21
|
+
With Ruby, {Git}[http://help.github.com/set-up-git-redirect] and
|
22
|
+
{Bundler}[http://gembundler.com/] installed, navigate in your command line to a
|
23
|
+
directory of your choice, then run:
|
23
24
|
|
24
25
|
git clone git://github.com/brymck/konjac.git
|
25
26
|
cd konjac
|
27
|
+
bundle update
|
26
28
|
rake install
|
27
29
|
|
28
30
|
== Usage
|
@@ -133,10 +135,25 @@ Run
|
|
133
135
|
Now, obviously that does require some fiddling to make it more grammatical, but
|
134
136
|
it's a start (=> <tt>僕は犬が好きだ。</tt>)
|
135
137
|
|
138
|
+
== Documentation
|
139
|
+
|
140
|
+
Should be simple enough to generate yourself:
|
141
|
+
|
142
|
+
rm -rf konjac
|
143
|
+
git clone git://github.com/brymck/konjac
|
144
|
+
cd konjac
|
145
|
+
bundle update
|
146
|
+
rake rdoc
|
147
|
+
rm -rf !(doc)
|
148
|
+
mv doc/rdoc/* .
|
149
|
+
rm -rf doc
|
150
|
+
|
136
151
|
== Name
|
137
152
|
|
138
153
|
<em>Hon'yaku</em> means "translation" in Japanese. This utility relies on a
|
139
|
-
|
140
|
-
<em>hon'yaku</em>
|
141
|
-
|
142
|
-
|
154
|
+
<b>YAM</b>L wordlist. <em>Konnyaku</em> (Japanese for
|
155
|
+
"{konjac}[http://en.wikipedia.org/wiki/Konjac]") rhymes with <em>hon'yaku</em>
|
156
|
+
and is a type of <b>yam</b>. Also,
|
157
|
+
{Doraemon}[http://en.wikipedia.org/wiki/Doraemon] had something called a
|
158
|
+
<em>hon'yaku konnyaku</em> that allowed him to speak every language. IIRC it
|
159
|
+
worked with animals too. But I digress.
|
data/Rakefile
CHANGED
@@ -14,6 +14,7 @@ RDoc::Task.new do |rdoc|
|
|
14
14
|
rdoc.options << "-c" << "utf-8"
|
15
15
|
rdoc.options << "-g" # link to GitHub
|
16
16
|
rdoc.options << "-m" << "README.rdoc" # use README.rdoc as main file
|
17
|
+
rdoc.options << "-v" # verbose
|
17
18
|
|
18
19
|
rdoc.rdoc_files.include "README.rdoc"
|
19
20
|
rdoc.rdoc_files.include "ext/**/*.{c, h, rb}"
|
data/lib/konjac/cli.rb
CHANGED
@@ -3,13 +3,17 @@ require "trollop"
|
|
3
3
|
require "yaml"
|
4
4
|
|
5
5
|
module Konjac
|
6
|
+
# The class containing the command line interface
|
6
7
|
module CLI
|
7
|
-
class Color
|
8
|
+
class Color # :nodoc:
|
8
9
|
extend Term::ANSIColor
|
9
10
|
end
|
10
11
|
|
11
12
|
class << self
|
13
|
+
# A list of valid subcommands
|
12
14
|
SUB_COMMANDS = ["add", "edit", "export", "import", "language", "translate"]
|
15
|
+
|
16
|
+
# The banner to displaying when requesting help through the command line
|
13
17
|
BANNER = <<-eos
|
14
18
|
#{Color.bold { Color.underscore { "KONJAC" } }}
|
15
19
|
|
@@ -20,6 +24,8 @@ module Konjac
|
|
20
24
|
#{I18n.t(:where_options) % Color.underscore(I18n.t(:options))}
|
21
25
|
eos
|
22
26
|
|
27
|
+
# Starts the command line, parsing arguments passed via <tt>ARGV</tt> and
|
28
|
+
# running the respective commands
|
23
29
|
def start
|
24
30
|
ARGV << "-h" if ARGV.empty?
|
25
31
|
global_opts = Trollop::options do
|
@@ -119,7 +125,8 @@ eos
|
|
119
125
|
|
120
126
|
private
|
121
127
|
|
122
|
-
|
128
|
+
# Parse commands to determine what should be translated and how
|
129
|
+
def translate(files, opts = {}) # :doc:
|
123
130
|
to_lang = Language.find(opts[:to]).to_s
|
124
131
|
|
125
132
|
if opts[:word]
|
data/lib/konjac/config.rb
CHANGED
@@ -2,10 +2,13 @@ require "i18n"
|
|
2
2
|
require "yaml"
|
3
3
|
|
4
4
|
module Konjac
|
5
|
+
# User settings
|
5
6
|
module Config
|
6
7
|
class << self
|
8
|
+
# The path to the user's configuration file
|
7
9
|
CONFIG_PATH = File.expand_path("~/.konjac/config.yml")
|
8
10
|
|
11
|
+
# Loads the user's settings
|
9
12
|
def load
|
10
13
|
Utils.verify_file CONFIG_PATH, "--- {}"
|
11
14
|
config = YAML.load_file(CONFIG_PATH)
|
@@ -15,15 +18,19 @@ module Konjac
|
|
15
18
|
save
|
16
19
|
end
|
17
20
|
|
21
|
+
# The current interface language
|
18
22
|
def language
|
19
23
|
I18n.locale
|
20
24
|
end
|
21
25
|
|
26
|
+
# Sets the language to use for the interface. Note that this has no
|
27
|
+
# effect in determining the to or from languages to use for translation
|
22
28
|
def language=(lang)
|
23
29
|
set_language lang, I18n.locale
|
24
30
|
save
|
25
31
|
end
|
26
32
|
|
33
|
+
# Saves the user configurations
|
27
34
|
def save
|
28
35
|
File.open(CONFIG_PATH, "w") do |file|
|
29
36
|
YAML.dump @opts, file
|
@@ -32,6 +39,11 @@ module Konjac
|
|
32
39
|
|
33
40
|
private
|
34
41
|
|
42
|
+
# Calculates the language based on the available languages in the gem
|
43
|
+
# locale files versus the supplied parameters, in order. Suggested backup
|
44
|
+
# parameters are the system language (<tt>ENV["LANG"]</tt>), the current
|
45
|
+
# locale (<tt>I18n.locale</tt>), the default locale
|
46
|
+
# (<tt>I18n.default_locale</tt>), etc.
|
35
47
|
def set_language(*params)
|
36
48
|
I18n.load_path = Dir[File.join(File.dirname(__FILE__), "..", "..", "locales", "*.yml")]
|
37
49
|
I18n.default_locale = :en
|
data/lib/konjac/dictionary.rb
CHANGED
@@ -1,12 +1,27 @@
|
|
1
1
|
require "yaml"
|
2
2
|
|
3
3
|
module Konjac
|
4
|
+
# A module for loading and manipulating the user's dictionaries
|
4
5
|
module Dictionary
|
5
6
|
class << self
|
6
|
-
|
7
|
+
# The most recent language from which to translate
|
8
|
+
attr_accessor :from_lang
|
9
|
+
|
10
|
+
# The most recent language into which to translated
|
11
|
+
attr_accessor :to_lang
|
12
|
+
|
13
|
+
# The dictionaries currently in use
|
14
|
+
attr_accessor :dictionaries
|
15
|
+
|
16
|
+
# The current pairs
|
17
|
+
attr_accessor :pairs
|
7
18
|
|
19
|
+
# A regular expression used to determine whether a string is blank
|
8
20
|
BLANK = /^\s*$/
|
9
21
|
|
22
|
+
# Loads the specified languages and dictionaries
|
23
|
+
#
|
24
|
+
# Dictionary.load :en, :ja, :using => [:dict]
|
10
25
|
def load(from_lang, to_lang, opts = {})
|
11
26
|
# Allow both symbol and string arguments for languages
|
12
27
|
from_lang = from_lang.to_s
|
@@ -41,6 +56,8 @@ module Konjac
|
|
41
56
|
@pairs
|
42
57
|
end
|
43
58
|
|
59
|
+
# Extracts a regular expression and string replacement pair from a term
|
60
|
+
# in the Dictionary, based on the supplied languages and their templates
|
44
61
|
def extract_pair_from_term(term, from_lang, to_lang, from_template, to_template)
|
45
62
|
if term.has_key?(to_lang)
|
46
63
|
# Build to term depending on whether it's a hash for complex
|
@@ -171,29 +188,16 @@ module Konjac
|
|
171
188
|
|
172
189
|
private
|
173
190
|
|
174
|
-
def parse_language(lang)
|
175
|
-
if @dictionary["languages"].has_key?(lang)
|
176
|
-
return lang
|
177
|
-
else
|
178
|
-
@dictionary["languages"].each do |main, alternatives|
|
179
|
-
return main if alternatives.include?(lang)
|
180
|
-
end
|
181
|
-
|
182
|
-
# If no match is found, give an error message and exit
|
183
|
-
raise Exceptions::InvalidLanguageError.new("No match found for language \"#{lang}\"")
|
184
|
-
exit 1
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
191
|
# Caches variables so we can determine later on whether to reload the
|
189
192
|
# dictionaries or not
|
190
|
-
def cache_load(from_lang, to_lang, dictionaries)
|
193
|
+
def cache_load(from_lang, to_lang, dictionaries) # :doc:
|
191
194
|
@from_lang = from_lang
|
192
195
|
@to_lang = to_lang
|
193
196
|
@dictionaries = dictionaries
|
194
197
|
end
|
195
198
|
|
196
|
-
|
199
|
+
# Loads a marshalled Dictionary
|
200
|
+
def load_serialized(from_lang, to_lang, dictionaries) # :doc:
|
197
201
|
file_name = File.expand_path("~/.konjac/marshal/%s_%s_%s" %
|
198
202
|
[from_lang, to_lang, dictionaries.join("_")])
|
199
203
|
if File.exists?(file_name)
|
@@ -203,7 +207,8 @@ module Konjac
|
|
203
207
|
end
|
204
208
|
end
|
205
209
|
|
206
|
-
|
210
|
+
# Saves a marshalled Dictionary
|
211
|
+
def save_serialized(from_lang, to_lang, dictionaries, pairs) # :doc:
|
207
212
|
file_name = File.expand_path("~/.konjac/marshal/%s_%s_%s" %
|
208
213
|
[from_lang, to_lang, dictionaries.join("_")])
|
209
214
|
|
@@ -219,7 +224,7 @@ module Konjac
|
|
219
224
|
|
220
225
|
# Builds a list of dictionaries from the supplied files, defaulting to
|
221
226
|
# ~/.konjac/*.yml
|
222
|
-
def build_dictionary(files)
|
227
|
+
def build_dictionary(files) # :doc:
|
223
228
|
dictionary = []
|
224
229
|
find_dictionaries(files).each do |dict|
|
225
230
|
verify_dictionary_exists dict
|
@@ -229,9 +234,11 @@ module Konjac
|
|
229
234
|
dictionary
|
230
235
|
end
|
231
236
|
|
232
|
-
|
237
|
+
# Finds dictionaries based on the supplied Array
|
238
|
+
def find_dictionaries(files) # :doc:
|
233
239
|
paths = []
|
234
240
|
files.each do |file|
|
241
|
+
file = file.to_s
|
235
242
|
if file =~ /[\/.]/
|
236
243
|
full_path = File.expand_path(file)
|
237
244
|
else
|
data/lib/konjac/exception.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
module Konjac
|
2
|
+
# Konjac was unable to find an applicable file
|
2
3
|
class FileNotFoundError < StandardError; end
|
4
|
+
|
5
|
+
# The user has supplied an invalid language and Konjac can't continue to
|
6
|
+
# process the request
|
3
7
|
class InvalidLanguageError < StandardError; end
|
4
8
|
end
|
data/lib/konjac/language.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
module Konjac
|
2
|
+
# A class for language lookup
|
2
3
|
module Language
|
3
4
|
class << self
|
5
|
+
# Languages that don't use spaces. Obviously this is an incomplete list.
|
4
6
|
LANGUAGES_WITHOUT_SPACES = [:ar, :he, :ja, :zh]
|
7
|
+
|
8
|
+
# A hash list of languages. The keys are the two-letter ISO codes and the
|
9
|
+
# values are alternative names, including the three-letter ISO code and
|
10
|
+
# the English name
|
5
11
|
LIST = {
|
6
12
|
:ab => [:abkhazian, :abk],
|
7
13
|
:aa => [:afar, :aar],
|
@@ -216,7 +222,13 @@ module Konjac
|
|
216
222
|
:zu => [:zulu, :zul]
|
217
223
|
}
|
218
224
|
|
219
|
-
# Finds the two-letter code for the specified language
|
225
|
+
# Finds the two-letter code for the specified language.
|
226
|
+
#
|
227
|
+
# Language.find(:english) # => :en
|
228
|
+
# Language.find(:eng) # => :en
|
229
|
+
# Language.find(:en) # => :en
|
230
|
+
# Language.find(:japanese) # => :ja
|
231
|
+
# Language.find(:klingon) # => raises Konjac::InvalidLanguageError
|
220
232
|
def find(lang)
|
221
233
|
# Allow function to accept both symbol and string arguments
|
222
234
|
lang = lang.to_sym
|
@@ -243,7 +255,7 @@ module Konjac
|
|
243
255
|
private
|
244
256
|
|
245
257
|
# Convert to underscore case
|
246
|
-
def underscore(str)
|
258
|
+
def underscore(str) # :doc:
|
247
259
|
str.to_s. # allow symbols and strings
|
248
260
|
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). # underscore-delimit caps
|
249
261
|
gsub(/([a-z\d])\s?([A-Z])/,'\1_\2'). # underscore-delimit words
|
data/lib/konjac/tag.rb
CHANGED
@@ -1,17 +1,50 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
module Konjac
|
3
|
+
# A tag containing original text and (if available) its translation, plus the
|
4
|
+
# index of the <w:t> tag extracted from its .docx document
|
2
5
|
class Tag
|
3
|
-
|
6
|
+
# The index of the <w:t> tag in the cleaned-up XML file output by
|
7
|
+
# Konjac::Word.export_docx_tags
|
8
|
+
attr_accessor :index
|
9
|
+
|
10
|
+
# The original text
|
11
|
+
attr_accessor :original
|
12
|
+
|
13
|
+
# The translated text
|
14
|
+
attr_accessor :translated
|
4
15
|
|
16
|
+
# Creates a new tag.
|
17
|
+
#
|
18
|
+
# t = Tag.new(1, "dog", "犬")
|
5
19
|
def initialize(index, original, translated)
|
6
20
|
@index, @original, @translated = index, original, translated
|
7
21
|
end
|
8
22
|
|
23
|
+
# Converts the Tag into a string for use in .konjac files
|
24
|
+
#
|
25
|
+
# <tt>Tag.new(1, "dog", "犬").to_s</tt> will output
|
26
|
+
#
|
27
|
+
# [[KJ-1]]
|
28
|
+
# > dog
|
29
|
+
# 犬
|
30
|
+
#
|
31
|
+
# whereas <tt>Tag.new(2, "cat").to_s</tt> will output
|
32
|
+
#
|
33
|
+
# [[KJ-2]]
|
34
|
+
# > cat
|
9
35
|
def to_s
|
10
36
|
"[[KJ-#{index}]]\n> #{original}#{"\n" + translated if translated?}"
|
11
37
|
end
|
12
38
|
|
39
|
+
# Whether the tag has been translated
|
40
|
+
#
|
41
|
+
# dog = Tag.new(1, "dog", "犬")
|
42
|
+
# dog.translated? # => true
|
43
|
+
#
|
44
|
+
# cat = Tag.new(1, "cat", "")
|
45
|
+
# cat.translated? # => false
|
13
46
|
def translated?
|
14
|
-
|
47
|
+
!translated.nil? && translated != ""
|
15
48
|
end
|
16
49
|
end
|
17
50
|
end
|
data/lib/konjac/tag_manager.rb
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
module Konjac
|
2
|
+
# A class for managing the tags generated by extraction from {Microsoft
|
3
|
+
# Word}[http://office.microsoft.com/en-us/word/] 2003+ documents
|
2
4
|
class TagManager
|
5
|
+
# A list of the Tag objects current being managed
|
3
6
|
attr_accessor :tags
|
4
7
|
|
8
|
+
# A regex to match lines that start with <tt>> </tt>, that is, lines that
|
9
|
+
# indicate original text in .konjac files
|
5
10
|
STARTS_WITH_CLOSE_TAG = /^\>/
|
11
|
+
|
12
|
+
# Regex for matching index numbers
|
6
13
|
KONJAC_TAG = /^\[\[KJ\-(\d+)\]\]/
|
7
14
|
|
15
|
+
# Creates a new TagManager
|
8
16
|
def initialize(path)
|
9
17
|
@tags = []
|
10
18
|
parse_lines File.readlines(path)
|
11
19
|
end
|
12
20
|
|
21
|
+
# Parses the lines of a file into Tag objects
|
13
22
|
def parse_lines(lines)
|
14
23
|
index = nil
|
15
24
|
orig = nil
|
@@ -39,10 +48,12 @@ module Konjac
|
|
39
48
|
end
|
40
49
|
end
|
41
50
|
|
51
|
+
# A list of all the tags available
|
42
52
|
def all
|
43
53
|
@tags
|
44
54
|
end
|
45
55
|
|
56
|
+
# Finds the <em>nth</em> tag being managed
|
46
57
|
def [](index)
|
47
58
|
@tags[index]
|
48
59
|
end
|
data/lib/konjac/translator.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
module Konjac
|
3
|
+
# A class consisting of functions for translation
|
3
4
|
module Translator
|
4
5
|
class << self
|
6
|
+
# Translates a file or list of files
|
7
|
+
#
|
8
|
+
# path = Dir[File.expand_path("~/.konjac/test_en.txt")]
|
9
|
+
# Translator.translate_files path, :en, :ja, :using => [:dict]
|
5
10
|
def translate_files(files, from_lang, to_lang, opts = {})
|
6
11
|
load_dictionary from_lang, to_lang, opts
|
7
12
|
|
data/lib/konjac/utils.rb
CHANGED
data/lib/konjac/version.rb
CHANGED
data/lib/konjac/word.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
# This really needs cleanup
|
2
|
-
|
3
1
|
module Konjac
|
2
|
+
# A singleton for dealing with extracting and importing tags from {Microsoft
|
3
|
+
# Word}[http://office.microsoft.com/en-us/word/] 2003+ documents
|
4
4
|
module Word
|
5
5
|
class << self
|
6
|
-
#
|
6
|
+
# Imports the text content of a tag file into a {Microsoft
|
7
|
+
# Word}[http://office.microsoft.com/en-us/word/] 2003+ document
|
7
8
|
def import_docx_tags(files)
|
8
9
|
sub_files = Utils.parse_files(files, ".docx")
|
9
10
|
sub_files.each do |sub_file|
|
@@ -46,7 +47,8 @@ module Konjac
|
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
49
|
-
# Exports the text content
|
50
|
+
# Exports the text content of {Microsoft
|
51
|
+
# Word}[http://office.microsoft.com/en-us/word/] 2003+ document
|
50
52
|
def export_docx_tags(files, opts = {})
|
51
53
|
# Determine whether to attempt translating
|
52
54
|
if opts[:from_given] && opts[:to_given]
|
@@ -117,7 +119,7 @@ module Konjac
|
|
117
119
|
end
|
118
120
|
end
|
119
121
|
|
120
|
-
# Opens the .konjac tag files for the specified
|
122
|
+
# Opens the .konjac tag files for the specified .docx files
|
121
123
|
def edit_docx_tags(files)
|
122
124
|
sub_files = Utils.force_extension(files, ".konjac")
|
123
125
|
sub_files.each do |sub_file|
|
@@ -129,13 +131,14 @@ module Konjac
|
|
129
131
|
|
130
132
|
# Performs a comparison between two nodes and accepts them as equivalent
|
131
133
|
# if the differences are very minor
|
132
|
-
def compare_nodes(a, b)
|
134
|
+
def compare_nodes(a, b) # :doc:
|
133
135
|
c = clean_hash(xml_node_to_hash(a))
|
134
136
|
d = clean_hash(xml_node_to_hash(b))
|
135
137
|
c == d
|
136
138
|
end
|
137
139
|
|
138
|
-
|
140
|
+
# Converts an XML node into a Ruby hash
|
141
|
+
def xml_node_to_hash(node) # :doc:
|
139
142
|
# If we are at the root of the document, start the hash
|
140
143
|
if node.element?
|
141
144
|
result_hash = {}
|
@@ -173,18 +176,19 @@ module Konjac
|
|
173
176
|
end
|
174
177
|
end
|
175
178
|
|
176
|
-
|
179
|
+
# Prepares data according to whether it's string or integer content
|
180
|
+
def prepare(data) # :doc:
|
177
181
|
(data.class == String && data.to_i.to_s == data) ? data.to_i : data
|
178
182
|
end
|
179
183
|
|
180
184
|
# Delete extraneous attributes for comparison
|
181
|
-
def clean_hash(hash)
|
185
|
+
def clean_hash(hash) # :doc:
|
182
186
|
delete_attribute_or_child hash, :t
|
183
187
|
delete_attribute_or_child hash, :rPr, :rFonts, :attributes, :hint
|
184
188
|
end
|
185
189
|
|
186
190
|
# Get additional information on the node for context in tags file
|
187
|
-
def additional_info(node)
|
191
|
+
def additional_info(node) # :doc:
|
188
192
|
info = []
|
189
193
|
info << "hyperlink" if node.parent.parent.name == "hyperlink"
|
190
194
|
|
@@ -195,9 +199,12 @@ module Konjac
|
|
195
199
|
end
|
196
200
|
end
|
197
201
|
|
198
|
-
|
199
|
-
|
200
|
-
|
202
|
+
# Deletes the specified attribute or child node for the supplied node,
|
203
|
+
# following the hierarchy provided
|
204
|
+
#
|
205
|
+
# Delete <tt>hash[:rPr][:rFonts][:attributes][:hint]</tt>:
|
206
|
+
# delete_attribute_or_child hash, :rPr, :rFonts, :attributes, :hint
|
207
|
+
def delete_attribute_or_child(node, *hierarchy) # :doc:
|
201
208
|
last_member = hierarchy.pop
|
202
209
|
|
203
210
|
hierarchy.each do |member|
|
data/lib/konjac.rb
CHANGED
data/locales/en.yml
CHANGED
data/locales/ja.yml
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konjac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-16 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
16
|
-
requirement: &
|
16
|
+
requirement: &70270392674560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70270392674560
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &70270392674140 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70270392674140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sdoc
|
38
|
-
requirement: &
|
38
|
+
requirement: &70270392673660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70270392673660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: term-ansicolor
|
49
|
-
requirement: &
|
49
|
+
requirement: &70270392673220 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70270392673220
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: trollop
|
60
|
-
requirement: &
|
60
|
+
requirement: &70270392672620 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70270392672620
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: autotest
|
71
|
-
requirement: &
|
71
|
+
requirement: &70270392672080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70270392672080
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: autotest-fsevent
|
82
|
-
requirement: &
|
82
|
+
requirement: &70270392671480 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70270392671480
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: autotest-growl
|
93
|
-
requirement: &
|
93
|
+
requirement: &70270392670840 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70270392670840
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: bundler
|
104
|
-
requirement: &
|
104
|
+
requirement: &70270392630600 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70270392630600
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rspec
|
115
|
-
requirement: &
|
115
|
+
requirement: &70270392629960 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70270392629960
|
124
124
|
description: A Ruby command-line utility for translating files using a YAML wordlist
|
125
125
|
email:
|
126
126
|
- bryan.mckelvey@gmail.com
|