aixm 1.3.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af33154acb182006b0c9f4e048c305b2489cba22d15ee1bc9aa724ddec70ceab
4
- data.tar.gz: 44c42b5e93537e33cb2623a19a043216853664358d5c616f59aa884ee4c3e80c
3
+ metadata.gz: 6fa3066c9e65afaa76e4327da9a11a42c27f1baad1a712de3fee6400765c0b6a
4
+ data.tar.gz: 6c0d4261d076fddc05b150b5c1851a61ffa011ff6b8f15f254492987e4f80fb4
5
5
  SHA512:
6
- metadata.gz: e960a18401dd58557db667b01cb3f15683728798f3aee736fda794a18519d7b3fb99e0725154a01b564a4e35658cdde5310402fd1c2b6f2e4550880cf47db98b
7
- data.tar.gz: 2855fb8f01ca9dd515e8c05b60e79d80f4d4af77b48f1b03cc4baaadd1451810b877c92cd9364cb5d84b80f6d99ebda3b8c21d2445143f9d078a9e4e7ef2cc76
6
+ metadata.gz: 88bcefbea10f86f6f5b3c483f546197409dcd06b8751b8f0ced1d2e3730e27559a248486015a0673685d24afb04f306df4ea0acf3f14fe5347c3c9f89d72e23c
7
+ data.tar.gz: 067ee1c2ffc6b251a9063982ee4e5d07492746aa0d780be020b46f549868992397348054c09d08704bb5e4744a0a78da8936ee739870822029a8eb32776c10c0
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -2,16 +2,32 @@
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
+
12
+ ## 1.3.1
13
+
14
+ #### Changes
15
+ * Update certificate
16
+
5
17
  ## 1.3.0
6
18
 
7
19
  #### Breaking Changes
8
20
  * `Document#created_at` no longer falls back to `Document#effective_at`
21
+ * Renamed `AIXM::Date#succ` to `AIXM::Date#next`
9
22
 
10
23
  #### Additions
11
24
  * Refinement to pretty print Nokogiri XML documents
12
25
  * XML comments on features (e.g. to include raw NOTAM)
13
26
  * `Document#expiration_at` for OFMX
14
27
  * Generic features as raw XML (e.g. extracted from another AIXM/OFMX file)
28
+ * Convenience combinator `AIXM::Schedule::DateTime`
29
+ * Shortcuts `AIXM::BEGINNING_OF_DAY` and `AIXM::END_OF_DAY`
30
+ * `AIXM::Date#next` and `AIXM::Date#-`
15
31
 
16
32
  ## 1.2.1
17
33
 
data/README.md CHANGED
@@ -187,6 +187,13 @@ AIXM.config.ignored_errors = /invalid date/i
187
187
  * [VASIS](https://www.rubydoc.info/gems/aixm/AIXM/Component/VASIS.html)
188
188
  * [Vertical limit](https://www.rubydoc.info/gems/aixm/AIXM/Component/VerticalLimit.html)
189
189
 
190
+ ### Schedule
191
+
192
+ * [Date](https://www.rubydoc.info/gems/aixm/AIXM/Schedule/Date.html)
193
+ * [Day](https://www.rubydoc.info/gems/aixm/AIXM/Schedule/Day.html)
194
+ * [Time](https://www.rubydoc.info/gems/aixm/AIXM/Schedule/Time.html)
195
+ * [DateTime](https://www.rubydoc.info/gems/aixm/AIXM/Schedule/DateTime.html)
196
+
190
197
  ## Associations
191
198
 
192
199
  The different models are interwoven with [`has_many` and `has_one` associations](https://www.rubydoc.info/gems/aixm/AIXM/Association).
data/lib/aixm/classes.rb CHANGED
@@ -14,6 +14,7 @@ module AIXM
14
14
  date: 'AIXM::Schedule::Date',
15
15
  day: 'AIXM::Schedule::Day',
16
16
  time: 'AIXM::Schedule::Time',
17
+ datetime: 'AIXM::Schedule::DateTime',
17
18
  address: 'AIXM::Component::Address',
18
19
  approach_lighting: 'AIXM::Component::ApproachLighting',
19
20
  organisation: 'AIXM::Feature::Organisation',
@@ -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 |document|
14
- Nokogiri::XML::Builder.with(document) do |fragment|
15
- yield fragment
13
+ Nokogiri::XML::DocumentFragment.parse('').tap do |fragment|
14
+ Nokogiri::XML::Builder.with(fragment) do |builder|
15
+ yield builder
16
16
  end
17
- document.elements.each { _1.add_next_sibling("\n") } # add newline between tags on top level
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
- features.each { _1.add_to(root) }
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.pretty.to_xml
188
+ document.to_xml
186
189
  end
187
190
  end
188
191
  end
@@ -18,6 +18,8 @@ module AIXM
18
18
  # airspace.add_layer(AIXM.layer)
19
19
  # airspace.geometry.add_segment(AIXM.point or AIXM.arc or AIXM.border or AIXM.circle)
20
20
  #
21
+ # Timetables and remarks have to be set on the layer!
22
+ #
21
23
  # The +id+ is mandatory, however, you may omit it when initializing a new
22
24
  # airspace or assign +nil+ to an existing airspace which will generate a 8
23
25
  # character digest from +type+, +local_type+ and +name+.
@@ -59,7 +59,7 @@ module AIXM
59
59
  element['region'] ||= region if element.name.match?(/Uid$/)
60
60
  end
61
61
  end
62
- builder << decorated_fragment.to_xml
62
+ builder << decorated_fragment.to_pretty_xml
63
63
  end
64
64
  end
65
65
 
@@ -129,33 +129,32 @@ module AIXM
129
129
  end
130
130
  end
131
131
 
132
- # @!method pretty
133
- # Transform the XML document to be pretty when sending +to_xml+
132
+ # @!method to_pretty_xml
133
+ # Pretty printing alternative of +to_xml+
134
134
  #
135
135
  # @example
136
136
  # xml = <<~END
137
- # <xml><aaa> AAA </aaa>
137
+ # <aaa></aaa>
138
138
  # <bbb/>
139
- # <ccc foo="bar" >
140
- # CCC
141
- # </ccc>
142
- # </xml>
139
+ # <ccc foo="bar" >
140
+ # <ddd>
141
+ # </ddd>
142
+ # </ccc>
143
143
  # END
144
- # Nokogiri.XML(xml).pretty.to_xml
145
- # # => <?xml version=\"1.0\" encoding=\"UTF-8\"?>
146
- # <xml>
147
- # <aaa> AAA </aaa>
148
- # <bbb/>
149
- # <ccc foo="bar">
150
- # CCC
151
- # </ccc>
152
- # </xml>
153
- #
154
- # @note This is a refinement for +Nokogiri::XML::Document+
155
- # @return [Nokogiri::XML::Document]
156
- refine Nokogiri::XML::Document do
157
- def pretty
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
 
@@ -83,12 +83,28 @@ module AIXM
83
83
  self.class.new(date.strftime(yearless? ? '%m-%d' : '%F'))
84
84
  end
85
85
 
86
+ # Create new date one day prior to this one.
87
+ #
88
+ # @return [AIXM::Schedule::Date]
89
+ def pred
90
+ self.class.new(date.prev_day.to_s.sub(/^-/, '')).at(year: (YEARLESS_YEAR if yearless?))
91
+ end
92
+ alias_method :prev, :pred
93
+
86
94
  # Create new date one day after this one.
87
95
  #
88
96
  # @return [AIXM::Schedule::Date]
89
97
  def succ
90
98
  self.class.new(date.next_day).at(year: (YEARLESS_YEAR if yearless?))
91
99
  end
100
+ alias_method :next, :succ
101
+
102
+ # Calculate difference in days between two dates.
103
+ #
104
+ # @return [Integer]
105
+ def -(date)
106
+ (self.date - date.date).to_i
107
+ end
92
108
 
93
109
  # Convert date to day
94
110
  #
@@ -0,0 +1,56 @@
1
+ using AIXM::Refinements
2
+
3
+ module AIXM
4
+ module Schedule
5
+
6
+ # Datetimes suitable for schedules
7
+ #
8
+ # This class combines +AIXM::Schedule::Date+ and +AIXM::Schedule::Time+:
9
+ #
10
+ # @example
11
+ # datetime = AIXM.datetime('2022-04-20', '20:00') # => 2022-04-20 20:00
12
+ # datetime.date # => 2022-04-20
13
+ # datetime.date.class # => AIXM::Schedule::Date
14
+ # datetime.time # => 20:00
15
+ # datetime.time.class # => AIXM::Schedule::Time
16
+ class DateTime
17
+
18
+ # Date part
19
+ #
20
+ # @return [AIXM::Schedule::Date]
21
+ attr_reader :date
22
+
23
+ # Time part
24
+ #
25
+ # @return [AIXM::Schedule::Time]
26
+ attr_reader :time
27
+
28
+ # Parse the given representation of date and time.
29
+ #
30
+ # @param date [AIXM::Schedule::Date]
31
+ # @param time [AIXM::Schedule::Time]
32
+ def initialize(date, time)
33
+ fail(ArgumentError, 'invalid date') unless date.instance_of? AIXM::Schedule::Date
34
+ fail(ArgumentError, 'invalid time') unless time.instance_of? AIXM::Schedule::Time
35
+ @date, @time = date, time
36
+ end
37
+
38
+ # Human readable representation such as "2002-05-19 20:00"
39
+ #
40
+ # @return [String]
41
+ def to_s
42
+ [@date.to_s, @time.to_s].join(' ')
43
+ end
44
+
45
+ def inspect
46
+ %Q(#<#{self.class} #{to_s}>)
47
+ end
48
+
49
+ # @see Object#hash
50
+ def hash
51
+ [@date.hash, @time.hash].hash
52
+ end
53
+ end
54
+
55
+ end
56
+ end
@@ -13,8 +13,8 @@ module AIXM
13
13
  include AIXM::Concerns::HashEquality
14
14
  include Comparable
15
15
 
16
- DAYS = %i(sunday monday tuesday wednesday thursday friday saturday workday day_preceding_workday day_following_workday holiday day_preceding_holiday day_following_holiday any).freeze
17
- SORTABLE_DAYS = DAYS[0, 7]
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 = SORTABLE_DAYS[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
- SORTABLE_DAYS.include? day
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
@@ -19,6 +19,10 @@ module AIXM
19
19
  # @example
20
20
  # time = AIXM.time('21:30') # => 21:30
21
21
  # time.covered_by?(AIXM.time('20:00')..AIXM.time('02:00')) # => true
22
+ #
23
+ # ===Shortcuts:
24
+ # * +AIXM::BEGINNING_OF_DAY+ - midnight expressed as "00:00"
25
+ # * +AIXM::END_OF_DAY+ - midnight expressed as "24:00"
22
26
  class Time
23
27
  include AIXM::Concerns::HashEquality
24
28
  extend Forwardable
@@ -73,7 +77,7 @@ module AIXM
73
77
  case time_or_event
74
78
  when Symbol
75
79
  self.event = time_or_event
76
- when ::Time, DateTime
80
+ when ::Time, ::DateTime
77
81
  time_or_event = time_or_event.to_time
78
82
  set_time(time_or_event.hour, time_or_event.min, time_or_event.utc_offset)
79
83
  when /\A(\d{2}):?(\d{2}) ?([+-]\d{2}:?\d{2}|UTC)?\z/
@@ -15,10 +15,16 @@ module AIXM
15
15
  # Max flight level used to signal "no upper limit"
16
16
  UNLIMITED = z(999, :qne).freeze
17
17
 
18
+ # Day to signal "whatever date or day"
19
+ ANY_DAY = AIXM.day(:any).freeze
20
+
18
21
  # Timetable used to signal "always active"
19
22
  H24 = timetable(code: :H24).freeze
20
23
 
21
- # Day to signal "whatever date or day"
22
- ANY_DAY = AIXM.day(:any).freeze
24
+ # Time which marks midnight at beginning of the day
25
+ BEGINNING_OF_DAY = AIXM.time('00:00').freeze
26
+
27
+ # Time which marks midnight at end of the day
28
+ END_OF_DAY = AIXM.time('24:00').freeze
23
29
 
24
30
  end
data/lib/aixm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module AIXM
2
- VERSION = "1.3.0".freeze
2
+ VERSION = "1.3.2".freeze
3
3
  end
data/lib/aixm.rb CHANGED
@@ -45,6 +45,7 @@ require_relative 'aixm/p'
45
45
  require_relative 'aixm/schedule/date'
46
46
  require_relative 'aixm/schedule/day'
47
47
  require_relative 'aixm/schedule/time'
48
+ require_relative 'aixm/schedule/date_time'
48
49
 
49
50
  require_relative 'aixm/component'
50
51
  require_relative 'aixm/component/address'
data.tar.gz.sig CHANGED
@@ -1,3 +1 @@
1
- f���}fu���D`,F��E���Z�Q{FA��g\���f�,P�*��ϗ@P���;���:7���ܫ�\俭��z ��-}����ʢ挰��N��A�ь�Z*��J�xÕ�smЖ�?Wd4��.7�7�)���
2
- =sZ���/���!wv���cU�p��#�����]��yY��R �S �O�S� �����՚�af�5
3
- �?����"��8.�lCHv;���P�՗(��e.���m�v��7
1
+ ����mL��h\S��g���o>;i��w%*�Uk��R��0��]Fl�D����l�w��f�i�Z�,��9�`�6w�$@*�3����H������{Ut���VWul���~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.0
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Schwyn
@@ -10,27 +10,26 @@ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQ0wCwYDVQQDDARydWJ5
14
- MRkwFwYKCZImiZPyLGQBGRYJYml0Y2V0ZXJhMRMwEQYKCZImiZPyLGQBGRYDY29t
15
- MB4XDTIxMTEwODE0MzIyM1oXDTIyMTEwODE0MzIyM1owPzENMAsGA1UEAwwEcnVi
16
- eTEZMBcGCgmSJomT8ixkARkWCWJpdGNldGVyYTETMBEGCgmSJomT8ixkARkWA2Nv
17
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANwuD4geNdhpSVNJTtHb
18
- fmVAoPxmER4oyGgaVJSidn/OjU5PcpdypMI/WIxfvjfFizq6kQYAsJZbCr6fG+UN
19
- 2dZGMXcAC/uKQL5nYESjCPJ4IJP/SC+fiiEpxHQk7PNFoiUVRUieUZIAfHZAdnY3
20
- ye1/niW7ud0vwKIMrysKWxjgkE0Y6Af1QLzV/6brVRRC5MvHIzYJd8BiSP+wY1O8
21
- VElw1f6d90KEz2vaQfX7vCxrzIbvAnYiSvM0AIPy/zigTqpW6w3w4sQxQj81oQ9U
22
- 9vDYtQzXj0c9VrSLvb0DgiGug2cU2bDjA4L3cBE1szX4tbfo8syYqMq51/kTGDxW
23
- YNUCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJ8r
24
- wy1HraZDqg3Khf9UonMWMtJUMB0GA1UdEQQWMBSBEnJ1YnlAYml0Y2V0ZXJhLmNv
25
- bTAdBgNVHRIEFjAUgRJydWJ5QGJpdGNldGVyYS5jb20wDQYJKoZIhvcNAQEFBQAD
26
- ggEBACI7lJKRbnRjz0T4Wb9jH4SE0A2yaHAoBzj96luVDjNyoRT3688trEZS75Sg
27
- GKfChxqKncBrSpxJ0YfWbymNHfUrKhcdSifJ/TtUrTasm6LSnJYLOnLKDO3v8eL3
28
- gRTq8a5wA7Xtijx3MJEyzdeUh7N+UMKuPps/flPgH5yabUxgxrvuhrXF7Z96nrsP
29
- EOmNMTc8H7wo4BAKfuMcI/Gh2oCf+tAhr0bGsXyBikmJ6XA45mrOMgv19M1+aMpn
30
- 1+2Y1+i+4jd1B7qxIgOLxQTNIJiwE0sqU1itFfuesfgUACS7M0IV9u9Bp4hBGNEw
31
- 5JcY2h7owdMxXIvgk1oakgldFJc=
13
+ MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhydWJ5
14
+ L0RDPWJpdGNldGVyYS9EQz1jb20wHhcNMjIxMTA2MTIzNjUwWhcNMjMxMTA2MTIz
15
+ NjUwWjAjMSEwHwYDVQQDDBhydWJ5L0RDPWJpdGNldGVyYS9EQz1jb20wggEiMA0G
16
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDcLg+IHjXYaUlTSU7R235lQKD8ZhEe
17
+ KMhoGlSUonZ/zo1OT3KXcqTCP1iMX743xYs6upEGALCWWwq+nxvlDdnWRjF3AAv7
18
+ ikC+Z2BEowjyeCCT/0gvn4ohKcR0JOzzRaIlFUVInlGSAHx2QHZ2N8ntf54lu7nd
19
+ L8CiDK8rClsY4JBNGOgH9UC81f+m61UUQuTLxyM2CXfAYkj/sGNTvFRJcNX+nfdC
20
+ hM9r2kH1+7wsa8yG7wJ2IkrzNACD8v84oE6qVusN8OLEMUI/NaEPVPbw2LUM149H
21
+ PVa0i729A4IhroNnFNmw4wOC93ARNbM1+LW36PLMmKjKudf5Exg8VmDVAgMBAAGj
22
+ dzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSfK8MtR62mQ6oN
23
+ yoX/VKJzFjLSVDAdBgNVHREEFjAUgRJydWJ5QGJpdGNldGVyYS5jb20wHQYDVR0S
24
+ BBYwFIEScnVieUBiaXRjZXRlcmEuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAYG2na
25
+ ye8OE2DANQIFM/xDos/E4DaPWCJjX5xvFKNKHMCeQYPeZvLICCwyw2paE7Otwk6p
26
+ uvbg2Ks5ykXsbk5i6vxDoeeOLvmxCqI6m+tHb8v7VZtmwRJm8so0eSX0WvTaKnIf
27
+ CAn1bVUggczVdNoBXw9WAILKyw9bvh3Ft740XZrR74sd+m2pGwjCaM8hzLvrVbGP
28
+ DyYhlBeRWyQKQ0WDIsiTSRhzK8HwSTUWjvPwx7SEdIU/HZgyrk0ETObKPakVu6bH
29
+ kAyiRqgxF4dJviwtqI7mZIomWL63+kXLgjOjMe1SHxfIPo/0ji6+r1p4KYa7o41v
30
+ fwIwU1MKlFBdsjkd
32
31
  -----END CERTIFICATE-----
33
- date: 2022-05-04 00:00:00.000000000 Z
32
+ date: 2022-11-18 00:00:00.000000000 Z
34
33
  dependencies:
35
34
  - !ruby/object:Gem::Dependency
36
35
  name: nokogiri
@@ -266,6 +265,7 @@ files:
266
265
  - lib/aixm/r.rb
267
266
  - lib/aixm/refinements.rb
268
267
  - lib/aixm/schedule/date.rb
268
+ - lib/aixm/schedule/date_time.rb
269
269
  - lib/aixm/schedule/day.rb
270
270
  - lib/aixm/schedule/time.rb
271
271
  - lib/aixm/shortcuts.rb
@@ -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.13
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
Binary file