<aside> 👉 Links (Property base class)

CheckboxProperty

DateProperty

FormulaProperty

MultiSelectProperty

PhoneNumberProperty

RollupProperty

TitleProperty

CreatedByProperty

EmailProperty

LastEditedByProperty

NumberProperty

RelationProperty

SelectProperty

UrlProperty

CreatedTimeProperty

FilesProperty

LastEditedTimeProperty

PeopleProperty

RichTextProperty

StatusProperty

Notion Ruby Mapping Public API Reference

</aside>

<aside> ℹī¸ ↑ Table of Contents

</aside>

1. Instance methods

[P] add_relation(page_id_or_json)

  1. add_relation of Page property appends a relation using page_id or json.
  2. add_relation of Database property raises StandardError
page.properties["RelationTitle"].add_relation "new_relation_page_id"
=> [{"id"=>"860753bb-6d1f-48de-9621-1fa6e0e31f82"}, {"id"=>"new_relation_page_id"}]

page.properties["RelationTitle"].add_relation({"id" => "another_new_relation_page_id"})
=> [{"id"=>"860753bb-6d1f-48de-9621-1fa6e0e31f82"}, {"id"=>"new_relation_page_id"}, {"id"=>"another_new_relation_page_id"}]

db.properties["RelationTitle"].add_relation "page_id"
# ...in `assert_page_property': add_relation can execute only Page property. (StandardError)

↑ Table of Contents

filter_contains(value) → Query

filter_contains creates a Query object for contains filter.

db.properties["CreatedByTitle"].filter_contains "a_user_id"
# => #<NotionRubyMapping::Query:0x0000000110525498 @filter={"property"=>"CreatedByTitle", "created_by"=>{"contains"=>"a_user_id"}}, @page_size=100, @sort=[], @start_cursor=nil>

### only RollupProperty (none, any, every)
db.properties["RollupTitle"].filter_contains "abc", condition: "any", another_type: "rich_text"
# => #<NotionRubyMapping::Query:0x0000000105394f30 @filter={"property"=>"RollupTitle", "any"=>{"rich_text"=>{"contains"=>"abc"}}}, @page_size=100, @sort=[], @start_cursor=nil>

↑ Table of Contents

filter_does_not_contain(value) → Query

filter_does_not_contain creates a Query object for does_not_contain filter.

db.properties["CreatedByTitle"].filter_does_not_contain "a_user_id"
=> #<NotionRubyMapping::Query:0x0000000110666b68 @filter={"property"=>"CreatedByTitle", "created_by"=>{"does_not_contain"=>"a_user_id"}}, @page_size=100, @sort=[], @start_cursor=nil>

### only RollupProperty (none, any, every)
db.properties["CreatedByTitle"].filter_does_not_contain "abc", condition: "every", another_type: "people"
# => #<NotionRubyMapping::Query:0x000000010533e888 @filter={"property"=>"RollupTitle", "every"=>{"people"=>{"does_not_contain"=>"abc"}}}, @page_size=100, @sort=[], @start_cursor=nil>

↑ Table of Contents

filter_is_empty → Query

filter_is_empty creates a Query object for is_empty filter.

db.properties["CreatedByTitle"].filter_is_empty
=> #<NotionRubyMapping::Query:0x0000000106af9ef0 @filter={"property"=>"CreatedByTitle", "created_by"=>{"is_empty"=>true}}, @page_size=100, @sort=[], @start_cursor=nil>

↑ Table of Contents

filter_is_not_empty → Query

filter_is_not_empty creates a Query object for is_not_empty filter.

db.properties["CreatedByTitle"].filter_is_not_empty
=> #<NotionRubyMapping::Query:0x00000001104b7290 @filter={"property"=>"CreatedByTitle", "created_by"=>{"is_not_empty"=>true}}, @page_size=100, @sort=[], @start_cursor=nil>

↑ Table of Contents

relation → Array, Hash

  1. relation of Page property returns array of relation page_ids.

  2. relation of Database property returns hash of relation information.

    page.properties["RelationTitle"].relation
    # => [{"id"=>"860753bb-6d1f-48de-9621-1fa6e0e31f82"}]
    
    db.properties["RelationTitle"].relation
    => {"database_id"=>"1d6b1040-a9fb-48d9-9a3d-041429816e9f", "synced_property_name"=>"Related to Sample table (Column)", "synced_property_id"=>"jZZ>"}