<aside> 👉

Links (Block base class)

Page

Block

CalloutBlock

DividerBlock

Heading1Block

LinkPreviewBlock

PdfBlock

TemplateBlock (Deprecated)

ToggleHeading2Block

Database

BookmarkBlock

CodeBlock

EmbedBlock

Heading2Block

LinkToPageBlock

QuoteBlock

ToDoBlock

ToggleHeading3Block

DataSource 🆕 

BreadcrumbBlock

ColumnBlock

EquationBlock

Heading3Block

NumberedListItemBlock

SyncedBlock

ToggleBlock

VideoBlock

List

BulletedListItemBlock

ColumnListBlock

FileBlock

ImageBlock

ParagraphBlock

TableOfContentsBlock

ToggleHeading1Block

Notion Ruby Mapping Public API Reference

</aside>

1. Class methods

self.new(url_or_fuo, caption: []) → VideoBlock

$\fbox{implemented in FileBaseBlock}$

self.new creates a VideoBlock object using a url. caption is an optional parameter. Currently, an external file url can be used.

b = VideoBlock.new "a_url", caption: "Sample url"
b.block_json
# => {"type"=>"video", "object"=>"block", "video"=>{"type"=>"external", "external"=>{"url"=>"a_url"}, "caption"=>[{"type"=>"text", "text"=>{"content"=>"Sample url", "link"=>nil}, "plain_text"=>"Sample url", "href"=>nil}]}}

fuo = FileUploadObject fname: "test.png"
b = VideoBlock.new fuo, caption: "test image"; b.block_json
# => {"type"=>"video", "object"=>"block", "video"=>{"type"=>"file_upload", "file_upload"=>{"id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX"}}}

2. Instance methods

save(dry_run: false)

$\fbox{implemented in Block}$

save updates the Block object with update block API. The updated object has block information generated from the JSON response.

block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call
block.url = "<https://www.apple.com/>"
block.save
# => #<NotionRubyMapping::Block:...> # updated Block object

Block.find(id, dry_run: true) creates a shell script using Retrieve a block API for verification.

block = Block.find "899e342cec84415f9ff86225704cbb75" # Notion API call
block.url = "<https://www.apple.com/>"
block.save dry_run: true
# => 
# curl -X PATCH '<https://api.notion.com/v1/blocks/899e342cec84415f9ff86225704cbb75>' \\
#   -H 'Notion-Version: 2022-02-22' \\
#   -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
#   -H 'Content-Type: application/json' \\
#   --data '{"bookmark":{"url":"<https://www.apple.com/>"}}'

caption → RichTextArray

$\fbox{implemented in FileBaseBlock}$

caption returns the RichTextArray object for VideoBlock.

b = VideoBlock.new "a_url", caption: "Sample url"
=> #<NotionRubyMapping::RichTextArray:...>

file_upload_object → FileUploadObject

$\fbox{implemented in FileBaseBlock}$

file_upload_object returns an object for FileUploadObject.

fuo = FileUploadObject fname: "test.png"
b = VideoBlock.new fuo, caption: "test image"; b.file_upload_object
# => NotionRubyMapping::FileUploadObject-XXXXXXXXXXXXXXXXXXXXXXXXXX

file_upload_object=(file_upload_object)

$\fbox{implemented in FileBaseBlock}$

file_upload_object= updates a FileUploadObject for FileBlock and sets update_block_key of the payload object.

b = VideoBlock.new "a_url", caption: "Sample url"; b.url
fuo = FileUploadObject fname: "test.png"
b.file_upload_object = fuo
# => NotionRubyMapping::FileUploadObject-XXXXXXXXXXXXXXXXXXXXXXXXXX

url → String

$\fbox{implemented in FileBaseBlock}$