notion_rails 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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