csl 1.0.0.pre4 → 1.0.0.pre5

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.
@@ -127,11 +127,11 @@ Feature: Converting numbers to ordinals using CSL locales
127
127
  <term name="long-ordinal-01">erstes</term>
128
128
  <term name="long-ordinal-01" gender-form="feminine">
129
129
  <single>erste</single>
130
- <multiple>ersten</multiple>
130
+ <multiple>ersten</multiple>
131
131
  </term>
132
132
  <term name="long-ordinal-01" gender-form="masculine">
133
133
  <single>erster</single>
134
- <multiple>ersten</multiple>
134
+ <multiple>ersten</multiple>
135
135
  </term>
136
136
  <term name="long-ordinal-02">zweites</term>
137
137
  <term name="long-ordinal-02" gender-form="feminine">zweite</term>
@@ -187,17 +187,20 @@ Feature: Converting numbers to ordinals using CSL locales
187
187
  <single>e</single>
188
188
  <multiple>es</multiple>
189
189
  </term>
190
-
191
- <term name="ordinal-01">e</term>
192
- <term name="ordinal-01" gender-form="feminine">
190
+
191
+ <term name="ordinal-01" modulo="1">
192
+ <single>re</single>
193
+ <multiple>res</multiple>
194
+ </term>
195
+ <term name="ordinal-01" gender-form="feminine" modulo="1">
193
196
  <single>re</single>
194
197
  <multiple>res</multiple>
195
198
  </term>
196
- <term name="ordinal-01" gender-form="masculine">
199
+ <term name="ordinal-01" gender-form="masculine" modulo="1">
197
200
  <single>er</single>
198
201
  <multiple>ers</multiple>
199
202
  </term>
200
-
203
+
201
204
  </terms>
202
205
  </locale>
203
206
  """
@@ -439,7 +442,7 @@ Feature: Converting numbers to ordinals using CSL locales
439
442
  <term name="ordinal-17">de</term>
440
443
  <term name="ordinal-18">de</term>
441
444
  <term name="ordinal-19">de</term>
442
-
445
+
443
446
  <term name="ordinal-22">ste</term>
444
447
  <term name="ordinal-23">ste</term>
445
448
  <term name="ordinal-24">ste</term>
@@ -503,7 +506,7 @@ Feature: Converting numbers to ordinals using CSL locales
503
506
  <term name="ordinal-96">ste</term>
504
507
  <term name="ordinal-97">ste</term>
505
508
  <term name="ordinal-99">ste</term>
506
-
509
+
507
510
  </terms>
508
511
  </locale>
509
512
  """
data/lib/csl/info.rb CHANGED
@@ -139,9 +139,17 @@ module CSL
139
139
  def citation_format
140
140
  return unless has_categories?
141
141
 
142
+ cat = categories.detect { |c| c.attribute? :'citation-format' }
143
+ return if cat.nil?
144
+
145
+ cat[:'citation-format'].to_sym
142
146
  end
143
147
 
144
- def ciation_format=(new_format)
148
+ def citation_format=(new_format)
149
+ cat = categories.detect { |c| c.attribute? :'citation-format' }
150
+ cat = add_child Info::Category.new if cat.nil?
151
+
152
+ cat[:'citation-format'] = new_format.to_s
145
153
  end
146
154
 
147
155
  #
data/lib/csl/style.rb CHANGED
@@ -46,7 +46,7 @@ module CSL
46
46
  :documentation_link, :documentation_link=, :has_documentation_link?,
47
47
  :independent_parent_link, :independent_parent_link=,
48
48
  :has_independent_parent_link?, :title=, :id=, :has_title?, :has_id?,
49
- :published_at, :updated_at
49
+ :published_at, :updated_at, :citation_format, :citation_format=
50
50
 
51
51
  def initialize(attributes = {})
52
52
  super(attributes, &nil)
data/lib/csl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CSL
2
- VERSION = '1.0.0.pre4'.freeze
2
+ VERSION = '1.0.0.pre5'.freeze
3
3
  end
@@ -31,6 +31,52 @@ module CSL
31
31
  end
32
32
  end
33
33
 
34
+ describe 'citation-format' do
35
+ it 'has no citation-format by default' do
36
+ Info.new.citation_format.should be_nil
37
+ end
38
+
39
+ it 'setting a citation-format creates a new category node' do
40
+ expect { info.citation_format = 'foo' }.to change { info.has_categories? }
41
+ end
42
+
43
+ it 'setting a citation-format actually sets the citation-format' do
44
+ expect { info.citation_format = 'bar' }.to change { info.citation_format }.to(:bar)
45
+ end
46
+
47
+ describe 'given a category node with the citation-attribute set' do
48
+ before(:all) { info.add_child Info::Category.new(:'citation-format' => 'author') }
49
+
50
+ it 'has a citation format' do
51
+ info.citation_format.should == :author
52
+ end
53
+
54
+ it 'setting a citation-format does not create a new category node' do
55
+ expect { info.citation_format = 'foo' }.not_to change { info.categories.length }
56
+ end
57
+
58
+ it 'setting a citation-format actually sets the citation-format' do
59
+ expect { info.citation_format = 'bar' }.to change { info.citation_format }.to(:bar)
60
+ end
61
+ end
62
+
63
+ describe 'given a category node without the citation-attribute set' do
64
+ before(:all) { info.add_child Info::Category.new(:field => 'literature') }
65
+
66
+ it 'has no citation-format by default' do
67
+ info.citation_format.should be_nil
68
+ end
69
+
70
+ it 'setting a citation-format creates a new category node' do
71
+ expect { info.citation_format = 'foo' }.to change { info.categories.length }.from(1).to(2)
72
+ end
73
+
74
+ it 'setting a citation-format actually sets the citation-format' do
75
+ expect { info.citation_format = 'bar' }.to change { info.citation_format }.to(:bar)
76
+ end
77
+ end
78
+ end
79
+
34
80
  describe 'link accessors' do
35
81
  it { should_not have_self_link }
36
82
  it { should_not have_documentation_link }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre4
4
+ version: 1.0.0.pre5
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-14 00:00:00.000000000 Z
12
+ date: 2012-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber
16
- requirement: &70119260445480 !ruby/object:Gem::Requirement
16
+ requirement: &70119062651280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.1'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70119260445480
24
+ version_requirements: *70119062651280
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70119260460240 !ruby/object:Gem::Requirement
27
+ requirement: &70119062664520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.7'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70119260460240
35
+ version_requirements: *70119062664520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70119260458480 !ruby/object:Gem::Requirement
38
+ requirement: &70119062661920 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0.9'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70119260458480
46
+ version_requirements: *70119062661920
47
47
  description: ! "\n\t\tA Ruby parser and library for the Citation Style Language (CSL),
48
48
  an open\n\t\tXML-based language to describe the formatting of citations and\n\t\tbibliographies.\n\t\t"
49
49
  email: