Class: Axlsx::Filters::DateGroupItem

Inherits:
Object
  • Object
show all
Includes:
OptionsParser, SerializedAttributes
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

Instance Method Summary collapse

Methods included from SerializedAttributes

#declared_attributes, included, #serialized_attributes, #serialized_element_attributes

Methods included from OptionsParser

#parse_options

Constructor Details

#initialize(options = {}) ⇒ DateGroupItem

Creates a new DateGroupItem instanciating the object filter should apply for grouping

Parameters:

  • options (Hash) (defaults to: {})

    A hash of options to use when

  • [String] (Hash)

    a customizable set of options

  • [Integer|String] (Hash)

    a customizable set of options

  • [Integer] (Hash)

    a customizable set of options

Raises:

  • (ArgumentError)


148
149
150
151
152
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 148

def initialize(options={})
  raise ArgumentError,  "You must specify a year for date time grouping" unless options[:year]
  raise ArgumentError, "You must specify a date_time_grouping when creating a DateGroupItem for auto filter" unless options[:date_time_grouping]
  parse_options options
end

Instance Attribute Details

#date_time_groupingString

Grouping level This must be one of year, month, day, hour, minute or second.

Returns:

  • (String)


162
163
164
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 162

def date_time_grouping
  @date_time_grouping
end

#dayInteger

Day (1-31)

Returns:

  • (Integer)


174
175
176
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 174

def day
  @day
end

#hourInteger

Hour (0..23)

Returns:

  • (Integer)


178
179
180
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 178

def hour
  @hour
end

#minuteInteger

Minute (0..59(

Returns:

  • (Integer)


182
183
184
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 182

def minute
  @minute
end

#monthInteger

Month (1..12)

Returns:

  • (Integer)


170
171
172
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 170

def month
  @month
end

#secondInteger

Second (0..59)

Returns:

  • (Integer)


186
187
188
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 186

def second
  @second
end

#yearInteger|String

Year (4 digits)

Returns:

  • (Integer|String)


166
167
168
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 166

def year
  @year
end

Instance Method Details

#to_xml_string(str = '') ⇒ Object

Serialize the object to xml

Parameters:

  • str (String) (defaults to: '')

    The string object this serialization will be concatenated to.



239
240
241
242
243
# File 'lib/axlsx/workbook/worksheet/auto_filter/filters.rb', line 239

def to_xml_string(str = '')
  str << '<dateGroupItem '
  serialized_attributes str
  str << '/>'
end