logaling-command 0.1.2 → 0.1.3

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.
@@ -21,26 +21,72 @@ require "fileutils"
21
21
  module Logaling
22
22
  describe Repository do
23
23
  let(:project) { "spec" }
24
- let(:glossary) { Glossary.new(project, 'en', 'ja') }
25
- let(:glossary_path) { Glossary.build_path(project, 'en', 'ja') }
26
- let(:repository) { Logaling::Repository.new(LOGALING_HOME) }
24
+ let(:logaling_home) { @logaling_home }
25
+ let(:glossary) { Glossary.new(project, 'en', 'ja', logaling_home) }
26
+ let(:glossary_path) { glossary.source_path }
27
+ let(:repository) { Logaling::Repository.new(logaling_home) }
28
+ let(:db_home) { File.join(logaling_home, "db") }
27
29
 
28
30
  before do
29
- FileUtils.remove_entry_secure(File.join(LOGALING_HOME, 'projects', 'spec'), true)
31
+ FileUtils.remove_entry_secure(File.join(logaling_home, 'projects', 'spec'), true)
30
32
  FileUtils.mkdir_p(File.dirname(glossary_path))
31
33
  end
32
34
 
33
35
  describe '#lookup' do
34
- before do
35
- glossary.add("user", "ユーザ", "ユーザーではない")
36
- repository.index
36
+ context 'with arguments show existing bilingual pair' do
37
+ before do
38
+ glossary.add("user-logaling", "ユーザ", "ユーザーではない")
39
+ glossary.add("user-logaling", "ユーザー", "")
40
+ File.stub!(:mtime).and_return(Time.now - 1)
41
+ repository.index
42
+ @terms = repository.lookup("user-logaling", glossary)
43
+ end
44
+
45
+ it 'succeed at find by term' do
46
+ @terms.size.should == 2
47
+ end
37
48
  end
38
49
 
39
- context 'with arguments show existing bilingual pair' do
40
- subject {repository.lookup("user", "en", "ja", project)}
50
+ context 'with dictionary option' do
51
+ before do
52
+ glossary.add("user", "ユーザ", "ユーザーではない")
53
+ glossary.add("user-logaling", "ユーザ", "ユーザーではない")
54
+ glossary.add("user-logaling test", "ユーザーてすと", "")
55
+ glossary.add("ゆーざ", "test user-logaling test text", "")
56
+ File.stub!(:mtime).and_return(Time.now - 1)
57
+ repository.index
58
+ @terms = repository.lookup("user-logaling", glossary, true)
59
+ @result = [{
60
+ :glossary_name=>"spec",
61
+ :source_language=>"en",
62
+ :target_language=>"ja",
63
+ :source_term=>"user-logaling",
64
+ :snipped_source_term=>["", {:keyword=>"user-logaling"}],
65
+ :target_term=>"ユーザ",
66
+ :snipped_target_term=>[],
67
+ :note=>"ユーザーではない"},
68
+ {
69
+ :glossary_name=>"spec",
70
+ :source_language=>"en",
71
+ :target_language=>"ja",
72
+ :source_term=>"user-logaling test",
73
+ :snipped_source_term=>["", {:keyword=>"user-logaling"}, " test"],
74
+ :target_term=>"ユーザーてすと",
75
+ :snipped_target_term=>[],
76
+ :note=>""},
77
+ {
78
+ :glossary_name=>"spec",
79
+ :source_language=>"en",
80
+ :target_language=>"ja",
81
+ :source_term=>"ゆーざ",
82
+ :snipped_source_term=>[],
83
+ :target_term=>"test user-logaling test text",
84
+ :snipped_target_term=>["test", {:keyword=>" user-logaling"}, " test text"],
85
+ :note=>""}]
86
+ end
41
87
 
42
88
  it 'succeed at find by term' do
43
- should be_include({:name=>"spec", :source_language=>"en", :target_language=>"ja", :source_term=>"user", :target_term=>"ユーザ", :note=>"ユーザーではない"})
89
+ @terms.should == @result
44
90
  end
45
91
  end
46
92
 
@@ -50,14 +96,13 @@ module Logaling
50
96
  before do
51
97
  FileUtils.mkdir_p(File.dirname(tsv_path))
52
98
  FileUtils.touch(tsv_path)
53
- File.open(tsv_path, "w"){|f| f.puts "user\tユーザー"}
99
+ File.open(tsv_path, "w"){|f| f.puts "test-logaling\tユーザー\ntest-logaling\tユーザ"}
54
100
  repository.index
101
+ @terms = repository.lookup("test-logaling", glossary)
55
102
  end
56
103
 
57
- subject {repository.lookup("user", "en", "ja", project)}
58
-
59
104
  it 'succeed at find by term' do
60
- should be_include({:name=>"spec", :source_language=>"en", :target_language=>"ja", :source_term=>"user", :target_term=>"ユーザー", :note=>""})
105
+ @terms.size.should == 2
61
106
  end
62
107
 
63
108
  after do
@@ -67,7 +112,6 @@ module Logaling
67
112
  end
68
113
 
69
114
  describe '#index' do
70
- let(:db_home) { File.join(LOGALING_HOME, "db") }
71
115
  let(:logaling_db) { Logaling::GlossaryDB.new }
72
116
  let(:tsv_path) { File.join(File.dirname(glossary_path), "spec.en.ja.tsv") }
73
117
  let(:csv_path) { File.join(File.dirname(glossary_path), "spec.en.ja.csv") }
@@ -78,12 +122,11 @@ module Logaling
78
122
  FileUtils.touch(glossary_path)
79
123
  glossary.add("spec_logaling", "スペック", "備考")
80
124
  repository.index
125
+ @terms = repository.lookup("spec_logaling", glossary)
81
126
  end
82
127
 
83
- subject { logaling_db.open(db_home, "utf8"){|db| logaling_db.lookup("spec_logaling")} }
84
-
85
128
  it 'glossaries should be indexed' do
86
- should be_include({:name=>"spec", :source_language=>"en", :target_language=>"ja", :source_term=>"spec_logaling", :target_term=>"スペック", :note=>"備考"})
129
+ @terms.size.should == 1
87
130
  end
88
131
 
89
132
  after do
@@ -95,14 +138,14 @@ module Logaling
95
138
  before do
96
139
  FileUtils.mkdir_p(File.dirname(glossary_path))
97
140
  FileUtils.touch(tsv_path)
98
- File.open(tsv_path, "w"){|f| f.puts "user\tユーザ"}
141
+ File.open(tsv_path, "w"){|f| f.puts "user-logaling\tユーザ"}
99
142
  repository.index
143
+ @terms = repository.lookup("user-logaling", glossary)
100
144
  end
101
145
 
102
- subject { logaling_db.open(db_home, "utf8"){|db| logaling_db.lookup("user")} }
103
146
 
104
147
  it 'glossaries should be indexed' do
105
- should be_include({:name=>"spec", :source_language=>"en", :target_language=>"ja", :source_term=>"user", :target_term=>"ユーザ", :note=>''})
148
+ @terms.size.should == 1
106
149
  end
107
150
 
108
151
  after do
@@ -116,12 +159,11 @@ module Logaling
116
159
  FileUtils.touch(csv_path)
117
160
  File.open(csv_path, "w"){|f| f.puts "test_logaling,テスト"}
118
161
  repository.index
162
+ @terms = repository.lookup("test_logaling", glossary)
119
163
  end
120
164
 
121
- subject { logaling_db.open(db_home, "utf8"){|db| logaling_db.lookup("test_logaling")} }
122
-
123
165
  it 'glossaries should be indexed' do
124
- should be_include({:name=>"spec", :source_language=>"en", :target_language=>"ja", :source_term=>"test_logaling", :target_term=>"テスト", :note=>""})
166
+ @terms.size.should == 1
125
167
  end
126
168
 
127
169
  after do
@@ -130,25 +172,8 @@ module Logaling
130
172
  end
131
173
  end
132
174
 
133
- context 'when glossary exist but not modified' do
134
- let(:index_at) { File.join(LOGALING_HOME, 'db', 'index_at') }
135
- before do
136
- glossary.add("index_test", "インデックスのテスト", "備考")
137
- repository.index
138
- @timestamp = File.mtime(index_at)
139
- sleep(1)
140
- repository.index
141
- end
142
-
143
- subject { File.mtime(index_at) }
144
-
145
- it 'should not be indexed' do
146
- should == @timestamp
147
- end
148
- end
149
-
150
175
  after do
151
- FileUtils.remove_entry_secure(File.join(LOGALING_HOME, 'projects', 'spec'), true)
176
+ FileUtils.remove_entry_secure(File.join(logaling_home, 'projects', 'spec'), true)
152
177
  end
153
178
  end
154
179
  end
data/spec/spec_helper.rb CHANGED
@@ -17,10 +17,9 @@ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
17
17
  require 'logaling'
18
18
 
19
19
  require "fileutils"
20
+ require 'tmpdir'
20
21
  require 'stringio'
21
22
 
22
- LOGALING_HOME = File.expand_path("~/.logaling.d")
23
-
24
23
  RSpec.configure do |config|
25
24
  def capture(stream)
26
25
  begin
@@ -35,6 +34,17 @@ RSpec.configure do |config|
35
34
  result
36
35
  end
37
36
 
37
+ config.before(:suite) do
38
+ LOGALING_HOME = Dir.mktmpdir
39
+ end
40
+
41
+ config.before(:all) do
42
+ @logaling_home = LOGALING_HOME
43
+ end
44
+
45
+ config.after(:suite) do
46
+ FileUtils.remove_entry_secure(LOGALING_HOME, true)
47
+ end
48
+
38
49
  alias :silence :capture
39
50
  end
40
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logaling-command
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,11 +13,11 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2012-01-30 00:00:00.000000000Z
16
+ date: 2012-02-29 00:00:00.000000000Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: thor
20
- requirement: &2153162840 !ruby/object:Gem::Requirement
20
+ requirement: &2154467460 !ruby/object:Gem::Requirement
21
21
  none: false
22
22
  requirements:
23
23
  - - ! '>='
@@ -25,10 +25,10 @@ dependencies:
25
25
  version: 0.14.6
26
26
  type: :runtime
27
27
  prerelease: false
28
- version_requirements: *2153162840
28
+ version_requirements: *2154467460
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: bundler
31
- requirement: &2153162000 !ruby/object:Gem::Requirement
31
+ requirement: &2154466980 !ruby/object:Gem::Requirement
32
32
  none: false
33
33
  requirements:
34
34
  - - ! '>='
@@ -36,10 +36,10 @@ dependencies:
36
36
  version: '1.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
- version_requirements: *2153162000
39
+ version_requirements: *2154466980
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rroonga
42
- requirement: &2153155300 !ruby/object:Gem::Requirement
42
+ requirement: &2154466500 !ruby/object:Gem::Requirement
43
43
  none: false
44
44
  requirements:
45
45
  - - ! '>='
@@ -47,10 +47,10 @@ dependencies:
47
47
  version: 1.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
- version_requirements: *2153155300
50
+ version_requirements: *2154466500
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: rainbow
53
- requirement: &2153154740 !ruby/object:Gem::Requirement
53
+ requirement: &2154466120 !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
56
56
  - - ! '>='
@@ -58,10 +58,10 @@ dependencies:
58
58
  version: '0'
59
59
  type: :runtime
60
60
  prerelease: false
61
- version_requirements: *2153154740
61
+ version_requirements: *2154466120
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: nokogiri
64
- requirement: &2153153780 !ruby/object:Gem::Requirement
64
+ requirement: &2154465660 !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ! '>='
@@ -69,10 +69,10 @@ dependencies:
69
69
  version: '0'
70
70
  type: :runtime
71
71
  prerelease: false
72
- version_requirements: *2153153780
72
+ version_requirements: *2154465660
73
73
  - !ruby/object:Gem::Dependency
74
- name: active_support
75
- requirement: &2153152800 !ruby/object:Gem::Requirement
74
+ name: activesupport
75
+ requirement: &2154465240 !ruby/object:Gem::Requirement
76
76
  none: false
77
77
  requirements:
78
78
  - - ! '>='
@@ -80,10 +80,10 @@ dependencies:
80
80
  version: '0'
81
81
  type: :runtime
82
82
  prerelease: false
83
- version_requirements: *2153152800
83
+ version_requirements: *2154465240
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: rake
86
- requirement: &2153151540 !ruby/object:Gem::Requirement
86
+ requirement: &2156056340 !ruby/object:Gem::Requirement
87
87
  none: false
88
88
  requirements:
89
89
  - - ! '>='
@@ -91,10 +91,10 @@ dependencies:
91
91
  version: '0'
92
92
  type: :development
93
93
  prerelease: false
94
- version_requirements: *2153151540
94
+ version_requirements: *2156056340
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: rspec
97
- requirement: &2153150900 !ruby/object:Gem::Requirement
97
+ requirement: &2156055920 !ruby/object:Gem::Requirement
98
98
  none: false
99
99
  requirements:
100
100
  - - ! '>='
@@ -102,7 +102,7 @@ dependencies:
102
102
  version: '0'
103
103
  type: :development
104
104
  prerelease: false
105
- version_requirements: *2153150900
105
+ version_requirements: *2156055920
106
106
  description: A command line interface for logaling.
107
107
  email:
108
108
  - koji.shimada@enishi-tech.com
@@ -125,10 +125,15 @@ files:
125
125
  - bin/loga
126
126
  - lib/logaling.rb
127
127
  - lib/logaling/command.rb
128
+ - lib/logaling/command/application.rb
129
+ - lib/logaling/command/version.rb
130
+ - lib/logaling/config.rb
128
131
  - lib/logaling/external_glossaries/debian_project.rb
129
132
  - lib/logaling/external_glossaries/edict.rb
133
+ - lib/logaling/external_glossaries/freebsd_jpman.rb
130
134
  - lib/logaling/external_glossaries/gene95.rb
131
135
  - lib/logaling/external_glossaries/gnome_project.rb
136
+ - lib/logaling/external_glossaries/mozilla_japan.rb
132
137
  - lib/logaling/external_glossaries/postgresql_manual.rb
133
138
  - lib/logaling/external_glossary.rb
134
139
  - lib/logaling/glossary.rb