Class: NotionRubyMapping::DateProperty

Inherits:
DateBaseProperty show all
Defined in:
lib/notion_ruby_mapping/date_property.rb

Constant Summary collapse

TYPE =
"date"

Instance Attribute Summary

Attributes inherited from Property

#name, #will_update

Instance Method Summary collapse

Methods inherited from DateBaseProperty

#filter_after, #filter_before, #filter_does_not_equal, #filter_equals, #filter_next_month, #filter_next_week, #filter_next_year, #filter_on_or_after, #filter_on_or_before, #filter_past_month, #filter_past_week, #filter_past_year, #value_str

Methods included from IsEmptyIsNotEmpty

#filter_is_empty, #filter_is_not_empty

Methods inherited from Property

create_from_json, #make_filter_query, #type

Constructor Details

#initialize(name, json: nil, start_date: nil, end_date: nil, time_zone: nil) ⇒ DateProperty

Returns a new instance of DateProperty.

Parameters:

  • name (String)
  • json (Hash) (defaults to: nil)
  • multi_select (Array)


10
11
12
13
14
15
# File 'lib/notion_ruby_mapping/date_property.rb', line 10

def initialize(name, json: nil, start_date: nil, end_date: nil, time_zone: nil)
  super(name, json: json)
  @end_date = end_date
  @start_date = start_date || end_date
  @time_zone = time_zone
end

Instance Method Details

#create_jsonHash

Returns created json.

Returns:

  • (Hash)

    created json



18
19
20
21
22
23
24
25
26
# File 'lib/notion_ruby_mapping/date_property.rb', line 18

def create_json
  if @end_date
    {"date" => {"start" => value_str(@start_date || @end_date), "end" => value_str(@end_date)}}
  elsif @start_date
    {"date" => {"start" => value_str(@start_date)}}
  else
    {"date" => @json || {}}
  end
end

#end_date=(end_date) ⇒ Array?

Returns settled array.

Parameters:

  • multi_select (Hash)

Returns:

  • (Array, nil)

    settled array



38
39
40
41
42
# File 'lib/notion_ruby_mapping/date_property.rb', line 38

def end_date=(end_date)
  @will_update = true
  @end_date = end_date
  @end_date = nil if @start_date.class != @end_date.class || @start_date > @end_date
end

#start_date=(start_date) ⇒ Array?

Returns settled array.

Parameters:

  • multi_select (Hash)

Returns:

  • (Array, nil)

    settled array



30
31
32
33
34
# File 'lib/notion_ruby_mapping/date_property.rb', line 30

def start_date=(start_date)
  @will_update = true
  @start_date = start_date
  @end_date = nil if @start_date.class != @end_date.class || @start_date > @end_date
end