<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] self[num] → RichTextObject

self[num] delegates to included @text_object[num].

  1. self[num] of Page property returns a RichTextObject corresponded to num

  2. self[num] of Database property returns nil, because @text_object of the property is {}.

    page.properties["Title"][0]
    # => #<NotionRubyMapping::TextObject:...>
    
    db.properties["Title"][0]
    # => nil
    

↑ Table of Contents

[P] self << to → RichTextObject

self << to delegates to included @text_object << to. If the argument is a String, it is converted to RichTextObject and append to @text_object. This method returns generated or given RichTextObject.

ptp = page.properties["Title"]
ptp << "Added text"
# => #<NotionRubyMapping::TextObject:0x0000000108f79960 @options={"plain_text"=>"Added text"}, @text="Added text", @type="text", @will_update=false>
ptp.full_text
# => "MNOAdded text"

ptp << MentionObject.new("template_mention" => "now")
# => #<NotionRubyMapping::MentionObject:0x0000000109739f60 @options={"template_mention"=>"now"}, @type="mention">

↑ Table of Contents

[P] self.each { |item| ...} → self

[P] self.each → Enumerator

self.each delegates to included @text_object.each. Since RichTextProperty includes Enumerable, other Enumerable methods can be used.

ptp = page.properties["Title"]
ptp.count
# => 1
ptp.map(&:text)
# => ["MNO"]

↑ 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>