はじめに
NotionRubyMapping 解説の第28回目です。今回は同期ブロックを管理する SyncedBlock
を解説します。今日の作業ページはこちらです。
あらかじめページを取得しておきます。
irb(main):002> page = Page.find "https://hkob.notion.site/SyncedBlock-28-73a0025194ee4113af1f6594d1c59429?pvs=4" => NotionRubyMapping::Page-73a0025194ee4113af1f6594d1c59429
SyncedBlock
SyncedBlock
はオリジナルとコピーで作成方法が異なります。まず最初にオリジナルの同期ブロックを作成します。作成時に sub_blocks を指定するとオリジナルになります。
irb(main):003> osb = page.append_block_children SyncedBlock.new(sub_blocks: [BulletedListItemBlock.new("First"), BulletedListItemBlock.new("Second"), BulletedListItemBlock.new("Third")]) => NotionRubyMapping::SyncedBlock-a376e1028d544d1a9fa4a5e8571f8508
実行した結果以下のような同期ブロックが用意されました。カーソルを合わせると赤い枠が出るので、同期ブロックであることがわかります。
この同期ブロックのコピーを作成します。コピー版の同期ブロックを作成するには、オリジナルの同期ブロックの id を block_id に渡します。
irb(main):004> csb = page.append_block_children SyncedBlock.new(block_id: osb.id) => NotionRubyMapping::SyncedBlock-ba8a8d61b9cf45f48a38c71e47279ed7
実行した結果以下のようなコピー版の同期ブロックが用意されました。カーソルを合わせると赤い枠が出るので、こちらも同期ブロックであることがわかります。上のオリジナルと同じものが表示されているのがわかります。
おわりに
今回は SyncedBlock
を解説してみました。オリジナルの同期ブロックを作成後に、そのブロックの ID を block_id として渡すことで、コピー版の同期ブロックが作成できました。
SyncedBlock のマニュアルはこちらです。