Class: NotionRubyMapping::DateBaseProperty
- Includes:
- IsEmptyIsNotEmpty
- Defined in:
- lib/notion_ruby_mapping/properties/date_base_property.rb
Overview
Date base property (date, created_time, last_edited_time, formula)
Direct Known Subclasses
CreatedTimeProperty, DateProperty, FormulaProperty, LastEditedTimeProperty, RollupProperty
Instance Attribute Summary
Attributes inherited from Property
Class Method Summary collapse
-
.date_from_obj(obj) ⇒ Date?
Iso8601 format string.
- .start_end_time(date) ⇒ Object
-
.value_str(obj, start_time: false, end_time: false) ⇒ String?
Iso8601 format string.
Instance Method Summary collapse
-
#filter_after(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_before(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_does_not_equal(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_equals(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_next_month(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_next_week(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_next_year(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_on_or_after(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_on_or_before(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_past_month(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_past_week(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#filter_past_year(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Generated Query object.
-
#value_str(obj, start_time: false, end_time: false) ⇒ String?
Iso8601 format string.
Methods included from IsEmptyIsNotEmpty
#filter_is_empty, #filter_is_not_empty
Methods inherited from Property
#assert_database_property, #assert_page_property, #clear_will_update, create_from_json, #database?, #initialize, #make_filter_query, #new_name=, #page?, #property_schema_json, #property_values_json, #remove, #type, #update_from_json, #update_property_schema_json
Constructor Details
This class inherits a constructor from NotionRubyMapping::Property
Class Method Details
.date_from_obj(obj) ⇒ Date?
Returns iso8601 format string.
42 43 44 45 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 42 def self.date_from_obj(obj) str = value_str obj Date.parse str if str end |
.start_end_time(date) ⇒ Object
34 35 36 37 38 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 34 def self.start_end_time(date) ds = date.iso8601 tz = Time.now.strftime "%:z" %w[00:00:00 23:59:59].map {|t| [ds, "T", t, tz].join("") } end |
.value_str(obj, start_time: false, end_time: false) ⇒ String?
Returns iso8601 format string.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 12 def self.value_str(obj, start_time: false, end_time: false) case obj when Date tz = Time.now.strftime "%:z" ds = obj.iso8601 if start_time "#{ds}T00:00:00#{tz}" elsif end_time "#{ds}T23:59:59#{tz}" else ds end when Time obj.strftime("%Y-%m-%dT%H:%M:%S%:z") when DateTime obj.iso8601 else obj end end |
Instance Method Details
#filter_after(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
94 95 96 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 94 def filter_after(date, rollup = nil, rollup_type = nil) make_filter_query "after", value_str(date, end_time: true), rollup, rollup_type end |
#filter_before(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
86 87 88 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 86 def filter_before(date, rollup = nil, rollup_type = nil) make_filter_query "before", value_str(date, start_time: true), rollup, rollup_type end |
#filter_does_not_equal(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 68 def filter_does_not_equal(date, rollup = nil, rollup_type = nil) if date.is_a? Date start_date, end_date = self.class.start_end_time date if rollup filter_before(start_date, rollup, rollup_type) .or(filter_after(end_date, rollup, rollup_type)) else filter_before(start_date).or(filter_after(end_date)) end else make_filter_query "does_not_equal", value_str(date), rollup, rollup_type end end |
#filter_equals(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 51 def filter_equals(date, rollup = nil, rollup_type = nil) if date.is_a? Date start_date, end_date = self.class.start_end_time date if rollup filter_after(start_date, rollup, rollup_type) .and(filter_before(end_date, rollup, rollup_type)) else filter_after(start_date).and(filter_before end_date) end else make_filter_query "equals", value_str(date), rollup, rollup_type end end |
#filter_next_month(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
150 151 152 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 150 def filter_next_month(rollup = nil, rollup_type = nil) make_filter_query "next_month", {}, rollup, rollup_type end |
#filter_next_week(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
142 143 144 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 142 def filter_next_week(rollup = nil, rollup_type = nil) make_filter_query "next_week", {}, rollup, rollup_type end |
#filter_next_year(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
158 159 160 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 158 def filter_next_year(rollup = nil, rollup_type = nil) make_filter_query "next_year", {}, rollup, rollup_type end |
#filter_on_or_after(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
110 111 112 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 110 def filter_on_or_after(date, rollup = nil, rollup_type = nil) make_filter_query "on_or_after", value_str(date, start_time: true), rollup, rollup_type end |
#filter_on_or_before(date, rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
102 103 104 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 102 def filter_on_or_before(date, rollup = nil, rollup_type = nil) make_filter_query "on_or_before", value_str(date, end_time: true), rollup, rollup_type end |
#filter_past_month(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
126 127 128 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 126 def filter_past_month(rollup = nil, rollup_type = nil) make_filter_query "past_month", {}, rollup, rollup_type end |
#filter_past_week(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
118 119 120 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 118 def filter_past_week(rollup = nil, rollup_type = nil) make_filter_query "past_week", {}, rollup, rollup_type end |
#filter_past_year(rollup = nil, rollup_type = nil) ⇒ NotionRubyMapping::Query
Returns generated Query object.
134 135 136 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 134 def filter_past_year(rollup = nil, rollup_type = nil) make_filter_query "past_year", {}, rollup, rollup_type end |
#value_str(obj, start_time: false, end_time: false) ⇒ String?
Returns iso8601 format string.
164 165 166 |
# File 'lib/notion_ruby_mapping/properties/date_base_property.rb', line 164 def value_str(obj, start_time: false, end_time: false) self.class.value_str(obj, start_time: start_time, end_time: end_time) end |