notion_rails 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b73231a083c06cfc250557a99ad2fb590f704368e301d7c9a59053b03835fcd
4
- data.tar.gz: 7e2c59c2aa19e4977daa97ae3eef11c829e2322264bd940f0248221e551952d7
3
+ metadata.gz: 3eca01ee926a98e214454e4329988d1e383fafbd21a9b77fc3bbcbcb907e66c5
4
+ data.tar.gz: c900f19f3f6c0e8eac48b1890347a8b7305b688a7e77e754c3a7e5a603e45117
5
5
  SHA512:
6
- metadata.gz: f5643d4e2204fe42e2691c99d9db2ab980fee60e6f21428e75f937a144870b599a64af429fa7488bde0e8ba83db330645330b1eff271eb6f767f8866a64ab573
7
- data.tar.gz: 88863038b9711c56a55e96e94bb39e681742e7540ab1a62c4535743eca0c6f8bc751366190c459e8aabdc4923dcf5da34775167b8fb777d66d0524ccd7e2c12e
6
+ metadata.gz: 93b528ac174dbf02dc3ff4ae6ac8a56aaa2ab4b58e38657ff4832bd47700c4e59ca3da0b98a0c33dd1e01f05c674d018d50b77489831bef9c4c9882df334f665
7
+ data.tar.gz: 0d7f23fe9ebaecaed6bb83381d899332459123a3ae07f10ffc6cd2c4dab98b00dde236a330617ce8f23203e54bf81822faa48a2bc7d1c5ced987ac456923238a
@@ -52,7 +52,7 @@ module NotionRails
52
52
 
53
53
  def get_article(id)
54
54
  base_page = NotionRails::BasePage.new(__get_page(id))
55
- base_blocks = NotionRails.config.cache_store.fetch(id) { get_blocks(id) }
55
+ base_blocks = get_blocks(id)
56
56
  NotionRails::Page.new(base_page, base_blocks)
57
57
  end
58
58
 
@@ -61,6 +61,7 @@ module NotionRails
61
61
  parent_list_block_index = nil
62
62
  results = []
63
63
  blocks['results'].each_with_index do |block, index|
64
+ block = refresh_block(block['id']) if refresh_image?(block)
64
65
  base_block = NotionRails::BaseBlock.new(block)
65
66
  base_block.children = get_blocks(base_block.id) if base_block.has_children
66
67
  # Notion returns same list items as different blocks so we have to do some processing to have them be related
@@ -86,6 +87,14 @@ module NotionRails
86
87
  results
87
88
  end
88
89
 
90
+ def refresh_image?(data)
91
+ return false unless data['type'] == 'image'
92
+ return false unless data.dig('image', 'type') == 'file'
93
+
94
+ expiry_time = data.dig('image', 'file', 'expiry_time')
95
+ expiry_time.to_datetime.past?
96
+ end
97
+
89
98
  private
90
99
 
91
100
  def __get_articles(tag: nil, slug: nil, page_size: 10)
@@ -106,7 +115,15 @@ module NotionRails
106
115
  end
107
116
 
108
117
  def __get_blocks(id)
109
- @client.block_children(block_id: id)
118
+ NotionRails.config.cache_store.fetch(id) { @client.block_children(block_id: id) }
119
+ end
120
+
121
+ def __get_block(id)
122
+ @client.block(block_id: id)
123
+ end
124
+
125
+ def refresh_block(id)
126
+ __get_block(id)
110
127
  end
111
128
  end
112
129
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NotionRails
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
data/lib/notion_rails.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support/all'
3
4
  require 'notion_rails/renderers'
4
5
  require 'notion_rails/base_block'
5
6
  require 'notion_rails/base_page'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notion_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillermo Aguirre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-18 00:00:00.000000000 Z
11
+ date: 2024-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview