Class: Babelyoda::Xib
- Inherits:
-
Object
- Object
- Babelyoda::Xib
- Defined in:
- lib/babelyoda/xib.rb
Instance Attribute Summary collapse
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#language ⇒ Object
readonly
Returns the value of attribute language.
Instance Method Summary collapse
- #basename ⇒ Object
- #dirname ⇒ Object
- #extractable?(development_language) ⇒ Boolean
- #import_strings(scm) ⇒ Object
-
#initialize(filename, language) ⇒ Xib
constructor
A new instance of Xib.
- #localizable? ⇒ Boolean
- #localize(language, scm) ⇒ Object
- #localize_incremental(language, scm) ⇒ Object
- #mv(new_filename) ⇒ Object
- #resource! ⇒ Object
- #resourced? ⇒ Boolean
- #strings ⇒ Object
- #strings? ⇒ Boolean
- #strings_filename(language = nil) ⇒ Object
Constructor Details
#initialize(filename, language) ⇒ Xib
Returns a new instance of Xib.
11 12 13 |
# File 'lib/babelyoda/xib.rb', line 11 def initialize(filename, language) @filename, @language = filename, language end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
8 9 10 |
# File 'lib/babelyoda/xib.rb', line 8 def filename @filename end |
#language ⇒ Object (readonly)
Returns the value of attribute language.
9 10 11 |
# File 'lib/babelyoda/xib.rb', line 9 def language @language end |
Instance Method Details
#basename ⇒ Object
24 25 26 |
# File 'lib/babelyoda/xib.rb', line 24 def basename File.basename(File.split(@filename)[1], '.xib') end |
#dirname ⇒ Object
20 21 22 |
# File 'lib/babelyoda/xib.rb', line 20 def dirname File.dirname(@filename) end |
#extractable?(development_language) ⇒ Boolean
15 16 17 18 |
# File 'lib/babelyoda/xib.rb', line 15 def extractable?(development_language) lproj_part = File.lproj_part(@filename) (!lproj_part.nil?) && lproj_part == "#{development_language}.lproj" end |
#import_strings(scm) ⇒ Object
78 79 80 81 |
# File 'lib/babelyoda/xib.rb', line 78 def import_strings(scm) $logger.debug "Importing #{strings_filename} => #{filename}" Babelyoda::Ibtool.import_strings(filename, strings_filename) end |
#localizable? ⇒ Boolean
83 84 85 |
# File 'lib/babelyoda/xib.rb', line 83 def localizable? File.exist?(strings_filename) end |
#localize(language, scm) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/babelyoda/xib.rb', line 51 def localize(language, scm) $logger.debug "Localizing #{filename} => #{File.localized(filename, language)}..." assert_localization_target(language) strings_fn = strings_filename(language) $logger.error "No strings file found: #{strings_fn}" unless File.exist?(strings_fn) Babelyoda::Ibtool.localize(filename, File.localized(filename, language), strings_fn) end |
#localize_incremental(language, scm) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/babelyoda/xib.rb', line 59 def localize_incremental(language, scm) assert_localization_target(language) unless localizable_incrementally?(scm, language) localize(language, scm) else $logger.debug "Incrementally localizing #{filename} => #{File.localized(filename, language)}..." strings_fn = strings_filename(language) $logger.error "No strings file found: #{strings_fn}" unless File.exist?(strings_fn) scm.fetch_versions!(filename) do |filenames| Babelyoda::Ibtool.localize_incrementally(filename, File.localized(filename, language), strings_fn, filenames[0]) end end end |
#mv(new_filename) ⇒ Object
37 38 39 40 41 |
# File 'lib/babelyoda/xib.rb', line 37 def mv(new_filename) FileUtils.mkdir_p(File.dirname(new_filename)) FileUtils.mv(@filename, new_filename) @filename = new_filename end |
#resource! ⇒ Object
32 33 34 35 |
# File 'lib/babelyoda/xib.rb', line 32 def resource! raise "The XIB is already in a resource folder: #{@filename}" unless File.lproj_part(@filename).nil? mv(File.localized(@filename, @language)) end |
#resourced? ⇒ Boolean
28 29 30 |
# File 'lib/babelyoda/xib.rb', line 28 def resourced? !File.lproj_part(@filename).nil? end |
#strings ⇒ Object
47 48 49 |
# File 'lib/babelyoda/xib.rb', line 47 def strings Babelyoda::Ibtool.extract_strings(@filename, @language) end |
#strings? ⇒ Boolean
43 44 45 |
# File 'lib/babelyoda/xib.rb', line 43 def strings? !strings.empty? end |
#strings_filename(language = nil) ⇒ Object
74 75 76 |
# File 'lib/babelyoda/xib.rb', line 74 def strings_filename(language = nil) language ? File.localized(File.join(dirname, "#{basename}.strings"), language) : File.join(dirname, "#{basename}.strings") end |