csl 2.2.1 → 2.4.0
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.
- checksums.yaml +4 -4
- data/README.md +58 -44
- data/lib/csl/compatibility.rb +7 -30
- data/lib/csl/info.rb +0 -12
- data/lib/csl/loader.rb +11 -2
- data/lib/csl/locale/term.rb +5 -4
- data/lib/csl/locale.rb +105 -34
- data/lib/csl/node.rb +17 -21
- data/lib/csl/parser.rb +1 -2
- data/lib/csl/pretty_printer.rb +1 -1
- data/lib/csl/style/label.rb +1 -1
- data/lib/csl/style/names.rb +2 -2
- data/lib/csl/style.rb +14 -5
- data/lib/csl/treelike.rb +19 -14
- data/lib/csl/version.rb +1 -1
- data/lib/csl.rb +0 -1
- metadata +4 -13
- data/.document +0 -5
- data/.github/workflows/ci.yml +0 -33
- data/.gitignore +0 -13
- data/.yardopts +0 -2
- data/AGPL +0 -662
- data/Gemfile +0 -32
- data/Rakefile +0 -61
- data/csl.gemspec +0 -45
- data/cucumber.yml +0 -1
data/lib/csl/style/names.rb
CHANGED
|
@@ -229,7 +229,7 @@ module CSL
|
|
|
229
229
|
# be inserted between before et-al depending on the
|
|
230
230
|
# number of names rendered
|
|
231
231
|
def delimiter_contextually_precedes_et_al?
|
|
232
|
-
return true unless attribute?
|
|
232
|
+
return true unless attribute?(:'delimiter-precedes-et-al')
|
|
233
233
|
!!(attributes[:'delimiter-precedes-et-al'].to_s =~ /^contextual/i)
|
|
234
234
|
end
|
|
235
235
|
|
|
@@ -327,7 +327,7 @@ module CSL
|
|
|
327
327
|
end
|
|
328
328
|
|
|
329
329
|
def ellipsis?
|
|
330
|
-
|
|
330
|
+
boolean_attribute(:'et-al-use-last')
|
|
331
331
|
end
|
|
332
332
|
|
|
333
333
|
def ellipsis
|
data/lib/csl/style.rb
CHANGED
|
@@ -74,26 +74,35 @@ module CSL
|
|
|
74
74
|
@errors = Schema.validate self
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
+
# Merges the style's overrides into the given locale.
|
|
78
|
+
#
|
|
79
|
+
# @param locale [Locale]
|
|
80
|
+
# @return [Locale]
|
|
81
|
+
def localize(locale)
|
|
82
|
+
overrides = locales.sort.reverse.select { |other| locale.like?(other) }
|
|
83
|
+
overrides.empty? ? locale : locale.merge(*overrides)
|
|
84
|
+
end
|
|
85
|
+
|
|
77
86
|
def valid?
|
|
78
87
|
validate.empty?
|
|
79
88
|
end
|
|
80
89
|
|
|
81
90
|
remove_method :info # generated by struct_children
|
|
82
91
|
def info
|
|
83
|
-
children[:info]
|
|
92
|
+
children[:info] || add_child(Info.new)
|
|
84
93
|
end
|
|
85
94
|
|
|
86
95
|
alias_child :metadata, :info
|
|
87
96
|
|
|
88
97
|
# @return [String] the style's id
|
|
89
98
|
def id
|
|
90
|
-
return unless info.has_id?
|
|
99
|
+
return unless has_info? && info.has_id?
|
|
91
100
|
info.id.to_s
|
|
92
101
|
end
|
|
93
102
|
|
|
94
103
|
# @return [String] the style's title
|
|
95
104
|
def title
|
|
96
|
-
return unless info.has_title?
|
|
105
|
+
return unless has_info? && info.has_title?
|
|
97
106
|
info.title.to_s
|
|
98
107
|
end
|
|
99
108
|
|
|
@@ -127,7 +136,7 @@ module CSL
|
|
|
127
136
|
alias demote_particle? demote_non_dropping_particle?
|
|
128
137
|
|
|
129
138
|
def initialize_without_hyphen?
|
|
130
|
-
|
|
139
|
+
!boolean_attribute(:'initialize-with-hyphen', true)
|
|
131
140
|
end
|
|
132
141
|
|
|
133
142
|
def has_page_range_format?
|
|
@@ -141,7 +150,7 @@ module CSL
|
|
|
141
150
|
private
|
|
142
151
|
|
|
143
152
|
def preamble
|
|
144
|
-
Schema.preamble
|
|
153
|
+
Schema.preamble
|
|
145
154
|
end
|
|
146
155
|
|
|
147
156
|
def load_related_style_from(uri)
|
data/lib/csl/treelike.rb
CHANGED
|
@@ -33,12 +33,17 @@ module CSL
|
|
|
33
33
|
end
|
|
34
34
|
alias delete delete_children
|
|
35
35
|
|
|
36
|
-
# Deletes
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
36
|
+
# Deletes the passed-in child node.
|
|
37
|
+
# Returns the deleted child.
|
|
38
|
+
# If the node is not a child, returns nil or,
|
|
39
|
+
# if the optional block is given, the result of the block.
|
|
40
40
|
def delete_child(child)
|
|
41
|
-
deleted = children.
|
|
41
|
+
deleted = if children.is_a?(Array)
|
|
42
|
+
index = children.index { |node| node.equal?(child) }
|
|
43
|
+
children.delete_at(index) unless index.nil?
|
|
44
|
+
else
|
|
45
|
+
children.delete child
|
|
46
|
+
end
|
|
42
47
|
|
|
43
48
|
case
|
|
44
49
|
when deleted.nil? && block_given?
|
|
@@ -349,8 +354,7 @@ module CSL
|
|
|
349
354
|
|
|
350
355
|
const_set(:Children, Struct.new(*names) {
|
|
351
356
|
|
|
352
|
-
|
|
353
|
-
@keys = members.map(&:to_sym).freeze
|
|
357
|
+
@keys = members.freeze
|
|
354
358
|
|
|
355
359
|
class << self
|
|
356
360
|
attr_reader :keys
|
|
@@ -424,18 +428,19 @@ module CSL
|
|
|
424
428
|
|
|
425
429
|
alias << push
|
|
426
430
|
|
|
427
|
-
#
|
|
428
|
-
#
|
|
429
|
-
#
|
|
430
|
-
# result
|
|
431
|
+
# Deletes the passed-in node; other, equal nodes are not deleted.
|
|
432
|
+
# Returns the deleted node or nil if the node is not found.
|
|
433
|
+
# If the optional code block is given,
|
|
434
|
+
# returns the result of the block if the node is not found.
|
|
431
435
|
def delete(node)
|
|
432
436
|
return nil unless node.respond_to?(:nodename)
|
|
433
437
|
|
|
434
438
|
deleted = resolve(node.nodename)
|
|
435
439
|
if deleted.kind_of?(Array)
|
|
436
|
-
|
|
440
|
+
index = deleted.index { |other| other.equal?(node) }
|
|
441
|
+
deleted = index.nil? ? nil : deleted.delete_at(index)
|
|
437
442
|
else
|
|
438
|
-
if deleted
|
|
443
|
+
if deleted.equal?(node)
|
|
439
444
|
self[node.nodename] = nil
|
|
440
445
|
else
|
|
441
446
|
deleted = nil
|
|
@@ -443,7 +448,7 @@ module CSL
|
|
|
443
448
|
end
|
|
444
449
|
|
|
445
450
|
# Delete node from ordered list as well
|
|
446
|
-
@order.
|
|
451
|
+
@order.delete_if { |other| other.equal?(node) }
|
|
447
452
|
|
|
448
453
|
if deleted.nil? && block_given?
|
|
449
454
|
yield
|
data/lib/csl/version.rb
CHANGED
data/lib/csl.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: csl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sylvester Keil
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-10-07 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: namae
|
|
@@ -117,17 +117,8 @@ executables: []
|
|
|
117
117
|
extensions: []
|
|
118
118
|
extra_rdoc_files: []
|
|
119
119
|
files:
|
|
120
|
-
- ".document"
|
|
121
|
-
- ".github/workflows/ci.yml"
|
|
122
|
-
- ".gitignore"
|
|
123
|
-
- ".yardopts"
|
|
124
|
-
- AGPL
|
|
125
120
|
- BSDL
|
|
126
|
-
- Gemfile
|
|
127
121
|
- README.md
|
|
128
|
-
- Rakefile
|
|
129
|
-
- csl.gemspec
|
|
130
|
-
- cucumber.yml
|
|
131
122
|
- lib/csl.rb
|
|
132
123
|
- lib/csl/compatibility.rb
|
|
133
124
|
- lib/csl/date_part.rb
|
|
@@ -176,14 +167,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
176
167
|
requirements:
|
|
177
168
|
- - ">="
|
|
178
169
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
170
|
+
version: '3.1'
|
|
180
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
172
|
requirements:
|
|
182
173
|
- - ">="
|
|
183
174
|
- !ruby/object:Gem::Version
|
|
184
175
|
version: '0'
|
|
185
176
|
requirements: []
|
|
186
|
-
rubygems_version:
|
|
177
|
+
rubygems_version: 4.0.22
|
|
187
178
|
specification_version: 4
|
|
188
179
|
summary: A Ruby CSL parser and library
|
|
189
180
|
test_files: []
|
data/.github/workflows/ci.yml
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches:
|
|
5
|
-
- master
|
|
6
|
-
pull_request:
|
|
7
|
-
branches:
|
|
8
|
-
- master
|
|
9
|
-
jobs:
|
|
10
|
-
build:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
env:
|
|
13
|
-
BUNDLE_WITHOUT: debug:extra
|
|
14
|
-
strategy:
|
|
15
|
-
matrix:
|
|
16
|
-
ruby-version:
|
|
17
|
-
- 3.4
|
|
18
|
-
- 3.3
|
|
19
|
-
- 3.2
|
|
20
|
-
- 3.1
|
|
21
|
-
steps:
|
|
22
|
-
- uses: actions/checkout@v4
|
|
23
|
-
- uses: ruby/setup-ruby@v1
|
|
24
|
-
with:
|
|
25
|
-
ruby-version: ${{ matrix.ruby-version }}
|
|
26
|
-
bundler-cache: true
|
|
27
|
-
- run: bundle exec rake
|
|
28
|
-
- name: Upload coverage results
|
|
29
|
-
if: matrix.ruby-version == '3.3'
|
|
30
|
-
continue-on-error: true
|
|
31
|
-
uses: coverallsapp/github-action@v2
|
|
32
|
-
with:
|
|
33
|
-
github-token: ${{ github.token }}
|
data/.gitignore
DELETED
data/.yardopts
DELETED