Class: Notion::Blocks::Chunker
- Inherits:
-
Object
- Object
- Notion::Blocks::Chunker
- Defined in:
- lib/notion/blocks/chunker.rb
Constant Summary collapse
- MAX_CHILDREN =
100- MAX_BYTES =
500_000- MAX_BLOCKS =
1000
Instance Method Summary collapse
- #chunks ⇒ Object
-
#initialize(children, on_oversize: :split) ⇒ Chunker
constructor
A new instance of Chunker.
Constructor Details
#initialize(children, on_oversize: :split) ⇒ Chunker
Returns a new instance of Chunker.
12 13 14 15 16 17 |
# File 'lib/notion/blocks/chunker.rb', line 12 def initialize(children, on_oversize: :split) raise ArgumentError, "on_oversize must be :split or :raise" unless %i[split raise].include?(on_oversize) @on_oversize = on_oversize @children = transform(children) end |
Instance Method Details
#chunks ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/notion/blocks/chunker.rb', line 19 def chunks @children.each_with_object([[]]) do |child, groups| raise ValidationError, "a block exceeds the 500KB request limit" if bytes([child]) > MAX_BYTES raise ValidationError, "a block tree exceeds the 1000 block limit" if block_count(child) > MAX_BLOCKS groups << [] if full?(groups.last, child) groups.last << child end.reject(&:empty?) end |