web_translate_it 1.10.2 → 2.0.0.rc2

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.
@@ -0,0 +1,114 @@
1
+ require 'spec_helper'
2
+
3
+ describe WebTranslateIt::Term do
4
+
5
+ let(:api_key) { "19875cfdd4f169b33e0ffab32cfb0bbb9e33d653" }
6
+
7
+ describe "#initialize" do
8
+ it "should assign api_key and many parameters" do
9
+ term = WebTranslateIt::Term.new(api_key, { "id" => 1234, "text" => "bacon"})
10
+ term.api_key.should == api_key
11
+ term.id.should == 1234
12
+ term.text.should == "bacon"
13
+ end
14
+ end
15
+
16
+ describe "#save" do
17
+ it "should create a new Term" do
18
+ WebTranslateIt::Util.http_connection do |connection|
19
+ term = WebTranslateIt::Term.new(api_key, { "text" => "Term", "description" => "A description" })
20
+ term.save(connection)
21
+ term.id.should_not be_nil
22
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
23
+ term_fetched.should_not be_nil
24
+ term_fetched.should be_a(WebTranslateIt::Term)
25
+ term_fetched.id.should == term.id
26
+ term.delete(connection)
27
+ end
28
+ end
29
+
30
+ it "should update an existing Term" do
31
+ WebTranslateIt::Util.http_connection do |connection|
32
+ term = WebTranslateIt::Term.new(api_key, { "text" => "Term", "description" => "A description" })
33
+ term.save(connection)
34
+ term.text = "A Term"
35
+ term.save(connection)
36
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
37
+ term_fetched.text.should == "A Term"
38
+ term.delete(connection)
39
+ end
40
+ end
41
+
42
+ it "should create a new Term with a TermTranslation" do
43
+ translation1 = WebTranslateIt::TermTranslation.new(api_key, { "locale" => "fr", "text" => "Bonjour" })
44
+ translation2 = WebTranslateIt::TermTranslation.new(api_key, { "locale" => "fr", "text" => "Salut" })
45
+
46
+ term = WebTranslateIt::Term.new(api_key, { "text" => "Hello", "translations" => [translation1, translation2] })
47
+ WebTranslateIt::Util.http_connection do |connection|
48
+ term.save(connection)
49
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
50
+ term_fetched.translation_for(connection, "fr").should_not be_nil
51
+ term_fetched.translation_for(connection, "fr")[0].text.should == "Bonjour"
52
+ term_fetched.translation_for(connection, "fr")[1].text.should == "Salut"
53
+ term_fetched.translation_for(connection, "es").should be_nil
54
+ term.delete(connection)
55
+ end
56
+ end
57
+
58
+ it "should update a Term and save its Translation" do
59
+ translation1 = WebTranslateIt::TermTranslation.new(api_key, { "locale" => "fr", "text" => "Bonjour" })
60
+ translation2 = WebTranslateIt::TermTranslation.new(api_key, { "locale" => "fr", "text" => "Salut" })
61
+
62
+ term = WebTranslateIt::Term.new(api_key, { "text" => "Hi!" })
63
+ WebTranslateIt::Util.http_connection do |connection|
64
+ term.save(connection)
65
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
66
+ term_fetched.translation_for(connection, "fr").should be_nil
67
+
68
+ term_fetched.translations = [translation1, translation2]
69
+ term_fetched.save(connection)
70
+
71
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
72
+ term_fetched.translation_for(connection, "fr").should_not be_nil
73
+ term_fetched.translation_for(connection, "fr")[0].text.should == "Bonjour"
74
+ term_fetched.translation_for(connection, "fr")[1].text.should == "Salut"
75
+ term.delete(connection)
76
+ end
77
+ end
78
+ end
79
+
80
+ describe "#delete" do
81
+ it "should delete a Term" do
82
+ term = WebTranslateIt::Term.new(api_key, { "text" => "bacon" })
83
+ WebTranslateIt::Util.http_connection do |connection|
84
+ term.save(connection)
85
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
86
+ term_fetched.should_not be_nil
87
+
88
+ term_fetched.delete(connection)
89
+ term_fetched = WebTranslateIt::Term.find(connection, api_key, term.id)
90
+ term_fetched.should be_nil
91
+ end
92
+ end
93
+ end
94
+
95
+ describe "#find_all" do
96
+ it "should fetch many terms" do
97
+ WebTranslateIt::Util.http_connection do |connection|
98
+ term1 = WebTranslateIt::Term.new(api_key, { "text" => "bacon" })
99
+ term1.save(connection)
100
+ term2 = WebTranslateIt::Term.new(api_key, { "text" => "tart" })
101
+ term2.save(connection)
102
+ term3 = WebTranslateIt::Term.new(api_key, { "text" => "bacon tart" })
103
+ term3.save(connection)
104
+
105
+ terms = WebTranslateIt::Term.find_all(connection, api_key)
106
+ terms.count.should == 3
107
+
108
+ term1.delete(connection)
109
+ term2.delete(connection)
110
+ term3.delete(connection)
111
+ end
112
+ end
113
+ end
114
+ end
data/version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0.rc2
metadata CHANGED
@@ -1,84 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: web_translate_it
3
- version: !ruby/object:Gem::Version
4
- hash: 59
5
- prerelease:
6
- segments:
7
- - 1
8
- - 10
9
- - 2
10
- version: 1.10.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0.rc2
5
+ prerelease: 6
11
6
  platform: ruby
12
- authors:
13
- - "\xC3\x89douard Bri\xC3\xA8re"
7
+ authors:
8
+ - Édouard Brière
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-04-17 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: multipart-post
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 21
29
- segments:
30
- - 1
31
- - 1
32
- - 3
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.1.3
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.3
30
+ - !ruby/object:Gem::Dependency
37
31
  name: trollop
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.16.2
38
+ type: :runtime
38
39
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
40
41
  none: false
41
- requirements:
42
+ requirements:
42
43
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 83
45
- segments:
46
- - 1
47
- - 16
48
- - 2
44
+ - !ruby/object:Gem::Version
49
45
  version: 1.16.2
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
50
54
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
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
53
63
  name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 2.6.0
70
+ type: :development
54
71
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
56
73
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 23
61
- segments:
62
- - 2
63
- - 6
64
- - 0
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
65
77
  version: 2.6.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
66
86
  type: :development
67
- version_requirements: *id003
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
68
94
  description:
69
95
  email: edouard@atelierconvivialite.com
70
- executables:
96
+ executables:
71
97
  - wti
72
98
  extensions: []
73
-
74
- extra_rdoc_files:
99
+ extra_rdoc_files:
75
100
  - history.md
76
101
  - readme.md
77
- files:
102
+ files:
78
103
  - history.md
79
104
  - license
80
105
  - readme.md
81
- - version.yml
106
+ - version
82
107
  - examples/en.yml
83
108
  - examples/locale.rb
84
109
  - lib/web_translate_it/auto_fetch.rb
@@ -105,49 +130,37 @@ files:
105
130
  - spec/examples/config/translation.yml
106
131
  - spec/examples/en.yml
107
132
  - spec/spec_helper.rb
108
- - spec/web_translate_it/configuration_spec.rb
109
- - spec/web_translate_it/translation_file_spec.rb
110
- - spec/web_translate_it/util_spec.rb
111
- - spec/web_translate_it_spec.rb
133
+ - spec/web_translate_it/string_spec.rb
134
+ - spec/web_translate_it/term_spec.rb
112
135
  homepage: https://webtranslateit.com
113
136
  licenses: []
114
-
115
137
  post_install_message:
116
- rdoc_options:
138
+ rdoc_options:
117
139
  - --main
118
140
  - readme.md
119
- require_paths:
141
+ require_paths:
120
142
  - lib
121
- required_ruby_version: !ruby/object:Gem::Requirement
143
+ required_ruby_version: !ruby/object:Gem::Requirement
122
144
  none: false
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- hash: 3
127
- segments:
128
- - 0
129
- version: "0"
130
- required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
150
  none: false
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- hash: 3
136
- segments:
137
- - 0
138
- version: "0"
151
+ requirements:
152
+ - - ! '>'
153
+ - !ruby/object:Gem::Version
154
+ version: 1.3.1
139
155
  requirements: []
140
-
141
156
  rubyforge_project:
142
- rubygems_version: 1.8.21
157
+ rubygems_version: 1.8.22
143
158
  signing_key:
144
159
  specification_version: 3
145
160
  summary: A CLI to sync locale files with webtranslateit.com.
146
- test_files:
161
+ test_files:
147
162
  - spec/examples/config/translation.yml
148
163
  - spec/examples/en.yml
149
164
  - spec/spec_helper.rb
150
- - spec/web_translate_it/configuration_spec.rb
151
- - spec/web_translate_it/translation_file_spec.rb
152
- - spec/web_translate_it/util_spec.rb
153
- - spec/web_translate_it_spec.rb
165
+ - spec/web_translate_it/string_spec.rb
166
+ - spec/web_translate_it/term_spec.rb
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe WebTranslateIt::Configuration do
4
- describe "#initialize" do
5
- subject { WebTranslateIt::Configuration::Rails = OpenStruct.new(:root => Pathname.new(File.dirname(__FILE__) + "/../examples")) }
6
-
7
- it "should fetch and not blow up" do
8
- expect{ WebTranslateIt::Configuration.new }.to_not raise_error
9
- end
10
-
11
- it "should load the content of the YAML file" do
12
- config_hash = {
13
- "api_key" => "4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2",
14
- "ignore_locales" => "en_GB"
15
- }
16
- YAML.should_receive(:load_file).and_return(config_hash)
17
- WebTranslateIt::Configuration.new(File.dirname(__FILE__) + '/../..', '.wti')
18
- end
19
-
20
- it "should assign the API key, files" do
21
- configuration = WebTranslateIt::Configuration.new
22
- configuration.api_key.should == '4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2'
23
- configuration.files.first.should be_a(WebTranslateIt::TranslationFile)
24
- end
25
- end
26
-
27
- describe "#set_locales_to_ignore" do
28
- let(:configuration) { WebTranslateIt::Configuration.new }
29
- subject { WebTranslateIt::Configuration::Rails = OpenStruct.new(:root => Pathname.new(File.dirname(__FILE__) + "/../examples")) }
30
-
31
- it "should return an array" do
32
- config_hash = { 'ignore_locales' => 'en' }
33
- configuration.set_locales_to_ignore(config_hash).should be_a(Array)
34
- end
35
-
36
- it "should not blow up if no locales are given" do
37
- config_hash = { 'ignore_locales' => nil }
38
- configuration.set_locales_to_ignore(config_hash).should be_a(Array)
39
- configuration.set_locales_to_ignore(config_hash).should == []
40
- end
41
-
42
- it "should return an array of 2 elements if given array of strings" do
43
- config_hash = { 'ignore_locales' => ['en', 'fr'] }
44
- configuration.set_locales_to_ignore(config_hash).should be_a(Array)
45
- configuration.set_locales_to_ignore(config_hash).should == ['en', 'fr']
46
- end
47
-
48
- it "should return an array of 1 element if given a symbol" do
49
- config_hash = { 'ignore_locales' => :en }
50
- configuration.set_locales_to_ignore(config_hash).should be_a(Array)
51
- configuration.set_locales_to_ignore(config_hash).should == ['en']
52
- end
53
-
54
- it "should return an array of 2 element if given an array of symbol and string" do
55
- config_hash = { 'ignore_locales' => [:en, 'fr'] }
56
- configuration.set_locales_to_ignore(config_hash).should be_a(Array)
57
- configuration.set_locales_to_ignore(config_hash).should == ['en', 'fr']
58
- end
59
- end
60
- end
@@ -1,52 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe WebTranslateIt::TranslationFile do
4
-
5
- describe "#initialize" do
6
- it "should assign id, file_path and api_key" do
7
- tr_file = WebTranslateIt::TranslationFile.new(2267, "examples/en.yml", 'fr', "4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2")
8
- tr_file.id.should == 2267
9
- tr_file.file_path.should == "examples/en.yml"
10
- tr_file.api_key.should == "4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2"
11
- end
12
- end
13
-
14
- describe "#fetch" do
15
- let(:translation_file) { WebTranslateIt::TranslationFile.new(2267, "examples/en.yml", 'fr', "4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2", Time.now) }
16
-
17
- it "should prepare a HTTP request and get a 200 OK if the language file is stale" do
18
- file = mock(File)
19
- file.stub(:puts => true, :close => true)
20
- File.stub(:exist? => true, :mtime => Time.at(0), :new => file)
21
- translation_file.fetch.should include "OK"
22
- end
23
-
24
- it "should prepare a HTTP request and get a 200 OK if the language file is stale using the force download parameter" do
25
- file = mock(File)
26
- file.stub(:puts => true, :close => true)
27
- File.stub(:exist? => true, :mtime => Time.at(0), :new => file)
28
- translation_file.fetch(true).should include "OK"
29
- end
30
-
31
- it "should prepare a HTTP request and get a 200 OK if the language file is fresh using the force download parameter" do
32
- file = mock(File)
33
- file.stub(:puts => true, :close => true)
34
- File.stub(:exist? => true, :mtime => Time.now, :new => file)
35
- translation_file.fetch(true).should include "OK"
36
- end
37
- end
38
-
39
- describe "#upload" do
40
- let(:translation_file) { WebTranslateIt::TranslationFile.new(2267, "examples/en.yml", 'fr', "4af21ce1fb3a4f7127a60b31ebc41c1446b38bb2") }
41
-
42
- it "should prepare a HTTP request and get a 200 OK" do
43
- translation_file.stub(:file_path => File.join(File.dirname(__FILE__), '..', 'examples', 'en.yml'))
44
- translation_file.upload
45
- end
46
-
47
- it "should fail if the file does not exist" do
48
- translation_file.stub(:file_path => File.join('something', 'that', 'does', 'not', 'exist'))
49
- expect { @translation_file.upload }.to raise_error
50
- end
51
- end
52
- end