bisu 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6986c97d7458f01354dfea511217a6fe565e8623
4
- data.tar.gz: 13ef8e986f57451ec5170612794ca098c285f0be
3
+ metadata.gz: ae037a0d6145c6c2517b9ada533931cce6fbb028
4
+ data.tar.gz: bb08d97f16d8a1fe65a8eced03d785961e7369d2
5
5
  SHA512:
6
- metadata.gz: 91712afc1636778325e5119513a76173a4a8623fe7ec1b36e06bd97cafc8f180f3a311840e234d33f294c752ee243fe247a7d9ab708c38301607d4f475dd4348
7
- data.tar.gz: 500e7bcc77107d003d032c71e53d5a79b6579a52ea3c1a0250e91e71f693edff0e0aecb2c9b8125ed52e5d536032e9e61acaef67122f6e94692bae899405d735
6
+ metadata.gz: 3bf229024552eb4081d51aeaeffcb014c2f2787e8592eb166a5d2aa04fc980fa9789c605b4f796c1be68d6a56b5763a2b9662b8480c2ac472dd3e66fe3135254
7
+ data.tar.gz: 3b2fdc69cade70b5a7d6d14e615dd129e8296adb2ab57b7ba82ca57fd17d9e0cf858391f84af839694b9cbed354284cdd5c7a8c29782d5c0ce7fd1f2e166646d
@@ -2,17 +2,17 @@ module Bisu
2
2
  class Dictionary
3
3
  def initialize(keys)
4
4
  unless keys.is_a?(Hash)
5
- raise ArgumentError.new("keys: expected Hash")
5
+ raise ArgumentError.new("keys: expected Hash, got #{keys.class}")
6
6
  end
7
7
 
8
- keys.each do |key,v|
8
+ keys.each do |lang,v|
9
9
  unless v.is_a?(Hash)
10
- raise ArgumentError.new("keys['#{key}']: expected Hash")
10
+ raise ArgumentError.new("keys['#{lang}']: expected Hash, got #{v.class}")
11
11
  end
12
12
 
13
- v.each do |lang,v|
13
+ v.each do |key,v|
14
14
  unless v.is_a?(String) || v.nil?
15
- raise ArgumentError.new("keys['#{key}']['#{lang}']: expected String")
15
+ raise ArgumentError.new("keys['#{lang}']['#{key}']: expected String, got #{v.class}")
16
16
  end
17
17
  end
18
18
  end
@@ -21,23 +21,15 @@ module Bisu
21
21
  end
22
22
 
23
23
  def has_language?(language)
24
- languages.include?(language)
24
+ @keys.include?(language)
25
25
  end
26
26
 
27
- def localize(key, language)
28
- if locals = @keys[key]
29
- locals[language]
27
+ def localize(language, key)
28
+ if has_language?(language)
29
+ @keys[language][key]
30
30
  else
31
31
  nil
32
32
  end
33
33
  end
34
-
35
- private
36
-
37
- def languages
38
- @languages ||= begin
39
- @keys.map { |_,v| v.keys }.flatten.uniq
40
- end
41
- end
42
34
  end
43
35
  end
@@ -8,23 +8,23 @@ module Bisu
8
8
  @key_column = keys_column_title
9
9
  end
10
10
 
11
- def to_h
11
+ def to_i18
12
12
  raw = raw_data(@sheet_id)
13
13
 
14
14
  Logger.info("Parsing Google Sheet...")
15
15
 
16
- remove = ["id", "updated", "category", "title", "content", "link", @key_column]
16
+ non_language_columns = ["id", "updated", "category", "title", "content", "link", @key_column]
17
17
 
18
18
  kb = {}
19
19
  raw["entry"].each do |entry|
20
- hash = entry.select { |d| !remove.include?(d) }
21
- hash = hash.each.map { |k, v| v.first == {} ? [k, nil] : [k, v.first] }
22
-
23
20
  unless (key = entry[@key_column]) && key = key.first
24
21
  raise "Cannot find key column '#{@key_column}'"
25
22
  end
26
23
 
27
- kb[key] = Hash[hash]
24
+ entry.select { |c| !non_language_columns.include?(c) }.each do |lang, texts|
25
+ kb[lang] ||= {}
26
+ kb[lang][key] = texts.first unless texts.first == {}
27
+ end
28
28
  end
29
29
 
30
30
  Logger.info("Google Sheet parsed successfully!")
@@ -10,7 +10,7 @@ module Bisu
10
10
  end
11
11
  end
12
12
 
13
- def localize(text, language, locale, default_language=nil)
13
+ def localize(text, language, locale, fallback_language=nil)
14
14
  t = text
15
15
  t = t.gsub("$specialKLanguage$", language)
16
16
  t = t.gsub("$specialKLocale$", locale)
@@ -18,7 +18,7 @@ module Bisu
18
18
  t = t.gsub("$specialKComment2$", "Remember to CHANGE THE TEMPLATE and not this file!")
19
19
 
20
20
  to_localize(t).map do |l|
21
- if localized = @dict.localize(l[:key], language) || @dict.localize(l[:key], default_language)
21
+ if localized = @dict.localize(language, l[:key]) || @dict.localize(fallback_language, l[:key])
22
22
  l[:params].each do |param, value|
23
23
  if localized.match("%{#{param}}")
24
24
  localized = localized.gsub("%{#{param}}", value)
data/lib/bisu/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Bisu
2
- VERSION = '1.3.0'
3
- VERSION_UPDATED_AT = '2016-11-02'
2
+ VERSION = '1.3.1'
3
+ VERSION_UPDATED_AT = '2016-11-15'
4
4
  end
data/lib/bisu.rb CHANGED
@@ -18,7 +18,7 @@ module Bisu
18
18
  if config_file = open_file("translatable.yml", "r", true)
19
19
  config = Bisu::Config.new(hash: YAML::load(config_file))
20
20
  google_sheet = Bisu::GoogleSheet.new(config.dictionary[:sheet_id], config.dictionary[:keys_column])
21
- dictionary = Bisu::Dictionary.new(google_sheet.to_h)
21
+ dictionary = Bisu::Dictionary.new(google_sheet.to_i18)
22
22
  localizer = Bisu::Localizer.new(dictionary, config.type)
23
23
 
24
24
  config.localize_files do |in_path, out_path, language, locale|
@@ -1 +1 @@
1
- <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>Translations</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/spreadsheets/d/abc1234567890/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><author><name>anthony.douglas</name><email>anthony.douglas@hole19golf.com</email></author><openSearch:totalResults>664</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>kConnectFacebook</title><content type='text'>english: Connect with Facebook, german: Mit Facebook verbinden, portuguese: Registar com Facebook, spanish: Conéctate con Facebook, french: Connecter Facebook, dutch: Facebook Verbinden, korean: 페이스북으로 접속, japanese: フェイスブックへ接続, key_column_2: kConnectFacebook</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr'/><gsx:key_column>kConnectFacebook</gsx:key_column><gsx:english>Connect with Facebook</gsx:english><gsx:german>Mit Facebook verbinden</gsx:german><gsx:portuguese>Registar com Facebook</gsx:portuguese><gsx:spanish>Conéctate con Facebook</gsx:spanish><gsx:french>Connecter Facebook</gsx:french><gsx:dutch>Facebook Verbinden</gsx:dutch><gsx:korean>페이스북으로 접속</gsx:korean><gsx:japanese>フェイスブックへ接続</gsx:japanese><gsx:key_column_2>kConnectFacebook</gsx:key_column_2></entry><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>kConnectEmail</title><content type='text'>english: Connect with Email, german: Mit E-Mail verbinden, portuguese: Registar com Email, spanish: Conéctate con Email, french: Connecter Email, dutch: Email Verbinden, korean: 이메일로 접속, japanese: 電子メールアカウントに接続, key_column_2: kConnectEmail</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4'/><gsx:key_column>kConnectEmail</gsx:key_column><gsx:english>Connect with Email</gsx:english><gsx:german>Mit E-Mail verbinden</gsx:german><gsx:portuguese>Registar com Email</gsx:portuguese><gsx:spanish>Conéctate con Email</gsx:spanish><gsx:french>Connecter Email</gsx:french><gsx:dutch>Email Verbinden</gsx:dutch><gsx:korean>이메일로 접속</gsx:korean><gsx:japanese>電子メールアカウントに接続</gsx:japanese><gsx:key_column_2>kConnectEmail</gsx:key_column_2></entry></feed>
1
+ <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>Translations</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/spreadsheets/d/abc1234567890/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><author><name>anthony.douglas</name><email>anthony.douglas@hole19golf.com</email></author><openSearch:totalResults>664</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>kConnectFacebook</title><content type='text'>english: Connect with Facebook, german: Mit Facebook verbinden, portuguese: Registar com Facebook, spanish: Conéctate con Facebook, french: Connecter Facebook, dutch: Facebook Verbinden, korean: 페이스북으로 접속, japanese: フェイスブックへ接続, key_column_2: kConnectFacebook</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr'/><gsx:key_column>kConnectFacebook</gsx:key_column><gsx:english>Connect with Facebook</gsx:english><gsx:german>Mit Facebook verbinden</gsx:german><gsx:portuguese>Registar com Facebook</gsx:portuguese><gsx:spanish>Conéctate con Facebook</gsx:spanish><gsx:french>Connecter Facebook</gsx:french><gsx:dutch>Facebook Verbinden</gsx:dutch><gsx:korean>페이스북으로 접속</gsx:korean><gsx:japanese>フェイスブックへ接続</gsx:japanese></entry><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4</id><updated>2015-02-09T18:59:53.874Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>kConnectEmail</title><content type='text'>english: Connect with Email, german: Mit E-Mail verbinden, portuguese: Registar com Email, spanish: Conéctate con Email, dutch: Email Verbinden, korean: 이메일로 접속, japanese: 電子メールアカウントに接続, key_column_2: kConnectEmail</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4'/><gsx:key_column>kConnectEmail</gsx:key_column><gsx:english>Connect with Email</gsx:english><gsx:german>Mit E-Mail verbinden</gsx:german><gsx:portuguese>Registar com Email</gsx:portuguese><gsx:spanish>Conéctate con Email</gsx:spanish><gsx:french></gsx:french><gsx:dutch>Email Verbinden</gsx:dutch><gsx:korean>이메일로 접속</gsx:korean><gsx:japanese>電子メールアカウントに接続</gsx:japanese></entry></feed>
@@ -2,34 +2,35 @@ describe Bisu::Dictionary do
2
2
  subject(:dict) { Bisu::Dictionary.new(keys) }
3
3
 
4
4
  describe ".initialize" do
5
- let(:keys) { { "kNo1" => { "lang" => "text" } } }
5
+ let(:keys) { { "lang" => { "kNo1" => "text" } } }
6
6
  it { expect { subject }.not_to raise_error }
7
7
 
8
8
  context "when created with invalid type parameters" do
9
9
  let(:keys) { "cenas" }
10
- it { expect { subject }.to raise_error /expected Hash$/ }
10
+ it { expect { subject }.to raise_error /expected Hash/ }
11
11
  end
12
12
 
13
13
  context "when created with an invalid json schema" do
14
- let(:keys) { { "kNo1" => "text" } }
15
- it { expect { subject }.to raise_error /kNo1.+expected Hash/ }
14
+ let(:keys) { { "lang" => "text" } }
15
+ it { expect { subject }.to raise_error /lang.+expected Hash/ }
16
16
  end
17
17
 
18
18
  context "when created with an invalid json schema" do
19
- let(:keys) { { "kNo1" => { "a-lang" => { "wtvr" => "text" } } } }
20
- it { expect { subject }.to raise_error /kNo1.+a-lang.+expected String/ }
19
+ let(:keys) { { "a-lang" => { "kNo1" => { "wtvr" => "text" } } } }
20
+ it { expect { subject }.to raise_error /a-lang.+kNo1.+expected String/ }
21
21
  end
22
22
 
23
23
  context "when given empty translations" do
24
- let(:keys) { { "kNo1" => { "lang" => nil } } }
24
+ let(:keys) { { "lang" => { "kNo1" => nil } } }
25
25
  it { expect { subject }.not_to raise_error }
26
26
  end
27
27
  end
28
28
 
29
29
  describe "#has_language?" do
30
30
  let(:keys) { {
31
- "kNo1" => { "lang1" => "no1-lang1", "lang2" => "no1-lang2" },
32
- "kNo2" => { "lang2" => "no2-lang2", "lang3" => "no2-lang3" }
31
+ "lang1" => { "kNo1" => "no1-lang1" },
32
+ "lang2" => { "kNo1" => "no1-lang2", "kNo2" => "no1-lang2" },
33
+ "lang3" => { "kNo2" => "no2-lang3" }
33
34
  } }
34
35
 
35
36
  it "returns true if that language is translated" do
@@ -47,23 +48,21 @@ describe Bisu::Dictionary do
47
48
 
48
49
  describe "#localize" do
49
50
  let(:keys) { {
50
- "kCray" => {
51
- "english" => "You are crazy!",
52
- "portuguese" => "Estás maluco!",
53
- "kriolo" => "Bo sta crazy!"
54
- }
51
+ "english" => { "kCray" => "You are crazy!" },
52
+ "portuguese" => { "kCray" => "Estás maluco!" },
53
+ "kriolo" => { "kCray" => "Bo sta crazy!" }
55
54
  } }
56
55
 
57
56
  it "localizes a key" do
58
- expect(dict.localize("kCray", "kriolo")).to eq "Bo sta crazy!"
57
+ expect(dict.localize("kriolo", "kCray")).to eq "Bo sta crazy!"
59
58
  end
60
59
 
61
60
  it "returns nil when the key does not exist" do
62
- expect(dict.localize("kDoesntExist", "kriolo")).to be nil
61
+ expect(dict.localize("kriolo", "kDoesntExist")).to be nil
63
62
  end
64
63
 
65
64
  it "returns nil when language is not available" do
66
- expect(dict.localize("kCray", "finish")).to be nil
65
+ expect(dict.localize("finish", "kCray")).to be nil
67
66
  end
68
67
  end
69
68
  end
@@ -1,5 +1,5 @@
1
1
  describe Bisu::GoogleSheet do
2
- subject(:to_h) { Bisu::GoogleSheet.new(sheet_id, key_column).to_h }
2
+ subject(:to_i18) { Bisu::GoogleSheet.new(sheet_id, key_column).to_i18 }
3
3
 
4
4
  let(:sheet_id) { "abc1234567890" }
5
5
  let(:url_info) { "https://spreadsheets.google.com/feeds/worksheets/#{sheet_id}/public/full" }
@@ -17,20 +17,27 @@ describe Bisu::GoogleSheet do
17
17
  end
18
18
 
19
19
  it do
20
- expect { to_h }.not_to raise_error
20
+ expect { to_i18 }.not_to raise_error
21
21
  end
22
22
 
23
- it "returns an hash" do
24
- expect(to_h).to include("kConnectEmail")
25
- expect(to_h["kConnectEmail"]).to include("korean")
26
- expect(to_h["kConnectEmail"]).to include("spanish" => "Conéctate con Email")
23
+ it "returns an hash in i18 format" do
24
+ expect(to_i18).to eq({
25
+ "english" => { "kConnectFacebook" => "Connect with Facebook", "kConnectEmail" => "Connect with Email" },
26
+ "german" => { "kConnectFacebook" => "Mit Facebook verbinden", "kConnectEmail" => "Mit E-Mail verbinden" },
27
+ "portuguese" => { "kConnectFacebook" => "Registar com Facebook", "kConnectEmail" => "Registar com Email" },
28
+ "spanish" => { "kConnectFacebook" => "Conéctate con Facebook", "kConnectEmail" => "Conéctate con Email" },
29
+ "french" => { "kConnectFacebook" => "Connecter Facebook" },
30
+ "dutch" => { "kConnectFacebook" => "Facebook Verbinden", "kConnectEmail" => "Email Verbinden" },
31
+ "korean" => { "kConnectFacebook" => "페이스북으로 접속", "kConnectEmail" => "이메일로 접속" },
32
+ "japanese" => { "kConnectFacebook" => "フェイスブックへ接続", "kConnectEmail" => "電子メールアカウントに接続" }
33
+ })
27
34
  end
28
35
 
29
36
  context "but the key column is not present in the first sheet" do
30
37
  let(:key_column) { "expecting_another_key_column" }
31
38
 
32
39
  it do
33
- expect { to_h }.to raise_error /Cannot find key column/
40
+ expect { to_i18 }.to raise_error /Cannot find key column/
34
41
  end
35
42
  end
36
43
  end
@@ -39,7 +46,7 @@ describe Bisu::GoogleSheet do
39
46
  before { stub_request(:get, url_info).to_return(:status => 400, :body => "Not Found", :headers => {}) }
40
47
 
41
48
  it do
42
- expect { to_h }.to raise_error /Cannot access sheet/
49
+ expect { to_i18 }.to raise_error /Cannot access sheet/
43
50
  end
44
51
  end
45
52
 
@@ -47,7 +54,7 @@ describe Bisu::GoogleSheet do
47
54
  before { stub_request(:get, url_info).to_return(:status => 302, :body => "<HTML></HTML>", :headers => {}) }
48
55
 
49
56
  it do
50
- expect { to_h }.to raise_error /Cannot access sheet/
57
+ expect { to_i18 }.to raise_error /Cannot access sheet/
51
58
  end
52
59
  end
53
60
 
@@ -55,7 +62,7 @@ describe Bisu::GoogleSheet do
55
62
  before { stub_request(:get, url_info).to_return(:status => 200, :body => "This is not XML; { this: \"is json\" }", :headers => {}) }
56
63
 
57
64
  it do
58
- expect { to_h }.to raise_error /Cannot parse. Expected XML/
65
+ expect { to_i18 }.to raise_error /Cannot parse. Expected XML/
59
66
  end
60
67
  end
61
68
  end
@@ -3,18 +3,22 @@ describe Bisu::Localizer do
3
3
  let(:locale) { "PT-PT" }
4
4
 
5
5
  let(:keys) { {
6
- "kTranslationKey" => { language => "Não sabes nada João das Neves" },
7
- "kTranslationKey2" => { language => "Naaada!" },
8
- "kMissingTransKey" => { "english" => "You know little John Snow" },
9
- "k1ParameterKey" => { language => "Não sabes nada %{name}" },
10
- "k2ParametersKey" => { language => "Sabes %{perc} por cento %{name}" },
11
-
12
- # type dependent translations
13
- "kDoubleQuoted" => { language => "Não sabes nada \"João das Neves\"" },
14
- "kSingleQuoted" => { language => "Não sabes nada 'João das Neves'" },
15
- "kEllipsis" => { language => "Não sabes nada João das Neves..." },
16
- "kAmpersand" => { language => "Não sabes nada João das Neves & Pícaros" },
17
- "kAtSign" => { language => "\@johnsnow sabes alguma coisa?" }
6
+ language => {
7
+ "kTranslationKey" => "Não sabes nada João das Neves",
8
+ "kTranslationKey2" => "Naaada!",
9
+ "k1ParameterKey" => "Não sabes nada %{name}",
10
+ "k2ParametersKey" => "Sabes %{perc} por cento %{name}",
11
+
12
+ # type dependent translations
13
+ "kDoubleQuoted" => "Não sabes nada \"João das Neves\"",
14
+ "kSingleQuoted" => "Não sabes nada 'João das Neves'",
15
+ "kEllipsis" => "Não sabes nada João das Neves...",
16
+ "kAmpersand" => "Não sabes nada João das Neves & Pícaros",
17
+ "kAtSign" => "\@johnsnow sabes alguma coisa?"
18
+ },
19
+ "english" => {
20
+ "kMissingTransKey" => "You know little John Snow"
21
+ }
18
22
  } }
19
23
 
20
24
  let(:kb) { Bisu::Dictionary.new(keys) }
@@ -23,8 +27,8 @@ describe Bisu::Localizer do
23
27
  shared_examples_for "a localizer" do
24
28
  it { expect { localizer }.not_to raise_error }
25
29
 
26
- def translates(text, to:)
27
- translation = localizer.localize(text, language, locale)
30
+ def translates(text, fallback: nil, to:)
31
+ translation = localizer.localize(text, language, locale, fallback)
28
32
  expect(translation).to eq to
29
33
  end
30
34
 
@@ -38,6 +42,7 @@ describe Bisu::Localizer do
38
42
  it { translates("this key: $kTranslationKey$", to: "this key: Não sabes nada João das Neves") }
39
43
  it { translates("this unknown key: $kUnknownKey$", to: "this unknown key: $kUnknownKey$") }
40
44
  it { translates("this key with missing translations: $kMissingTransKey$", to: "this key with missing translations: $kMissingTransKey$") }
45
+ it { translates("this key with missing translations: $kMissingTransKey$", fallback: "english", to: "this key with missing translations: You know little John Snow") }
41
46
  it { translates("these 2 keys: $kTranslationKey$, $kTranslationKey2$", to: "these 2 keys: Não sabes nada João das Neves, Naaada!") }
42
47
 
43
48
  it { translates("1 parameter: $k1ParameterKey$", to: "1 parameter: Não sabes nada %{name}") }
@@ -100,11 +105,11 @@ describe Bisu::Localizer do
100
105
  end
101
106
 
102
107
  let(:type_dependent_defaults) { {
103
- double_quoted: keys["kDoubleQuoted"][language],
104
- single_quoted: keys["kSingleQuoted"][language],
105
- ellipsis: keys["kEllipsis"][language],
106
- ampersand: keys["kAmpersand"][language],
107
- at_sign: keys["kAtSign"][language]
108
+ double_quoted: keys[language]["kDoubleQuoted"],
109
+ single_quoted: keys[language]["kSingleQuoted"],
110
+ ellipsis: keys[language]["kEllipsis"],
111
+ ampersand: keys[language]["kAmpersand"],
112
+ at_sign: keys[language]["kAtSign"]
108
113
  } }
109
114
 
110
115
  describe "of type iOS" do
@@ -6,8 +6,8 @@ describe Bisu do
6
6
 
7
7
  before do
8
8
  allow(Bisu).to receive(:open_file).and_return(file)
9
- allow_any_instance_of(Bisu::GoogleSheet).to receive(:to_h).and_return({
10
- "kKey" => { "english" => "Value" }
9
+ allow_any_instance_of(Bisu::GoogleSheet).to receive(:to_i18).and_return({
10
+ "english" => { "kKey" => "Value" }
11
11
  })
12
12
  allow(Bisu).to receive(:localize_file)
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bisu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - joaoffcosta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-02 00:00:00.000000000 Z
11
+ date: 2016-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: safe_yaml