notion_ruby_mapping 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -14
  3. data/examples/change_title.md +1 -1
  4. data/examples/renumbering_pages.md +3 -3
  5. data/examples/set_icon_to_all_icon_unsettled_pages.md +4 -4
  6. data/lib/notion_ruby_mapping/blocks/base.rb +11 -13
  7. data/lib/notion_ruby_mapping/blocks/block.rb +67 -487
  8. data/lib/notion_ruby_mapping/blocks/bookmark_block.rb +11 -0
  9. data/lib/notion_ruby_mapping/blocks/breadcrumb_block.rb +19 -0
  10. data/lib/notion_ruby_mapping/blocks/bulleted_list_item_block.rb +11 -0
  11. data/lib/notion_ruby_mapping/blocks/callout_block.rb +82 -0
  12. data/lib/notion_ruby_mapping/blocks/child_base_block.rb +21 -0
  13. data/lib/notion_ruby_mapping/blocks/child_database_block.rb +11 -0
  14. data/lib/notion_ruby_mapping/blocks/child_page_block.rb +11 -0
  15. data/lib/notion_ruby_mapping/blocks/code_block.rb +50 -0
  16. data/lib/notion_ruby_mapping/blocks/column_block.rb +29 -0
  17. data/lib/notion_ruby_mapping/blocks/column_list_block.rb +33 -0
  18. data/lib/notion_ruby_mapping/blocks/database.rb +7 -1
  19. data/lib/notion_ruby_mapping/blocks/divider_block.rb +19 -0
  20. data/lib/notion_ruby_mapping/blocks/embed_block.rb +11 -0
  21. data/lib/notion_ruby_mapping/blocks/equation_block.rb +43 -0
  22. data/lib/notion_ruby_mapping/blocks/file_base_block.rb +50 -0
  23. data/lib/notion_ruby_mapping/blocks/file_block.rb +11 -0
  24. data/lib/notion_ruby_mapping/blocks/heading1_block.rb +18 -0
  25. data/lib/notion_ruby_mapping/blocks/heading2_block.rb +18 -0
  26. data/lib/notion_ruby_mapping/blocks/heading3_block.rb +18 -0
  27. data/lib/notion_ruby_mapping/blocks/image_block.rb +11 -0
  28. data/lib/notion_ruby_mapping/blocks/link_preview_block.rb +16 -0
  29. data/lib/notion_ruby_mapping/blocks/link_to_page_block.rb +40 -0
  30. data/lib/notion_ruby_mapping/blocks/list.rb +2 -3
  31. data/lib/notion_ruby_mapping/blocks/numbered_list_item_block.rb +11 -0
  32. data/lib/notion_ruby_mapping/blocks/page.rb +6 -0
  33. data/lib/notion_ruby_mapping/blocks/paragraph_block.rb +11 -0
  34. data/lib/notion_ruby_mapping/blocks/pdf_block.rb +11 -0
  35. data/lib/notion_ruby_mapping/blocks/quote_block.rb +11 -0
  36. data/lib/notion_ruby_mapping/blocks/synced_block.rb +44 -0
  37. data/lib/notion_ruby_mapping/blocks/table_block.rb +50 -0
  38. data/lib/notion_ruby_mapping/blocks/table_of_contents_block.rb +34 -0
  39. data/lib/notion_ruby_mapping/blocks/table_row_block.rb +34 -0
  40. data/lib/notion_ruby_mapping/blocks/template_block.rb +34 -0
  41. data/lib/notion_ruby_mapping/blocks/text_sub_block_color_base_block.rb +45 -0
  42. data/lib/notion_ruby_mapping/blocks/to_do_block.rb +42 -0
  43. data/lib/notion_ruby_mapping/blocks/toggle_block.rb +11 -0
  44. data/lib/notion_ruby_mapping/blocks/toggle_heading1_block.rb +11 -0
  45. data/lib/notion_ruby_mapping/blocks/toggle_heading2_block.rb +11 -0
  46. data/lib/notion_ruby_mapping/blocks/toggle_heading3_block.rb +11 -0
  47. data/lib/notion_ruby_mapping/blocks/url_base_block.rb +34 -0
  48. data/lib/notion_ruby_mapping/blocks/url_caption_base_block.rb +46 -0
  49. data/lib/notion_ruby_mapping/blocks/video_block.rb +11 -0
  50. data/lib/notion_ruby_mapping/controllers/notion_cache.rb +26 -20
  51. data/lib/notion_ruby_mapping/controllers/payload.rb +32 -18
  52. data/lib/notion_ruby_mapping/controllers/query.rb +1 -1
  53. data/lib/notion_ruby_mapping/controllers/rich_text_array.rb +13 -2
  54. data/lib/notion_ruby_mapping/objects/rich_text_object.rb +2 -5
  55. data/lib/notion_ruby_mapping/properties/created_by_property.rb +1 -0
  56. data/lib/notion_ruby_mapping/properties/date_base_property.rb +24 -11
  57. data/lib/notion_ruby_mapping/properties/email_property.rb +1 -2
  58. data/lib/notion_ruby_mapping/properties/files_property.rb +1 -1
  59. data/lib/notion_ruby_mapping/properties/formula_property.rb +1 -1
  60. data/lib/notion_ruby_mapping/properties/multi_select_property.rb +2 -0
  61. data/lib/notion_ruby_mapping/properties/phone_number_property.rb +0 -1
  62. data/lib/notion_ruby_mapping/properties/select_property.rb +2 -1
  63. data/lib/notion_ruby_mapping/properties/url_property.rb +0 -2
  64. data/lib/notion_ruby_mapping/version.rb +1 -1
  65. data/lib/notion_ruby_mapping.rb +8 -1
  66. metadata +41 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59ade8b97253e1f77c438f1f337c55d8b642fed859e4434de98d6860610d84e7
4
- data.tar.gz: 4703b38b13e146d2b7e55bbd1988ee6efc21b5ee65210cfcc8e304920969c538
3
+ metadata.gz: dfd02c2aeeed43efa6a45f35bcaf1173b0113e870e1432b8e39cbac8fdc2d6a4
4
+ data.tar.gz: 73768acce904d567936bde1e524d47a25649b4f74e4f275a7de8a74b3753bf8f
5
5
  SHA512:
6
- metadata.gz: 360025f3bec7e9d20a33c9183ade2b1695137d818119771d219eb7b6f5e0a00ad2bebd8da7fc147c41ee1445879ab1e51088bbd02abc6e91dd78658c8c5a8f16
7
- data.tar.gz: c9b917ce45d44cec66c09dd278119ef3ee4848f673c07c65260628250a35a6864c9de4dfccac89e2c2dc31a3df80ec52f32ed7eccd31248b018f6116c86c67b4
6
+ metadata.gz: 12c8db1f986e739ddea1d57440cdb4e422729c7aed54a1b94b3e65f71124de20cfb7be6bd276c7b143f82c8d2b627a98dfcaf6da087426cfada9c6e21c216f83
7
+ data.tar.gz: 964763d2dc6449f51c2fb0d1edae7072aec875b8936c94d4826dcffb5334db0ee1094e7a01bbecd0035586844cce5532d4e8d291c50df321a535022218b0fc7d
data/README.md CHANGED
@@ -8,6 +8,7 @@ Development note is here. → [Idea note of "notion_ruby_mapping"](https://www.n
8
8
 
9
9
  - [notion_ruby_mapping](#notion_ruby_mapping)
10
10
  - [Table of Contents](#table-of-contents)
11
+ - [0. Changes in v0.5.0](#0-changes-in-v050)
11
12
  - [1. Installation](#1-installation)
12
13
  - [2. How to use](#2-how-to-use)
13
14
  - [2.1 Create a New Integration](#21-create-a-new-integration)
@@ -19,7 +20,11 @@ Development note is here. → [Idea note of "notion_ruby_mapping"](https://www.n
19
20
  - [4. Contributing](#4-contributing)
20
21
  - [5. License](#5-license)
21
22
  - [6. Code of Conduct](#6-code-of-conduct)
22
- - [7. Acknowledgements](#7-acknowledgements)
23
+
24
+ ## 0. Changes in v0.5.0
25
+
26
+ NotionRubyMapping v.0.5.0 now supports block updates.
27
+ For efficiency, subclasses are provided under Block class. As a result, they are no longer compatible with the scripts used in v0.4.0.
23
28
 
24
29
  ## 1. Installation
25
30
 
@@ -60,6 +65,7 @@ NotionCache.instance.create_client ENV["NOTION_API_TOKEN"] # from environment
60
65
 
61
66
  1. [Database and page access sample](https://www.notion.so/hkob/Database-and-page-access-sample-d30033e707194faf995741167eb2b6f8)
62
67
  1. [Append block children sample](https://www.notion.so/hkob/Append-block-children-sample-3867910a437340be931cf7f2c06443c6)
68
+ 1. [Update block sample](https://www.notion.so/hkob/update-block-sample-5568c1c36fe84f12b83edfe2dda83028)
63
69
 
64
70
  ### 2.4. Another example code (Use case)
65
71
 
@@ -73,17 +79,17 @@ NotionCache.instance.create_client ENV["NOTION_API_TOKEN"] # from environment
73
79
 
74
80
  ## 3. ChangeLog
75
81
 
76
- - added append_block_children
77
- - added retrieve_block spec
78
- - 2022/4/29 Change directory structure, TEST_IDs are moved from env.yml to TestConnection's constants
82
+ - 2022/6/4 [v0.5.0] added subclasses of the block class and update_block API support
83
+ - 2022/5/19 [v0.4.1] added delete_block
84
+ - 2022/4/29 [v0.4.0] Change directory structure, TEST_IDs are moved from env.yml to TestConnection's constants, added retrieve_block spec, added append_block_children
79
85
  - 2022/4/27 added Base#children
80
- - 2022/3/27 create_child_page can receive a block for initialization.
81
- - 2022/3/27 properties of a created child page are automatically assigned using the parent database.
82
- - 2022/3/25 added create_child_database, update_database, add_property, rename_property and remove_property
83
- - 2022/3/17 added template_mention objects, tools/an command
84
- - 2022/3/16 added database.create_child_page and base.save instead of base.update/create
86
+ - 2022/3/27 [v0.3.3] create_child_page can receive a block for initialization.
87
+ - 2022/3/27 [v0.3.2] properties of a created child page are automatically assigned using the parent database.
88
+ - 2022/3/25 [v0.3.0] added create_child_database, update_database, add_property, rename_property and remove_property
89
+ - 2022/3/17 [v0.2.3] added template_mention objects, tools/an command
90
+ - 2022/3/16 [v0.2.2] added database.create_child_page and base.save instead of base.update/create
85
91
  - 2022/3/15 Fixed not to reload from API when all contents are loaded
86
- - 2022/3/14 Exclude notion-ruby-client, update Property values, update for Notion-Version 2022-02-22
92
+ - 2022/3/14 [v0.2.0] Exclude notion-ruby-client, update Property values, update for Notion-Version 2022-02-22
87
93
  - 2022/2/25 add_property_for_update -> assign_property, update README.md
88
94
  - 2022/2/20 add support for MultiSelectProperty
89
95
  - 2022/2/19 add support for SelectProperty
@@ -105,7 +111,3 @@ The gem is available as open source under the terms of the [MIT License](https:/
105
111
  ## 6. Code of Conduct
106
112
 
107
113
  Everyone interacting in the NotionRubyMapping project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/notion_ruby_mapping/blob/main/CODE_OF_CONDUCT.md).
108
-
109
- ## 7. Acknowledgements
110
-
111
- The code depends on [notion-ruby-client](https://github.com/orbit-love/notion-ruby-client).
@@ -23,4 +23,4 @@ page.save # API access
23
23
  print page.title # -> JKL
24
24
  ```
25
25
  ---
26
- [Return to README.md](../README.md#2-example-code)
26
+ [Return to README.md](../README.md)
@@ -12,9 +12,9 @@ db.query_database(tp.filter_is_not_empty.ascending(tp)).each.with_index(1) do |p
12
12
  end
13
13
  ```
14
14
 
15
- | After execution |
16
- |-----------------------------------------------|
15
+ | After execution |
16
+ |--------------------------------------------------|
17
17
  | ![After exuecution](../images/serial_number.png) |
18
18
 
19
19
  ---
20
- [Return to README.md](../README.md#2-example-code)
20
+ [Return to README.md](../README.md)
@@ -22,9 +22,9 @@ db.query_database.each do |page|
22
22
  end
23
23
  ```
24
24
 
25
- |Before execution|After execution|
26
- |---|---|
27
- |![Before execution](../images/pre_set_icon.png)|![After execution](../images/post_set_icon.png)|
25
+ | Before execution | After execution |
26
+ |-------------------------------------------------|-------------------------------------------------|
27
+ | ![Before execution](../images/pre_set_icon.png) | ![After execution](../images/post_set_icon.png) |
28
28
 
29
29
  ---
30
- [Return to README.md](../README.md#2-example-code)
30
+ [Return to README.md](../README.md)
@@ -10,7 +10,9 @@ module NotionRubyMapping
10
10
  def initialize(json: nil, id: nil, assign: [], parent: nil)
11
11
  @nc = NotionCache.instance
12
12
  @json = json
13
- @id = @nc.hex_id(id || json && @json["id"])
13
+ @id = @nc.hex_id(id || @json && @json["id"])
14
+ @archived = @json && @json["archived"]
15
+ @has_children = @json && @json["has_children"]
14
16
  @new_record = true unless parent.nil?
15
17
  raise StandardError, "Unknown id" if !is_a?(List) && !is_a?(Block) && @id.nil? && parent.nil?
16
18
 
@@ -36,7 +38,7 @@ module NotionRubyMapping
36
38
  when "list"
37
39
  List.new json: json
38
40
  when "block"
39
- Block.new(json: json).decode_block
41
+ Block.decode_block json
40
42
  else
41
43
  raise StandardError, json.inspect
42
44
  end
@@ -58,7 +60,7 @@ module NotionRubyMapping
58
60
 
59
61
  # @param [String] key
60
62
  # @return [NotionRubyMapping::PropertyCache, Hash] obtained Page value or PropertyCache
61
- def [](key)
63
+ def get(key)
62
64
  unless @json
63
65
  raise StandardError, "Unknown id" if @id.nil?
64
66
 
@@ -111,7 +113,7 @@ module NotionRubyMapping
111
113
  raise StandardError, "Internal file block can not append." if bt == "file"
112
114
 
113
115
  raise StandardError, "Column block can only append column_list block" unless bt == "column" &&
114
- block? && type == "columu_list"
116
+ block? && type == "column_list"
115
117
  end
116
118
 
117
119
  # @param [NotionRubyMapping::Property] klass
@@ -148,13 +150,6 @@ module NotionRubyMapping
148
150
  end
149
151
  end
150
152
 
151
- # @return [NotionRubyMapping::Block]
152
- def create_child_breadcrumb
153
- raise StandardError unless page? || (block? && can_have_children)
154
-
155
- Block.new(parent: self).breadcrumb
156
- end
157
-
158
153
  # @return [NotionRubyMapping::CreatedTimeProperty]
159
154
  def created_time
160
155
  @created_time ||= CreatedTimeProperty.new("__timestamp__", json: self["created_time"])
@@ -243,7 +238,7 @@ module NotionRubyMapping
243
238
  @new_record ? create(dry_run: true) : update(dry_run: true)
244
239
  else
245
240
  @new_record ? create : update
246
- @property_cache.clear_will_update
241
+ @property_cache.clear_will_update unless block?
247
242
  @payload.clear
248
243
  self
249
244
  end
@@ -267,7 +262,10 @@ module NotionRubyMapping
267
262
  # @param [Hash] json
268
263
  # @return [NotionRubyMapping::Base]
269
264
  def update_json(json)
270
- raise StandardError, json.inspect unless json["object"] != "error" && (@json.nil? || @json["type"] == json["type"])
265
+ unless json["object"] != "error" && (@json.nil? || @json["type"] == json["type"])
266
+ raise StandardError,
267
+ json.inspect
268
+ end
271
269
 
272
270
  @json = json
273
271
  @id = @nc.hex_id(@json["id"])