aixm 1.3.1 → 1.3.2
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +7 -0
- data/lib/aixm/concerns/xml_builder.rb +4 -4
- data/lib/aixm/document.rb +6 -3
- data/lib/aixm/feature/generic.rb +1 -1
- data/lib/aixm/refinements.rb +21 -22
- data/lib/aixm/schedule/date.rb +6 -2
- data/lib/aixm/schedule/day.rb +35 -4
- data/lib/aixm/version.rb +1 -1
- data.tar.gz.sig +1 -2
- metadata +3 -3
- metadata.gz.sig +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fa3066c9e65afaa76e4327da9a11a42c27f1baad1a712de3fee6400765c0b6a
|
4
|
+
data.tar.gz: 6c0d4261d076fddc05b150b5c1851a61ffa011ff6b8f15f254492987e4f80fb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88bcefbea10f86f6f5b3c483f546197409dcd06b8751b8f0ced1d2e3730e27559a248486015a0673685d24afb04f306df4ea0acf3f14fe5347c3c9f89d72e23c
|
7
|
+
data.tar.gz: 067ee1c2ffc6b251a9063982ee4e5d07492746aa0d780be020b46f549868992397348054c09d08704bb5e4744a0a78da8936ee739870822029a8eb32776c10c0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
Nothing so far
|
4
4
|
|
5
|
+
## 1.3.2
|
6
|
+
|
7
|
+
#### Changes
|
8
|
+
* Add `#pred` (aliased `#prev`) and `#succ` (alias `#next`) to both
|
9
|
+
`AIXM::Date` and `AIXM::Day` in order to use them for iterations
|
10
|
+
* Pretty print generic features only to prevent segfaults on large documents
|
11
|
+
|
5
12
|
## 1.3.1
|
6
13
|
|
7
14
|
#### Changes
|
@@ -10,11 +10,11 @@ module AIXM
|
|
10
10
|
# @yield [Nokogiri::XML::Builder]
|
11
11
|
# @return [Nokogiri::XML::DocumentFragment]
|
12
12
|
def build_fragment
|
13
|
-
Nokogiri::XML::DocumentFragment.parse('').tap do |
|
14
|
-
Nokogiri::XML::Builder.with(
|
15
|
-
yield
|
13
|
+
Nokogiri::XML::DocumentFragment.parse('').tap do |fragment|
|
14
|
+
Nokogiri::XML::Builder.with(fragment) do |builder|
|
15
|
+
yield builder
|
16
16
|
end
|
17
|
-
|
17
|
+
fragment.elements.each { _1.add_next_sibling("\n") } # add newline between tags on top level
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
data/lib/aixm/document.rb
CHANGED
@@ -168,10 +168,13 @@ module AIXM
|
|
168
168
|
effective: @effective_at.xmlschema,
|
169
169
|
expiration: (@expiration_at&.xmlschema if AIXM.ofmx?)
|
170
170
|
}.compact
|
171
|
-
Nokogiri::XML::Builder.new do |builder|
|
171
|
+
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |builder|
|
172
172
|
builder.send(AIXM.schema(:root), meta) do |root|
|
173
|
+
root.text("\n")
|
173
174
|
AIXM::Concerns::Memoize.method :to_uid do
|
174
|
-
|
175
|
+
# TODO: indent is lost if added directly to the builder
|
176
|
+
# features.each { _1.add_to(root) }
|
177
|
+
features.each { root << _1.to_xml.indent(2) }
|
175
178
|
end
|
176
179
|
if AIXM.ofmx? && AIXM.config.mid
|
177
180
|
AIXM::PayloadHash::Mid.new(builder.doc).insert_mid
|
@@ -182,7 +185,7 @@ module AIXM
|
|
182
185
|
|
183
186
|
# @return [String] AIXM or OFMX markup
|
184
187
|
def to_xml
|
185
|
-
document.
|
188
|
+
document.to_xml
|
186
189
|
end
|
187
190
|
end
|
188
191
|
end
|
data/lib/aixm/feature/generic.rb
CHANGED
data/lib/aixm/refinements.rb
CHANGED
@@ -129,33 +129,32 @@ module AIXM
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
# @!method
|
133
|
-
#
|
132
|
+
# @!method to_pretty_xml
|
133
|
+
# Pretty printing alternative of +to_xml+
|
134
134
|
#
|
135
135
|
# @example
|
136
136
|
# xml = <<~END
|
137
|
-
# <
|
137
|
+
# <aaa></aaa>
|
138
138
|
# <bbb/>
|
139
|
-
#
|
140
|
-
#
|
141
|
-
#
|
142
|
-
# </
|
139
|
+
# <ccc foo="bar" >
|
140
|
+
# <ddd>
|
141
|
+
# </ddd>
|
142
|
+
# </ccc>
|
143
143
|
# END
|
144
|
-
# Nokogiri.
|
145
|
-
# # =>
|
146
|
-
# <
|
147
|
-
#
|
148
|
-
# <
|
149
|
-
#
|
150
|
-
#
|
151
|
-
#
|
152
|
-
#
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
PRETTY_XSLT.transform(self)
|
144
|
+
# Nokogiri::XML::DocumentFragment.parse(xml).to_pretty_xml
|
145
|
+
# # => <aaa/>
|
146
|
+
# <bbb/>
|
147
|
+
# <ccc foo="bar">
|
148
|
+
# <ddd/>
|
149
|
+
# </ccc>
|
150
|
+
#
|
151
|
+
# @note This is a refinement for +Nokogiri::XML::DocumentFragment+
|
152
|
+
# @return [String]
|
153
|
+
refine Nokogiri::XML::DocumentFragment do
|
154
|
+
def to_pretty_xml
|
155
|
+
builder = Nokogiri::XML::Builder.new
|
156
|
+
builder.DocumentFragment { _1 << self.to_html }
|
157
|
+
AIXM::Refinements::PRETTY_XSLT.transform(builder.doc).at_css('DocumentFragment').children.map(&:to_xml).join("\n")
|
159
158
|
end
|
160
159
|
end
|
161
160
|
|
data/lib/aixm/schedule/date.rb
CHANGED
@@ -84,16 +84,20 @@ module AIXM
|
|
84
84
|
end
|
85
85
|
|
86
86
|
# Create new date one day prior to this one.
|
87
|
-
|
87
|
+
#
|
88
|
+
# @return [AIXM::Schedule::Date]
|
89
|
+
def pred
|
88
90
|
self.class.new(date.prev_day.to_s.sub(/^-/, '')).at(year: (YEARLESS_YEAR if yearless?))
|
89
91
|
end
|
92
|
+
alias_method :prev, :pred
|
90
93
|
|
91
94
|
# Create new date one day after this one.
|
92
95
|
#
|
93
96
|
# @return [AIXM::Schedule::Date]
|
94
|
-
def
|
97
|
+
def succ
|
95
98
|
self.class.new(date.next_day).at(year: (YEARLESS_YEAR if yearless?))
|
96
99
|
end
|
100
|
+
alias_method :next, :succ
|
97
101
|
|
98
102
|
# Calculate difference in days between two dates.
|
99
103
|
#
|
data/lib/aixm/schedule/day.rb
CHANGED
@@ -13,8 +13,8 @@ module AIXM
|
|
13
13
|
include AIXM::Concerns::HashEquality
|
14
14
|
include Comparable
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
WEEKDAYS = %i(sunday monday tuesday wednesday thursday friday saturday).freeze
|
17
|
+
DAYS = (WEEKDAYS + %i(workday day_preceding_workday day_following_workday holiday day_preceding_holiday day_following_holiday any)).freeze
|
18
18
|
|
19
19
|
# Day of the week or special named day
|
20
20
|
#
|
@@ -31,7 +31,7 @@ module AIXM
|
|
31
31
|
self.day = day
|
32
32
|
when Integer
|
33
33
|
fail ArgumentError unless day.between?(0, 6)
|
34
|
-
self.day =
|
34
|
+
self.day = WEEKDAYS[day]
|
35
35
|
else
|
36
36
|
fail ArgumentError
|
37
37
|
end
|
@@ -44,10 +44,37 @@ module AIXM
|
|
44
44
|
day.to_s.gsub('_', ' ')
|
45
45
|
end
|
46
46
|
|
47
|
+
# Symbol used to initialize this day
|
48
|
+
#
|
49
|
+
# @return [Symbol]
|
50
|
+
def to_sym
|
51
|
+
day.to_s.to_sym
|
52
|
+
end
|
53
|
+
|
47
54
|
def inspect
|
48
55
|
%Q(#<#{self.class} #{to_s}>)
|
49
56
|
end
|
50
57
|
|
58
|
+
# Create new day one day prior to this one.
|
59
|
+
#
|
60
|
+
# @return [AIXM::Schedule::Day]
|
61
|
+
def pred
|
62
|
+
return self if any?
|
63
|
+
fail(TypeError, "can't iterate from #{day}") unless wday
|
64
|
+
self.class.new(WEEKDAYS[wday.pred % 7])
|
65
|
+
end
|
66
|
+
alias_method :prev, :pred
|
67
|
+
|
68
|
+
# Create new day one day after this one.
|
69
|
+
#
|
70
|
+
# @return [AIXM::Schedule::Day]
|
71
|
+
def succ
|
72
|
+
return self if any?
|
73
|
+
fail(TypeError, "can't iterate from #{day}") unless wday
|
74
|
+
self.class.new(WEEKDAYS[wday.succ % 7])
|
75
|
+
end
|
76
|
+
alias_method :next, :succ
|
77
|
+
|
51
78
|
# Whether two days are equal.
|
52
79
|
#
|
53
80
|
# @return [Boolean]
|
@@ -71,7 +98,7 @@ module AIXM
|
|
71
98
|
#
|
72
99
|
# @return [Boolean]
|
73
100
|
def sortable?
|
74
|
-
|
101
|
+
WEEKDAYS.include? day
|
75
102
|
end
|
76
103
|
|
77
104
|
# Whether this schedule day falls within the given range of schedule
|
@@ -104,6 +131,10 @@ module AIXM
|
|
104
131
|
fail ArgumentError unless DAYS.include? @day
|
105
132
|
end
|
106
133
|
|
134
|
+
def wday
|
135
|
+
WEEKDAYS.index(day.to_sym)
|
136
|
+
end
|
137
|
+
|
107
138
|
# @note Necessary to use this class in Range.
|
108
139
|
def <=>(other)
|
109
140
|
DAYS.index(day) <=> DAYS.index(other.day) || day.to_s <=> other.to_s
|
data/lib/aixm/version.rb
CHANGED
data.tar.gz.sig
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
��
|
2
|
-
滺P~��[�9�z'�:������w3w�41�S�/0�Н$f�t��w;�m�O[�l�ϭ�ώK�Wy��z6�t���L��3�����3xjB��d�!}P�9�hQe�-���%�*4��֎�_B��Ku�'Y���5�K��)4FX�}�����&���0�PR����B�ՠ�B32�cZ���ӎA8v^���w��Ӎ�����ɹ��M�7|&6;�%7\���4n�M��!�O����r�
|
1
|
+
����mL��h\S��g���o>;i��w%*�Uk��R��0��]Fl�D����l�w��f�i�Z�,��9�`�6w�$@*�3����H������{�Ut���VWu�l���~N��ݥzh�=l�簣�n"G���dYh�,w�_�E���v�2�^m�<XZ��o6�$���ųQ9��"㗨�;���������Ow�]�cD�2�j�Ts��f�u%�S�����1�D*O?��q��P)C4̈t��Z��
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aixm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Schwyn
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
kAyiRqgxF4dJviwtqI7mZIomWL63+kXLgjOjMe1SHxfIPo/0ji6+r1p4KYa7o41v
|
30
30
|
fwIwU1MKlFBdsjkd
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2022-11-
|
32
|
+
date: 2022-11-18 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: nokogiri
|
@@ -312,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
312
312
|
- !ruby/object:Gem::Version
|
313
313
|
version: '0'
|
314
314
|
requirements: []
|
315
|
-
rubygems_version: 3.3.
|
315
|
+
rubygems_version: 3.3.26
|
316
316
|
signing_key:
|
317
317
|
specification_version: 4
|
318
318
|
summary: Builder for AIXM/OFMX aeronautical information
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
sc�8����\~а�
|
2
|
+
�V�%���=�4
|