Class: Axlsx::Filters::DateGroupItem
- Inherits:
-
Object
- Object
- Axlsx::Filters::DateGroupItem
- Defined in:
- lib/axlsx/workbook/worksheet/auto_filter/filters.rb
Overview
This collection is used to express a group of dates or times which are used in an AutoFilter criteria. Values are always written in the calendar type of the first date encountered in the filter range, so that all subsequent dates, even when formatted or represented by other calendar types, can be correctly compared for the purposes of filtering.
Constant Summary collapse
- DATE_TIME_GROUPING =
Allowed date time groupings
%w(year month day hour minute second)
Instance Attribute Summary collapse
-
#date_time_grouping ⇒ String
Grouping level This must be one of year, month, day, hour, minute or second.
-
#day ⇒ Integer
Day (1-31).
-
#hour ⇒ Integer
Hour (0..23).
-
#minute ⇒ Integer
Minute (0..59(.
-
#month ⇒ Integer
Month (1..12).
-
#second ⇒ Integer
Second (0..59).
-
#year ⇒ Integer|String
Year (4 digits).
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ DateGroupItem
constructor
Creates a new DateGroupItem instanciating the object filter should apply for grouping.
-
#to_xml_string(str = '') ⇒ Object
Serialize the object to xml.
Constructor Details
#initialize(options = {}) ⇒ DateGroupItem
Creates a new DateGroupItem instanciating the object filter should apply for grouping
158 159 160 161 162 163 164 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 158 def initialize(={}) raise ArgumentError, "You must specify a year for date time grouping" unless [:year] raise ArgumentError, "You must specify a date_time_grouping when creating a DateGroupItem for auto filter" unless [:date_time_grouping] .each do |key, value| self.send("#{key}=", value) if self.respond_to?("#{key}=") end end |
Instance Attribute Details
#date_time_grouping ⇒ String
Grouping level This must be one of year, month, day, hour, minute or second.
169 170 171 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 169 def date_time_grouping @date_time_grouping end |
#day ⇒ Integer
Day (1-31)
181 182 183 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 181 def day @day end |
#hour ⇒ Integer
Hour (0..23)
185 186 187 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 185 def hour @hour end |
#minute ⇒ Integer
Minute (0..59(
189 190 191 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 189 def minute @minute end |
#month ⇒ Integer
Month (1..12)
177 178 179 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 177 def month @month end |
#second ⇒ Integer
Second (0..59)
193 194 195 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 193 def second @second end |
#year ⇒ Integer|String
Year (4 digits)
173 174 175 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 173 def year @year end |
Instance Method Details
#to_xml_string(str = '') ⇒ Object
Serialize the object to xml
246 247 248 249 250 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 246 def to_xml_string(str = '') str << '<dateGroupItem ' instance_values.each { |key, value| str << "#{key}='#{value.to_s}' " } str << '/>' end |