get_pomo 0.6.3 → 0.7.0

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: 7d9bfc39b28cf385862461eb28f58aa4dd6e2da9
4
- data.tar.gz: 4dc015cb5423989462ac675d5d947395ff705458
3
+ metadata.gz: 2cd9dd2c09caf9db6ca69651e9524293555726d6
4
+ data.tar.gz: 108d14f1f7905c087a53d01e8625594245af9d51
5
5
  SHA512:
6
- metadata.gz: 73465557ef57baa6efb55bae8e87748c09a76c03ad7811a204279d071be69edf1a1f892366971707e3584583e96124fabca9e3a358b139983c491d3d22a0dd53
7
- data.tar.gz: f8b88c0770edba5ab337926391b782d75f4acbef25abc9e0d76f5b3d66b899d13f0e3a0e2ac331fe2d10499af5bf0693fb83c49c3fdb4efa5606735ad98eb8c5
6
+ metadata.gz: 840f9278ea6cec9cef976e187e7d24b44abeb0aec9b80c12218efc6d7ecb4af7fea1a7257ef14c7ecbc3f1f12d230c72d8640035a08a35857abe6f12ddb6475e
7
+ data.tar.gz: 770b580530ebe517389d9c6b07cf4e417854628010e56b82b4a75dd2ebcc50624b303bfd7c73825ad868ad1d90ab0e2a91ace3b18de47603fd157435d653ebf8
@@ -1,3 +1,4 @@
1
+ #encoding: utf-8
1
2
  require 'get_pomo/translation'
2
3
 
3
4
  module GetPomo
@@ -50,18 +51,18 @@ module GetPomo
50
51
 
51
52
  msgid_and_msgstr = if translation.plural?
52
53
  msgids =
53
- %Q(msgid "#{escape_quotes(translation.msgid[0])}"\n)+
54
- %Q(msgid_plural "#{escape_quotes(translation.msgid[1])}"\n)
54
+ %Q(msgid "#{translation.msgid[0]}"\n)+
55
+ %Q(msgid_plural "#{translation.msgid[1]}"\n)
55
56
 
56
57
  msgstrs = []
57
58
  translation.msgstr.each_with_index do |msgstr,index|
58
- msgstrs << %Q(msgstr[#{index}] "#{escape_quotes(msgstr)}")
59
+ msgstrs << %Q(msgstr[#{index}] "#{msgstr}")
59
60
  end
60
61
 
61
62
  msgids + (msgstrs*"\n")
62
63
  else
63
- %Q(msgid "#{escape_quotes(translation.msgid)}"\n)+
64
- %Q(msgstr "#{escape_quotes(translation.msgstr)}")
64
+ %Q(msgid "#{translation.msgid}"\n)+
65
+ %Q(msgstr "#{translation.msgstr}")
65
66
  end
66
67
 
67
68
  comment + msgctxt + msgid_and_msgstr
@@ -70,11 +71,6 @@ module GetPomo
70
71
 
71
72
  private
72
73
 
73
- def escape_quotes(txt)
74
- txt.gsub /"/, '\"'
75
- end
76
-
77
-
78
74
  #e.g. # fuzzy
79
75
  def comment?(line)
80
76
  line =~ /^\s*#/
@@ -105,7 +101,7 @@ module GetPomo
105
101
  string = string.strip
106
102
  return if string.empty?
107
103
  raise "not string format: #{string.inspect} on line #{@line_number}" unless string =~ /^['"](.*)['"]$/
108
- string_content = $1.gsub(/\\"/, '"')
104
+ string_content = string[1..-2] #remove leading and trailing quotes from content
109
105
  @current_translation.add_text(string_content, :to=>@last_method)
110
106
  end
111
107
 
@@ -113,7 +109,7 @@ module GetPomo
113
109
  return false unless @current_translation
114
110
  @current_translation.complete?
115
111
  end
116
-
112
+
117
113
  def store_translation
118
114
  @translations += [@current_translation] if @current_translation.complete?
119
115
  end
@@ -123,4 +119,4 @@ module GetPomo
123
119
  @current_translation = Translation.new
124
120
  end
125
121
  end
126
- end
122
+ end
@@ -1,6 +1,7 @@
1
1
  module GetPomo
2
2
  class Translation
3
3
  FUZZY_REGEX = /^#,\s*fuzzy/
4
+ OBSOLETE_REGEX = /^#~\s*msgstr/
4
5
  attr_accessor :msgid, :msgstr, :msgctxt, :comment
5
6
 
6
7
  def add_text(text,options)
@@ -22,13 +23,22 @@ module GetPomo
22
23
  end
23
24
 
24
25
  def complete?
25
- not msgid.nil? and not msgstr.nil?
26
+ (not msgid.nil? and not msgstr.nil?) or obsolete?
26
27
  end
27
28
 
28
29
  def fuzzy?
29
30
  !!(comment =~ FUZZY_REGEX)
30
31
  end
31
32
 
33
+ def obsolete?
34
+ obs = if !!(comment =~ OBSOLETE_REGEX)
35
+ #prevent nullpointer in obsolete msgs
36
+ self.msgid = '' if msgid.nil?
37
+ self.msgstr = '' if msgstr.nil?
38
+ end
39
+ obs
40
+ end
41
+
32
42
  def fuzzy=(value)
33
43
  if value and not fuzzy?
34
44
  add_text "\n#, fuzzy", :to=>:comment
@@ -1,3 +1,3 @@
1
1
  module GetPomo
2
- VERSION = "0.6.3"
2
+ VERSION = "0.7.0"
3
3
  end
data/vendor/mofile.rb CHANGED
@@ -176,7 +176,11 @@ module GetPomo
176
176
 
177
177
  def next_prime(seed)
178
178
  require 'mathn'
179
- prime = Prime.new
179
+ prime = if RUBY_VERSION > "1.9.0"
180
+ Prime::EratosthenesGenerator.new
181
+ else
182
+ Prime.new
183
+ end
180
184
  while current = prime.succ
181
185
  return current if current > seed
182
186
  end
@@ -293,4 +297,4 @@ module GetPomo
293
297
  attr_reader :charset, :nplurals, :plural
294
298
  end
295
299
  end
296
- end
300
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: get_pomo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-26 00:00:00.000000000 Z
11
+ date: 2014-04-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: michael@grosser.it
@@ -16,28 +16,11 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - .gitignore
20
- - .travis.yml
21
- - Gemfile
22
- - Gemfile.lock
23
- - Rakefile
24
- - Readme.md
25
- - get_pomo.gemspec
26
19
  - lib/get_pomo.rb
27
20
  - lib/get_pomo/mo_file.rb
28
21
  - lib/get_pomo/po_file.rb
29
22
  - lib/get_pomo/translation.rb
30
23
  - lib/get_pomo/version.rb
31
- - spec/files/complex.mo
32
- - spec/files/empty.mo
33
- - spec/files/plural.mo
34
- - spec/files/singular.mo
35
- - spec/files/singular_2.mo
36
- - spec/pomo/mo_file_spec.rb
37
- - spec/pomo/po_file_spec.rb
38
- - spec/pomo/translation_spec.rb
39
- - spec/pomo_spec.rb
40
- - spec/spec_helper.rb
41
24
  - vendor/README.rdoc
42
25
  - vendor/iconv.rb
43
26
  - vendor/mofile.rb
@@ -51,17 +34,17 @@ require_paths:
51
34
  - lib
52
35
  required_ruby_version: !ruby/object:Gem::Requirement
53
36
  requirements:
54
- - - '>='
37
+ - - ">="
55
38
  - !ruby/object:Gem::Version
56
39
  version: '0'
57
40
  required_rubygems_version: !ruby/object:Gem::Requirement
58
41
  requirements:
59
- - - '>='
42
+ - - ">="
60
43
  - !ruby/object:Gem::Version
61
44
  version: '0'
62
45
  requirements: []
63
46
  rubyforge_project:
64
- rubygems_version: 2.1.11
47
+ rubygems_version: 2.2.2
65
48
  signing_key:
66
49
  specification_version: 4
67
50
  summary: 'Ruby/Gettext: A .po and .mo file parser/generator'
data/.gitignore DELETED
@@ -1 +0,0 @@
1
- pkg
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- rvm:
2
- - ree
3
- - 1.9.2
4
- - 1.9.3
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
-
4
- gem 'bump'
5
- gem 'rake'
6
- gem 'rspec', '~>2'
data/Gemfile.lock DELETED
@@ -1,28 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- get_pomo (0.6.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- bump (0.3.9)
10
- diff-lcs (1.1.3)
11
- rake (10.0.3)
12
- rspec (2.12.0)
13
- rspec-core (~> 2.12.0)
14
- rspec-expectations (~> 2.12.0)
15
- rspec-mocks (~> 2.12.0)
16
- rspec-core (2.12.2)
17
- rspec-expectations (2.12.1)
18
- diff-lcs (~> 1.1.3)
19
- rspec-mocks (2.12.2)
20
-
21
- PLATFORMS
22
- ruby
23
-
24
- DEPENDENCIES
25
- bump
26
- get_pomo!
27
- rake
28
- rspec (~> 2)
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- require 'bundler/setup'
2
- require 'bundler/gem_tasks'
3
- require 'bump/tasks'
4
-
5
- task :default do
6
- sh "rspec spec/"
7
- end
data/Readme.md DELETED
@@ -1,47 +0,0 @@
1
- A simple and extendable .mo and .po file parser/generator.
2
-
3
- Advanteges over original [mo](http://github.com/mutoh/gettext/blob/abf96713327cc4c5d35f0a772f3b75ff4819450c/lib/gettext/mofile.rb) / [po](http://github.com/mutoh/gettext/blob/abf96713327cc4c5d35f0a772f3b75ff4819450c/lib/gettext/poparser.rb)-parser:
4
-
5
- - simple architecture + easy to extend/modify
6
- - emtpy msgstr translations are read
7
- - comments are included
8
- - fuzzy can be set/unset
9
- - multiple translations can be combined in a new po file(with comments and fuzzy and ...)
10
- - po files can be written from any kind of input
11
- - easy mo-file handling/merging
12
- - po/mo file handling is identical, if you know one, you know both
13
-
14
- Setup
15
- =====
16
- sudo gem install get_pomo
17
-
18
- ###Static interface
19
- #parse po files
20
- translations = GetPomo::PoFile.parse(File.read('xxx.po')) + GetPomo::PoFile.parse(File.read('yyy.po'))
21
-
22
- #and use the data...
23
- msgids = translations.reject{|t|t.plural? or t.fuzzy?}.map(&:msgid)
24
-
25
- #or write a new po file (unique by msgid)...
26
- File.open('xxx.po','w){|f|f.print(GetPomo::PoFile.to_text(translations))}
27
-
28
-
29
- ###Instance interface
30
- p = GetPomo::PoFile.new
31
- p.add_translations_from_text(File.read('...'))
32
- ...
33
- p.translations
34
- p.to_text
35
-
36
- `GetPomo::MoFile` behaves identical.
37
-
38
- TODO
39
- ====
40
- - extracting of version/pluralisation_rule/plurals/translator... (from msgid "")
41
- - the vendor/mofile is really complex, maybe it can be refactored (also some parts are not needed)
42
-
43
- Author
44
- ======
45
- [Michael Grosser](http://pragmatig.wordpress.com)
46
- grosser.michael@gmail.com
47
- Hereby placed under public domain, do what you want, just do not hold me accountable...
data/get_pomo.gemspec DELETED
@@ -1,12 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
- name = "get_pomo"
3
- require "#{name}/version"
4
-
5
- Gem::Specification.new name, GetPomo::VERSION do |s|
6
- s.summary = "Ruby/Gettext: A .po and .mo file parser/generator"
7
- s.authors = ["Michael Grosser"]
8
- s.email = "michael@grosser.it"
9
- s.homepage = "https://github.com/grosser/#{name}"
10
- s.files = `git ls-files`.split("\n")
11
- s.license = "MIT"
12
- end
Binary file
data/spec/files/empty.mo DELETED
Binary file
data/spec/files/plural.mo DELETED
Binary file
Binary file
Binary file
@@ -1,58 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
- require 'get_pomo/mo_file'
4
-
5
- describe GetPomo::MoFile do
6
- it "parses empty mo file" do
7
- GetPomo::MoFile.parse(File.read('spec/files/empty.mo')).should == []
8
- end
9
-
10
- it "parses empty strings" do
11
- GetPomo::MoFile.parse(File.read('spec/files/empty.mo')).should == []
12
- end
13
-
14
- it "reads singulars" do
15
- t = GetPomo::MoFile.parse(File.read('spec/files/singular.mo'))[0]
16
- t.to_hash.should == {:msgid=>'Back',:msgstr=>'Zurück'}
17
- end
18
-
19
- it "reads plurals" do
20
- t = GetPomo::MoFile.parse(File.read('spec/files/plural.mo'))[0]
21
- t.to_hash.should == {:msgid=>['Axis','Axis'],:msgstr=>['Achse','Achsen']}
22
- end
23
-
24
- describe 'instance methods' do
25
- it "combines multiple translations" do
26
- m = GetPomo::MoFile.new
27
- m.add_translations_from_text(File.read('spec/files/plural.mo'))
28
- m.add_translations_from_text(File.read('spec/files/singular.mo'))
29
- m.should have(2).translations
30
- m.translations[0].msgid.should_not == m.translations[1].msgid
31
- end
32
-
33
- it "can be initialized with translations" do
34
- m = GetPomo::MoFile.new(:translations=>['x'])
35
- m.translations.should == ['x']
36
- end
37
-
38
- it "does not generate duplicate translations" do
39
- second_version = File.read('spec/files/singular_2.mo')
40
- m = GetPomo::MoFile.new
41
- m.add_translations_from_text(File.read('spec/files/singular.mo'))
42
- m.add_translations_from_text(second_version)
43
- m.to_text.should == second_version
44
- end
45
- end
46
-
47
- it "reads metadata" do
48
- meta = GetPomo::MoFile.parse(File.read('spec/files/complex.mo')).detect {|t|t.msgid == ''}
49
- meta.msgstr.should_not be_empty
50
- end
51
-
52
- describe :to_text do
53
- it "writes singulars" do
54
- text = File.read('spec/files/singular.mo')
55
- GetPomo::MoFile.to_text(GetPomo::MoFile.parse(text)).should == text
56
- end
57
- end
58
- end
@@ -1,148 +0,0 @@
1
- require "spec_helper"
2
- require "get_pomo/po_file"
3
-
4
- describe GetPomo::PoFile do
5
- describe :parse do
6
- it "parses nothing" do
7
- GetPomo::PoFile.parse("").should be_empty
8
- end
9
-
10
- it "parses a simple msgid and msgstr" do
11
- t = GetPomo::PoFile.parse(%Q(msgid "xxx"\nmsgstr "yyy"))
12
- t[0].to_hash.should == {:msgid=>'xxx',:msgstr=>'yyy'}
13
- end
14
-
15
- it "parses msgid and msgstr with escaping quote" do
16
- t = GetPomo::PoFile.parse('msgid "x\"xx"' + "\n" + 'msgstr "y\"yy"')
17
- t[0].to_hash.should == {:msgid=>'x"xx',:msgstr=>'y"yy'}
18
- end
19
-
20
- it "parses a simple msgid and msg with additional whitespace" do
21
- t = GetPomo::PoFile.parse(%Q( msgid "xxx" \n msgstr "yyy" ))
22
- t[0].to_hash.should == {:msgid=>'xxx',:msgstr=>'yyy'}
23
- end
24
-
25
- it "parses an empty msgid with text (gettext meta data)" do
26
- t = GetPomo::PoFile.parse(%Q(msgid ""\nmsgstr "PLURAL FORMS"))
27
- t[0].to_hash.should == {:msgid=>'',:msgstr=>'PLURAL FORMS'}
28
- end
29
-
30
- it "parses a multiline msgid/msgstr" do
31
- t = GetPomo::PoFile.parse(%Q(msgid "xxx"\n"aaa"\n\n\nmsgstr ""\n"bbb"))
32
- t[0].to_hash.should == {:msgid=>'xxxaaa',:msgstr=>'bbb'}
33
- end
34
-
35
- it "parses simple comments" do
36
- t = GetPomo::PoFile.parse(%Q(#test\nmsgid "xxx"\nmsgstr "yyy"))
37
- t[0].to_hash.should == {:msgid=>'xxx',:msgstr=>'yyy',:comment=>"#test\n"}
38
- end
39
-
40
- it "parses comments above msgstr" do
41
- t = GetPomo::PoFile.parse(%Q(#test\nmsgid "xxx"\n#another\nmsgstr "yyy"))
42
- t[0].to_hash.should == {:msgid=>'xxx',:msgstr=>'yyy',:comment=>"#test\n#another\n"}
43
- end
44
-
45
- it "parses a simple string with msgctxt" do
46
- t = GetPomo::PoFile.parse(%Q(msgctxt "www"\nmsgid "xxx"\nmsgstr "yyy"))
47
- t[0].to_hash.should == {:msgctxt => 'www', :msgid=>'xxx',:msgstr=>'yyy'}
48
- end
49
- end
50
-
51
- describe "instance interface" do
52
- it "adds two different translations" do
53
- p = GetPomo::PoFile.new
54
- p.add_translations_from_text(%Q(msgid "xxx"\nmsgstr "yyy"))
55
- p.add_translations_from_text(%Q(msgid "aaa"\nmsgstr "yyy"))
56
- p.translations[1].to_hash.should == {:msgid=>'aaa',:msgstr=>'yyy'}
57
- end
58
-
59
- it "can be initialized with translations" do
60
- p = GetPomo::PoFile.new(:translations=>['xxx'])
61
- p.translations[0].should == 'xxx'
62
- end
63
-
64
- it "can be converted to text" do
65
- text = %Q(msgid "xxx"\nmsgstr "aaa")
66
- p = GetPomo::PoFile.new
67
- p.add_translations_from_text(text)
68
- p.to_text.should == text
69
- end
70
-
71
- it "keeps uniqueness when converting to_text" do
72
- text = %Q(msgid "xxx"\nmsgstr "aaa")
73
- p = GetPomo::PoFile.new
74
- p.add_translations_from_text(%Q(msgid "xxx"\nmsgstr "yyy"))
75
- p.add_translations_from_text(text)
76
- p.to_text.should == text
77
- end
78
- end
79
-
80
- it "adds plural translations" do
81
- t = GetPomo::PoFile.parse(%Q(msgid "singular"\nmsgid_plural "plural"\nmsgstr[0] "one"\nmsgstr[1] "many"))
82
- t[0].to_hash.should == {:msgid=>['singular','plural'],:msgstr=>['one','many']}
83
- end
84
-
85
- it "does not fail on empty string" do
86
- GetPomo::PoFile.parse(%Q(\n\n\n\n\n))
87
- end
88
-
89
- it "shows line number for invalid strings" do
90
- begin
91
- GetPomo::PoFile.parse(%Q(\n\n\n\n\nmsgstr "))
92
- flunk
93
- rescue Exception => e
94
- e.to_s.should =~ /line 5/
95
- end
96
- end
97
-
98
- describe :to_text do
99
- it "is empty when not translations where added" do
100
- GetPomo::PoFile.to_text([]).should == ""
101
- end
102
-
103
- it "preserves simple syntax" do
104
- text = %Q(msgid "x"\nmsgstr "y")
105
- GetPomo::PoFile.to_text(GetPomo::PoFile.parse(text)).should == text
106
- end
107
-
108
- it "escape double quotes" do
109
- text = 'msgid "x\"xx"' + "\n" + 'msgstr "y\"yy"'
110
- po = GetPomo::PoFile.parse(text)
111
- GetPomo::PoFile.to_text(po).should == text
112
- end
113
-
114
- it "does not escape slashes" do
115
- text = 'msgid "x\\"' + "\n" + 'msgstr "x\\"'
116
- po = GetPomo::PoFile.parse(text)
117
- GetPomo::PoFile.to_text(po).should == text
118
- end
119
-
120
- it "escape double quotes on plurals" do
121
- text = 'msgid "x\"xx"' + "\n"
122
- text += 'msgid_plural "x\"xx"' + "\n"
123
- text += 'msgstr[0] "y\"yy"' + "\n"
124
- text += 'msgstr[1] "y\"yy"'
125
- po = GetPomo::PoFile.parse(text)
126
- GetPomo::PoFile.to_text(po).should == text
127
- end
128
-
129
- it "adds comments" do
130
- t = GetPomo::Translation.new
131
- t.msgid = 'a'
132
- t.msgstr = 'b'
133
- t.add_text("#c\n",:to=>:comment)
134
- t.add_text("#d\n",:to=>:comment)
135
- GetPomo::PoFile.to_text([t]).should == %Q(#c\n#d\nmsgid "a"\nmsgstr "b")
136
- end
137
-
138
- it "uses plural notation" do
139
- text = %Q(#awesome\nmsgid "one"\nmsgid_plural "many"\nmsgstr[0] "1"\nmsgstr[1] "n")
140
- GetPomo::PoFile.to_text(GetPomo::PoFile.parse(text)).should == text
141
- end
142
-
143
- it "only uses the latest of identicals msgids" do
144
- text = %Q(msgid "one"\nmsgstr "1"\nmsgid "one"\nmsgstr "001")
145
- GetPomo::PoFile.to_text(GetPomo::PoFile.parse(text)).should == %Q(msgid "one"\nmsgstr "001")
146
- end
147
- end
148
- end
@@ -1,152 +0,0 @@
1
- require 'spec_helper'
2
- require 'get_pomo/translation'
3
-
4
- describe GetPomo::Translation do
5
- describe :complete? do
6
- it { should_not be_complete }
7
-
8
- it "is complete if it has a msgid and a msgstr" do
9
- subject.msgid="x"
10
- subject.msgstr = "y"
11
- should be_complete
12
- end
13
-
14
- it "is not complete if it has an complete msgid" do
15
- subject.msgid=""
16
- should_not be_complete
17
- end
18
-
19
- it "is not complete if it has a nil msgstr" do
20
- subject.msgid="x"
21
- should_not be_complete
22
- end
23
-
24
- it "is complete if it has an complete msgstr" do
25
- subject.msgid = "x"
26
- subject.msgstr = ""
27
- should be_complete
28
- end
29
- end
30
-
31
- describe :add_text do
32
- it "adds a simple msgid" do
33
- subject.add_text("x",:to=>:msgid)
34
- subject.msgid.should == "x"
35
- end
36
-
37
- it "converts msgid to plural when msgid_plural is added" do
38
- subject.add_text("x",:to=>:msgid)
39
- subject.add_text("y",:to=>:msgid_plural)
40
- subject.msgid.should == ["x",'y']
41
- end
42
-
43
- it "can add additional text to msgid plurals" do
44
- subject.add_text("y",:to=>:msgid_plural)
45
- subject.add_text("a",:to=>:msgid_plural)
46
- subject.msgid.should == [nil,'ya']
47
- end
48
-
49
- it "can add plural msggstr" do
50
- subject.add_text("x",:to=>'msgstr[0]')
51
- subject.msgstr.should == ['x']
52
- end
53
-
54
- it "can add multiple plural msggstr" do
55
- subject.add_text("x",:to=>'msgstr[0]')
56
- subject.add_text("a",:to=>'msgstr[1]')
57
- subject.add_text("y",:to=>'msgstr[1]')
58
- subject.msgstr.should == ['x','ay']
59
- end
60
- end
61
-
62
- describe :plural? do
63
- it{should_not be_plural}
64
-
65
- it "is plural if msgid is plural" do
66
- subject.add_text("x",:to=>:msgid_plural)
67
- should be_plural
68
- end
69
-
70
- it "is plural if msgstr is plural" do
71
- subject.add_text("x",:to=>"msgstr[0]")
72
- should be_plural
73
- end
74
-
75
- it "is not plural if simple strings where added" do
76
- subject.msgid = "a"
77
- subject.msgstr = "a"
78
- should_not be_plural
79
- end
80
- end
81
-
82
- describe :singular? do
83
- it{should be_singular}
84
-
85
- it "is not singular if msgid is plural" do
86
- subject.add_text("x",:to=>:msgid_plural)
87
- should_not be_singular
88
- end
89
-
90
- it "is not singular if msgstr is plural" do
91
- subject.add_text("x",:to=>"msgstr[0]")
92
- should_not be_singular
93
- end
94
-
95
- it "is singular if simple strings where added" do
96
- subject.msgid = "a"
97
- subject.msgstr = "a"
98
- should be_singular
99
- end
100
- end
101
-
102
- describe :header? do
103
- it{should_not be_header}
104
-
105
- it "is header if msgid is empty" do
106
- subject.msgid = ""
107
- should be_header
108
- end
109
-
110
- it "is not header if there is something on msgid" do
111
- subject.msgid = "a"
112
- should_not be_header
113
- end
114
- end
115
-
116
- describe :fuzzy? do
117
- it{should_not be_fuzzy}
118
-
119
- it "is fuzzy if a fuzzy comment was added" do
120
- subject.add_text("#, fuzzy",:to=>:comment)
121
- should be_fuzzy
122
- end
123
-
124
- it "can be made fuzzy by using fuzzy=" do
125
- subject.fuzzy = true
126
- should be_fuzzy
127
- end
128
-
129
- it "can be made unfuzzy by using fuzzy=" do
130
- subject.fuzzy = false
131
- should_not be_fuzzy
132
- end
133
-
134
- it "changes comment when made fuzzy through fuzzy=" do
135
- subject.comment = "# hello"
136
- subject.fuzzy = true
137
- subject.comment.should == "# hello\n#, fuzzy"
138
- end
139
-
140
- it "changes empty comment when made fuzzy through fuzzy=" do
141
- subject.fuzzy = true
142
- subject.comment.should == "\n#, fuzzy"
143
- end
144
-
145
- it "preserves comments when making fuzzy/unfuzzy" do
146
- subject.comment = "hello"
147
- subject.fuzzy = true
148
- subject.fuzzy = false
149
- subject.comment.should == "hello"
150
- end
151
- end
152
- end
data/spec/pomo_spec.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe GetPomo do
4
- it "has a VERSION" do
5
- GetPomo::VERSION.should =~ /^\d+\.\d+\.\d+$/
6
- end
7
- end
data/spec/spec_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- # ---- requirements
2
- $LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
3
- require 'get_pomo'
4
-
5
- # ---- Helpers
6
- def pending_it(text,&block)
7
- it text do
8
- pending(&block)
9
- end
10
- end