<aside> 👉 Links (Block base class)

Page

BookmarkBlock

CodeBlock

EmbedBlock

Heading2Block

LinkToPageBlock

QuoteBlock

ToDoBlock

ToggleHeading3Block

Database

BreadcrumbBlock

ColumnBlock

EquationBlock

Heading3Block

NumberedListItemBlock

SyncedBlock

ToggleBlock

VideoBlock

List

BulletedListItemBlock

ColumnListBlock

FileBlock

ImageBlock

ParagraphBlock

TableOfContentsBlock

ToggleHeading1Block

Block

CalloutBlock

DividerBlock

Heading1Block

LinkPreviewBlock

PdfBlock

TemplateBlock (Deprecated)

ToggleHeading2Block

Notion Ruby Mapping Public API Reference

</aside>

1. Class methods

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

$\fbox{implemented in FileBaseBlock}$

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

b = FileBlock.new "a_url", caption: "Sample url"; b.block_json
# => {"type"=>"file", "object"=>"block", "file"=>{"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 = FileBlock.new fuo, caption: "test image"; b.block_json
# => {"type"=>"file", "object"=>"block", "file"=>{"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 FileBlock.

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

file_upload_object → FileUploadObject

$\fbox{implemented in FileBaseBlock}$

file_upload_object returns an object for FileUploadObject.

fuo = FileUploadObject fname: "test.png"
b = FileBlock.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 = FileBlock.new "a_url", caption: "Sample url"; b.url
fuo = FileUploadObject fname: "test.png"
b.file_upload_object = fuo
# => NotionRubyMapping::FileUploadObject-XXXXXXXXXXXXXXXXXXXXXXXXXX

url → String