notion_ruby_mapping 0.3.3 → 0.4.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -1228
  3. data/env.yml.sample +0 -13
  4. data/lib/notion_ruby_mapping/{base.rb → blocks/base.rb} +155 -88
  5. data/lib/notion_ruby_mapping/blocks/block.rb +547 -0
  6. data/lib/notion_ruby_mapping/{database.rb → blocks/database.rb} +34 -7
  7. data/lib/notion_ruby_mapping/{list.rb → blocks/list.rb} +35 -3
  8. data/lib/notion_ruby_mapping/blocks/page.rb +71 -0
  9. data/lib/notion_ruby_mapping/{notion_cache.rb → controllers/notion_cache.rb} +128 -102
  10. data/lib/notion_ruby_mapping/{payload.rb → controllers/payload.rb} +0 -0
  11. data/lib/notion_ruby_mapping/{property_cache.rb → controllers/property_cache.rb} +21 -20
  12. data/lib/notion_ruby_mapping/{query.rb → controllers/query.rb} +26 -18
  13. data/lib/notion_ruby_mapping/{rich_text_array.rb → controllers/rich_text_array.rb} +26 -15
  14. data/lib/notion_ruby_mapping/objects/emoji_object.rb +40 -0
  15. data/lib/notion_ruby_mapping/objects/equation_object.rb +43 -0
  16. data/lib/notion_ruby_mapping/objects/file_object.rb +60 -0
  17. data/lib/notion_ruby_mapping/{mention_object.rb → objects/mention_object.rb} +11 -0
  18. data/lib/notion_ruby_mapping/{rich_text_object.rb → objects/rich_text_object.rb} +11 -0
  19. data/lib/notion_ruby_mapping/{text_object.rb → objects/text_object.rb} +0 -1
  20. data/lib/notion_ruby_mapping/{user_object.rb → objects/user_object.rb} +9 -4
  21. data/lib/notion_ruby_mapping/{checkbox_property.rb → properties/checkbox_property.rb} +3 -0
  22. data/lib/notion_ruby_mapping/{created_by_property.rb → properties/created_by_property.rb} +0 -0
  23. data/lib/notion_ruby_mapping/{created_time_property.rb → properties/created_time_property.rb} +1 -0
  24. data/lib/notion_ruby_mapping/properties/date_base_property.rb +122 -0
  25. data/lib/notion_ruby_mapping/{date_property.rb → properties/date_property.rb} +13 -0
  26. data/lib/notion_ruby_mapping/{email_property.rb → properties/email_property.rb} +1 -0
  27. data/lib/notion_ruby_mapping/{files_property.rb → properties/files_property.rb} +26 -13
  28. data/lib/notion_ruby_mapping/{formula_property.rb → properties/formula_property.rb} +4 -0
  29. data/lib/notion_ruby_mapping/{last_edited_by_property.rb → properties/last_edited_by_property.rb} +1 -0
  30. data/lib/notion_ruby_mapping/{last_edited_time_property.rb → properties/last_edited_time_property.rb} +1 -0
  31. data/lib/notion_ruby_mapping/{multi_property.rb → properties/multi_property.rb} +0 -0
  32. data/lib/notion_ruby_mapping/{multi_select_property.rb → properties/multi_select_property.rb} +2 -3
  33. data/lib/notion_ruby_mapping/{number_property.rb → properties/number_property.rb} +4 -0
  34. data/lib/notion_ruby_mapping/{people_property.rb → properties/people_property.rb} +8 -3
  35. data/lib/notion_ruby_mapping/{phone_number_property.rb → properties/phone_number_property.rb} +4 -0
  36. data/lib/notion_ruby_mapping/{property.rb → properties/property.rb} +33 -0
  37. data/lib/notion_ruby_mapping/{relation_property.rb → properties/relation_property.rb} +30 -10
  38. data/lib/notion_ruby_mapping/{rich_text_property.rb → properties/rich_text_property.rb} +0 -0
  39. data/lib/notion_ruby_mapping/{rollup_property.rb → properties/rollup_property.rb} +7 -0
  40. data/lib/notion_ruby_mapping/{select_property.rb → properties/select_property.rb} +6 -1
  41. data/lib/notion_ruby_mapping/{text_property.rb → properties/text_property.rb} +0 -0
  42. data/lib/notion_ruby_mapping/{title_property.rb → properties/title_property.rb} +0 -0
  43. data/lib/notion_ruby_mapping/{url_property.rb → properties/url_property.rb} +5 -0
  44. data/lib/notion_ruby_mapping/version.rb +1 -1
  45. data/lib/notion_ruby_mapping.rb +14 -7
  46. metadata +43 -40
  47. data/lib/notion_ruby_mapping/block.rb +0 -10
  48. data/lib/notion_ruby_mapping/date_base_property.rb +0 -75
  49. data/lib/notion_ruby_mapping/page.rb +0 -50
@@ -91,6 +91,8 @@ module NotionRubyMapping
91
91
  def make_filter_query(key, value, rollup = nil, rollup_type = nil)
92
92
  if rollup
93
93
  Query.new filter: {"property" => @name, rollup => {rollup_type => {key => value}}}
94
+ elsif rollup_type
95
+ Query.new filter: {"property" => @name, rollup_type => {key => value}}
94
96
  elsif @name == "__timestamp__"
95
97
  Query.new filter: {"timestamp" => type, type => {key => value}}
96
98
  else
@@ -169,13 +171,19 @@ module NotionRubyMapping
169
171
  ### Public announced methods
170
172
 
171
173
  # @param [String, Number] value Query value
174
+ # @param [String] rollup Rollup name
175
+ # @param [String] rollup_type Rollup type
172
176
  # @return [NotionRubyMapping::Query] generated Query object
177
+ # @see https://www.notion.so/hkob/CheckboxProperty-ac1edbdb8e264af5ad1432b522b429fd#5f07c4ebc4744986bfc99a43827349fc
173
178
  def filter_equals(value, rollup = nil, rollup_type = nil)
174
179
  make_filter_query "equals", value, rollup, rollup_type
175
180
  end
176
181
 
177
182
  # @param [String, Number] value Query value
183
+ # @param [String] rollup Rollup name
184
+ # @param [String] rollup_type Rollup type
178
185
  # @return [NotionRubyMapping::Query] generated Query object
186
+ # @see https://www.notion.so/hkob/CheckboxProperty-ac1edbdb8e264af5ad1432b522b429fd#a44a1875c3ef49f2b4f817291953a1d4
179
187
  def filter_does_not_equal(value, rollup = nil, rollup_type = nil)
180
188
  make_filter_query "does_not_equal", value, rollup, rollup_type
181
189
  end
@@ -186,13 +194,19 @@ module NotionRubyMapping
186
194
  ### Public announced methods
187
195
 
188
196
  # @param [String] value Query value
197
+ # @param [String] rollup Rollup name
198
+ # @param [String] rollup_type Rollup type
189
199
  # @return [NotionRubyMapping::Query] generated Query object
200
+ # @see https://www.notion.so/hkob/CreatedByProperty-945fa6be1c014da2b7e55a2b76e37b57#271a2ebaa1ec48acae732ca98920feab
190
201
  def filter_contains(value, rollup = nil, rollup_type = nil)
191
202
  make_filter_query "contains", value, rollup, rollup_type
192
203
  end
193
204
 
194
205
  # @param [String] value Query value
206
+ # @param [String] rollup Rollup name
207
+ # @param [String] rollup_type Rollup type
195
208
  # @return [NotionRubyMapping::Query] generated Query object
209
+ # @see https://www.notion.so/hkob/CreatedByProperty-945fa6be1c014da2b7e55a2b76e37b57#b0328e3b146f48a4ad4c9c2ee5363486
196
210
  def filter_does_not_contain(value, rollup = nil, rollup_type = nil)
197
211
  make_filter_query "does_not_contain", value, rollup, rollup_type
198
212
  end
@@ -203,12 +217,17 @@ module NotionRubyMapping
203
217
  ### Public announced methods
204
218
 
205
219
  # @param [String] value Query value
220
+ # @param [String] rollup Rollup name
221
+ # @param [String] rollup_type Rollup type
206
222
  # @return [NotionRubyMapping::Query] generated Query object
223
+ # @see https://www.notion.so/hkob/EmailProperty-39aeb5df56ea4cc1b9380574e4fdeec0#d3e098b2f38c4c8c9d3e815516cfd953
207
224
  def filter_starts_with(value, rollup = nil, rollup_type = nil)
208
225
  make_filter_query "starts_with", value, rollup, rollup_type
209
226
  end
210
227
 
211
228
  # @param [String] value Query value
229
+ # @param [String] rollup Rollup name
230
+ # @param [String] rollup_type Rollup type
212
231
  # @return [NotionRubyMapping::Query] generated Query object
213
232
  def filter_ends_with(value, rollup = nil, rollup_type = nil)
214
233
  make_filter_query "ends_with", value, rollup, rollup_type
@@ -219,12 +238,18 @@ module NotionRubyMapping
219
238
  module IsEmptyIsNotEmpty
220
239
  ### Public announced methods
221
240
 
241
+ # @param [String] rollup Rollup name
242
+ # @param [String] rollup_type Rollup type
222
243
  # @return [NotionRubyMapping::Query] generated Query object
244
+ # @see https://www.notion.so/hkob/CreatedByProperty-945fa6be1c014da2b7e55a2b76e37b57#38749dfae0854c68b4c55095d3efbff1
223
245
  def filter_is_empty(rollup = nil, rollup_type = nil)
224
246
  make_filter_query "is_empty", true, rollup, rollup_type
225
247
  end
226
248
 
249
+ # @param [String] rollup Rollup name
250
+ # @param [String] rollup_type Rollup type
227
251
  # @return [NotionRubyMapping::Query] generated Query object
252
+ # @see https://www.notion.so/hkob/CreatedByProperty-945fa6be1c014da2b7e55a2b76e37b57#515659ea52b54fb48c81b813f3b705f6
228
253
  def filter_is_not_empty(rollup = nil, rollup_type = nil)
229
254
  make_filter_query "is_not_empty", true, rollup, rollup_type
230
255
  end
@@ -235,24 +260,32 @@ module NotionRubyMapping
235
260
  ### Public announced methods
236
261
 
237
262
  # @param [Number] value Query value
263
+ # @param [String] rollup Rollup name
264
+ # @param [String] rollup_type Rollup type
238
265
  # @return [NotionRubyMapping::Query] generated Query object
239
266
  def filter_greater_than(value, rollup = nil, rollup_type = nil)
240
267
  make_filter_query "greater_than", value, rollup, rollup_type
241
268
  end
242
269
 
243
270
  # @param [Number] value Query value
271
+ # @param [String] rollup Rollup name
272
+ # @param [String] rollup_type Rollup type
244
273
  # @return [NotionRubyMapping::Query] generated Query object
245
274
  def filter_less_than(value, rollup = nil, rollup_type = nil)
246
275
  make_filter_query "less_than", value, rollup, rollup_type
247
276
  end
248
277
 
249
278
  # @param [Number] value Query value
279
+ # @param [String] rollup Rollup name
280
+ # @param [String] rollup_type Rollup type
250
281
  # @return [NotionRubyMapping::Query] generated Query object
251
282
  def filter_greater_than_or_equal_to(value, rollup = nil, rollup_type = nil)
252
283
  make_filter_query "greater_than_or_equal_to", value, rollup, rollup_type
253
284
  end
254
285
 
255
286
  # @param [Number] value Query value
287
+ # @param [String] rollup Rollup name
288
+ # @param [String] rollup_type Rollup type
256
289
  # @return [NotionRubyMapping::Query] generated Query object
257
290
  def filter_less_than_or_equal_to(value, rollup = nil, rollup_type = nil)
258
291
  make_filter_query "less_than_or_equal_to", value, rollup, rollup_type
@@ -10,13 +10,42 @@ module NotionRubyMapping
10
10
  ## Common methods
11
11
 
12
12
  # @return [Hash, Array]
13
+ # @see https://www.notion.so/hkob/RelationProperty-f608ab41a1f0476b98456620346fba03#6c14207b2d1340d2bbc08d17eee2cb22
13
14
  def relation
14
15
  @json
15
16
  end
16
17
 
18
+ ## Page property only methods
19
+
20
+ # @param [String, Hash] page_id_or_json
21
+ # @see https://www.notion.so/hkob/RelationProperty-f608ab41a1f0476b98456620346fba03#52572d8745ef4b66bc34ba202c84b87c
22
+ def add_relation(page_id_or_json)
23
+ assert_page_property __method__
24
+ @will_update = true
25
+ @json << if page_id_or_json.is_a? String
26
+ {"id" => page_id_or_json}
27
+ else
28
+ page_id_or_json
29
+ end
30
+ end
31
+
32
+ # @param [String, Array<String>, Hash, Array<Hash>] page_ids_or_jsons
33
+ # @return [Array] settled relation Array
34
+ # @see https://www.notion.so/hkob/RelationProperty-f608ab41a1f0476b98456620346fba03#1025f772ecd64e678912a5036a95eda6
35
+ def relation=(page_ids_or_jsons)
36
+ assert_page_property __method__
37
+ @will_update = true
38
+ page_ids_or_jsons = [page_ids_or_jsons] unless page_ids_or_jsons.is_a? Array
39
+
40
+ @json = page_ids_or_jsons.map do |page_id_or_json|
41
+ page_id_or_json.is_a?(String) ? {"id" => page_id_or_json} : page_id_or_json
42
+ end
43
+ end
44
+
17
45
  ## Database property only methods
18
46
 
19
47
  # @return [String] relation database_id
48
+ # @see https://www.notion.so/hkob/RelationProperty-f608ab41a1f0476b98456620346fba03#eb40f1a2ad5c4e368d343870a7e529f9
20
49
  def relation_database_id
21
50
  assert_database_property __method__
22
51
  @json["database_id"]
@@ -24,6 +53,7 @@ module NotionRubyMapping
24
53
 
25
54
  # @param [String] database_id
26
55
  # @param [String] synced_property_name
56
+ # @see https://www.notion.so/hkob/RelationProperty-f608ab41a1f0476b98456620346fba03#7f5029fb7f6e4c009f22888b233e6f64
27
57
  def replace_relation_database(database_id: nil, synced_property_name: nil)
28
58
  assert_database_property __method__
29
59
  @will_update = true
@@ -65,16 +95,6 @@ module NotionRubyMapping
65
95
  ans
66
96
  end
67
97
 
68
- ## Page property only methods
69
-
70
- # @param [String, Array<String>] relation a id or Array of id
71
- # @return [Array] settled relation Array
72
- def relation=(page_ids)
73
- assert_page_property __method__
74
- @will_update = true
75
- @json = Array(page_ids).map { |r| {"id" => r} }
76
- end
77
-
78
98
  # @return [Hash] created json
79
99
  def property_values_json
80
100
  assert_page_property __method__
@@ -13,6 +13,7 @@ module NotionRubyMapping
13
13
  ## Common methods
14
14
 
15
15
  # @return [Hash]
16
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#4b5749f350e542e5a018030bde411fb9
16
17
  def rollup
17
18
  @json
18
19
  end
@@ -20,12 +21,14 @@ module NotionRubyMapping
20
21
  ## Database property only methods
21
22
 
22
23
  # @return [String] new or settled function
24
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#94021d4e6c0b44519443c1e1cc6b3aba
23
25
  def function
24
26
  assert_database_property __method__
25
27
  @json["function"]
26
28
  end
27
29
 
28
30
  # @param [String] func
31
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#647c74803cac49a9b79199828157e17a
29
32
  def function=(func)
30
33
  assert_database_property __method__
31
34
  @will_update = true
@@ -33,12 +36,14 @@ module NotionRubyMapping
33
36
  end
34
37
 
35
38
  # @return [String] new or settled relation_property_name
39
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#684fc4739c4f4d6a9b93687f72cd8dad
36
40
  def relation_property_name
37
41
  assert_database_property __method__
38
42
  @json["relation_property_name"]
39
43
  end
40
44
 
41
45
  # @param [String] rpn
46
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#a61c2100758841c381edd820aa88ac65
42
47
  def relation_property_name=(rpn)
43
48
  assert_database_property __method__
44
49
  @will_update = true
@@ -46,12 +51,14 @@ module NotionRubyMapping
46
51
  end
47
52
 
48
53
  # @return [String] new or settled rollup_property_name
54
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#8ce9ee31a2e2473ab7ba21781e4b440d
49
55
  def rollup_property_name
50
56
  assert_database_property __method__
51
57
  @json["rollup_property_name"]
52
58
  end
53
59
 
54
60
  # @param [String] rpn
61
+ # @see https://www.notion.so/hkob/RollupProperty-eb10fbac3a93436289e74e5c651e9134#66503f4472f2456aa9b383f03b1fe0a6
55
62
  def rollup_property_name=(rpn)
56
63
  assert_database_property __method__
57
64
  @will_update = true
@@ -12,6 +12,7 @@ module NotionRubyMapping
12
12
  ## Common methods
13
13
 
14
14
  # @return [Hash]
15
+ # @see https://www.notion.so/hkob/SelectProperty-6d6a0defa70d4b26af0fdbdcfbf99f28#7ad3734ac42c43068f1e04633bab400b
15
16
  def select
16
17
  @json
17
18
  end
@@ -19,6 +20,7 @@ module NotionRubyMapping
19
20
  ## Page property only methods
20
21
 
21
22
  # @return [String]
23
+ # @see https://www.notion.so/hkob/SelectProperty-6d6a0defa70d4b26af0fdbdcfbf99f28#27a05e52715a4acd9156b5f146653e51
22
24
  def select_name
23
25
  assert_page_property __method__
24
26
  @json["name"]
@@ -29,7 +31,8 @@ module NotionRubyMapping
29
31
  # @param [String] name
30
32
  # @param [String] color
31
33
  # @return [Array] added array
32
- def add_select_options(name:, color:)
34
+ # @see https://www.notion.so/hkob/SelectProperty-6d6a0defa70d4b26af0fdbdcfbf99f28#3e1c7dbda7fb455f94ee93d9653b7880
35
+ def add_select_option(name:, color:)
33
36
  edit_select_options << {"name" => name, "color" => color}
34
37
  end
35
38
 
@@ -41,12 +44,14 @@ module NotionRubyMapping
41
44
  end
42
45
 
43
46
  # @return [Array]
47
+ # @see https://www.notion.so/hkob/SelectProperty-6d6a0defa70d4b26af0fdbdcfbf99f28#790a297f2c1b4ba5a4d86074d4c70a89
44
48
  def select_options
45
49
  assert_database_property __method__
46
50
  @json["options"] || []
47
51
  end
48
52
 
49
53
  # @return [String]
54
+ # @see https://www.notion.so/hkob/SelectProperty-6d6a0defa70d4b26af0fdbdcfbf99f28#72da1632793c4a5296f3bc89de2df413
50
55
  def select_names
51
56
  assert_database_property __method__
52
57
  @json["options"].map { |s| s["name"] }
@@ -14,13 +14,18 @@ module NotionRubyMapping
14
14
  ## Common methods
15
15
 
16
16
  # @return [String, Hash, nil] url (Page), {} (Database)
17
+ # @see https://www.notion.so/hkob/UrlProperty-8a0094fdf6494151983cb4694f6626cc#8342eef7df3c43eaad10c48d4757b4ae
17
18
  def url
18
19
  @json
19
20
  end
20
21
 
21
22
  ## Page property only methods
22
23
 
24
+
25
+ # @param [String] url
26
+ # @see https://www.notion.so/hkob/UrlProperty-8a0094fdf6494151983cb4694f6626cc#cfa5463a121b4002b250b38d7d0a0d34
23
27
  def url=(url)
28
+ assert_page_property __method__
24
29
  @will_update = true
25
30
  @json = url
26
31
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NotionRubyMapping
4
- VERSION = "0.3.3"
4
+ VERSION = "0.4.0"
5
5
  NOTION_VERSION = "2022-02-22"
6
6
  end
@@ -2,11 +2,18 @@
2
2
 
3
3
  require "yaml"
4
4
 
5
- %w[version notion_cache base page database list block property text_property title_property rich_text_property
6
- url_property email_property phone_number_property number_property checkbox_property select_property multi_property
7
- multi_select_property date_base_property date_property created_time_property last_edited_time_property
8
- people_property created_by_property last_edited_by_property files_property relation_property formula_property
9
- rollup_property query payload property_cache rich_text_object text_object mention_object user_object
10
- rich_text_array].each do |k|
11
- require_relative "notion_ruby_mapping/#{k}"
5
+ require_relative "notion_ruby_mapping/version"
6
+ {
7
+ blocks: %w[base block database list page],
8
+ controllers: %w[notion_cache payload property_cache query rich_text_array],
9
+ objects: %w[rich_text_object emoji_object equation_object file_object mention_object text_object user_object],
10
+ properties: %w[property checkbox_property multi_property created_by_property date_base_property created_time_property
11
+ date_property email_property files_property formula_property last_edited_by_property
12
+ last_edited_time_property multi_select_property number_property people_property phone_number_property
13
+ relation_property text_property rich_text_property rollup_property select_property title_property
14
+ url_property],
15
+ }.each do |key, values|
16
+ values.each do |klass|
17
+ require_relative "notion_ruby_mapping/#{key}/#{klass}"
18
+ end
12
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notion_ruby_mapping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki KOBAYASHI
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-27 00:00:00.000000000 Z
11
+ date: 2022-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -148,43 +148,46 @@ files:
148
148
  - images/pre_set_icon.png
149
149
  - images/serial_number.png
150
150
  - lib/notion_ruby_mapping.rb
151
- - lib/notion_ruby_mapping/base.rb
152
- - lib/notion_ruby_mapping/block.rb
153
- - lib/notion_ruby_mapping/checkbox_property.rb
154
- - lib/notion_ruby_mapping/created_by_property.rb
155
- - lib/notion_ruby_mapping/created_time_property.rb
156
- - lib/notion_ruby_mapping/database.rb
157
- - lib/notion_ruby_mapping/date_base_property.rb
158
- - lib/notion_ruby_mapping/date_property.rb
159
- - lib/notion_ruby_mapping/email_property.rb
160
- - lib/notion_ruby_mapping/files_property.rb
161
- - lib/notion_ruby_mapping/formula_property.rb
162
- - lib/notion_ruby_mapping/last_edited_by_property.rb
163
- - lib/notion_ruby_mapping/last_edited_time_property.rb
164
- - lib/notion_ruby_mapping/list.rb
165
- - lib/notion_ruby_mapping/mention_object.rb
166
- - lib/notion_ruby_mapping/multi_property.rb
167
- - lib/notion_ruby_mapping/multi_select_property.rb
168
- - lib/notion_ruby_mapping/notion_cache.rb
169
- - lib/notion_ruby_mapping/number_property.rb
170
- - lib/notion_ruby_mapping/page.rb
171
- - lib/notion_ruby_mapping/payload.rb
172
- - lib/notion_ruby_mapping/people_property.rb
173
- - lib/notion_ruby_mapping/phone_number_property.rb
174
- - lib/notion_ruby_mapping/property.rb
175
- - lib/notion_ruby_mapping/property_cache.rb
176
- - lib/notion_ruby_mapping/query.rb
177
- - lib/notion_ruby_mapping/relation_property.rb
178
- - lib/notion_ruby_mapping/rich_text_array.rb
179
- - lib/notion_ruby_mapping/rich_text_object.rb
180
- - lib/notion_ruby_mapping/rich_text_property.rb
181
- - lib/notion_ruby_mapping/rollup_property.rb
182
- - lib/notion_ruby_mapping/select_property.rb
183
- - lib/notion_ruby_mapping/text_object.rb
184
- - lib/notion_ruby_mapping/text_property.rb
185
- - lib/notion_ruby_mapping/title_property.rb
186
- - lib/notion_ruby_mapping/url_property.rb
187
- - lib/notion_ruby_mapping/user_object.rb
151
+ - lib/notion_ruby_mapping/blocks/base.rb
152
+ - lib/notion_ruby_mapping/blocks/block.rb
153
+ - lib/notion_ruby_mapping/blocks/database.rb
154
+ - lib/notion_ruby_mapping/blocks/list.rb
155
+ - lib/notion_ruby_mapping/blocks/page.rb
156
+ - lib/notion_ruby_mapping/controllers/notion_cache.rb
157
+ - lib/notion_ruby_mapping/controllers/payload.rb
158
+ - lib/notion_ruby_mapping/controllers/property_cache.rb
159
+ - lib/notion_ruby_mapping/controllers/query.rb
160
+ - lib/notion_ruby_mapping/controllers/rich_text_array.rb
161
+ - lib/notion_ruby_mapping/objects/emoji_object.rb
162
+ - lib/notion_ruby_mapping/objects/equation_object.rb
163
+ - lib/notion_ruby_mapping/objects/file_object.rb
164
+ - lib/notion_ruby_mapping/objects/mention_object.rb
165
+ - lib/notion_ruby_mapping/objects/rich_text_object.rb
166
+ - lib/notion_ruby_mapping/objects/text_object.rb
167
+ - lib/notion_ruby_mapping/objects/user_object.rb
168
+ - lib/notion_ruby_mapping/properties/checkbox_property.rb
169
+ - lib/notion_ruby_mapping/properties/created_by_property.rb
170
+ - lib/notion_ruby_mapping/properties/created_time_property.rb
171
+ - lib/notion_ruby_mapping/properties/date_base_property.rb
172
+ - lib/notion_ruby_mapping/properties/date_property.rb
173
+ - lib/notion_ruby_mapping/properties/email_property.rb
174
+ - lib/notion_ruby_mapping/properties/files_property.rb
175
+ - lib/notion_ruby_mapping/properties/formula_property.rb
176
+ - lib/notion_ruby_mapping/properties/last_edited_by_property.rb
177
+ - lib/notion_ruby_mapping/properties/last_edited_time_property.rb
178
+ - lib/notion_ruby_mapping/properties/multi_property.rb
179
+ - lib/notion_ruby_mapping/properties/multi_select_property.rb
180
+ - lib/notion_ruby_mapping/properties/number_property.rb
181
+ - lib/notion_ruby_mapping/properties/people_property.rb
182
+ - lib/notion_ruby_mapping/properties/phone_number_property.rb
183
+ - lib/notion_ruby_mapping/properties/property.rb
184
+ - lib/notion_ruby_mapping/properties/relation_property.rb
185
+ - lib/notion_ruby_mapping/properties/rich_text_property.rb
186
+ - lib/notion_ruby_mapping/properties/rollup_property.rb
187
+ - lib/notion_ruby_mapping/properties/select_property.rb
188
+ - lib/notion_ruby_mapping/properties/text_property.rb
189
+ - lib/notion_ruby_mapping/properties/title_property.rb
190
+ - lib/notion_ruby_mapping/properties/url_property.rb
188
191
  - lib/notion_ruby_mapping/version.rb
189
192
  - notion_ruby_mapping.gemspec
190
193
  - sig/notion_ruby_mapping.rbs
@@ -208,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
211
  - !ruby/object:Gem::Version
209
212
  version: '0'
210
213
  requirements: []
211
- rubygems_version: 3.3.3
214
+ rubygems_version: 3.3.7
212
215
  signing_key:
213
216
  specification_version: 4
214
217
  summary: Notion Ruby mapping tool
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module NotionRubyMapping
4
- # Notion block
5
- class Block < Base
6
- def self.find(key)
7
- NotionCache.instance.block key
8
- end
9
- end
10
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "date"
4
-
5
- module NotionRubyMapping
6
- # Date base property (date, created_time, last_edited_time, formula)
7
- class DateBaseProperty < Property
8
- include IsEmptyIsNotEmpty
9
-
10
- def filter_equals(date, rollup = nil, rollup_type = nil)
11
- make_filter_query "equals", value_str(date), rollup, rollup_type
12
- end
13
-
14
- def filter_does_not_equal(date, rollup = nil, rollup_type = nil)
15
- make_filter_query "does_not_equal", value_str(date), rollup, rollup_type
16
- end
17
-
18
- def filter_before(date, rollup = nil, rollup_type = nil)
19
- make_filter_query "before", value_str(date), rollup, rollup_type
20
- end
21
-
22
- def filter_after(date, rollup = nil, rollup_type = nil)
23
- make_filter_query "after", value_str(date), rollup, rollup_type
24
- end
25
-
26
- def filter_on_or_before(date, rollup = nil, rollup_type = nil)
27
- make_filter_query "on_or_before", value_str(date), rollup, rollup_type
28
- end
29
-
30
- def filter_on_or_after(date, rollup = nil, rollup_type = nil)
31
- make_filter_query "on_or_after", value_str(date), rollup, rollup_type
32
- end
33
-
34
- def filter_past_week(rollup = nil, rollup_type = nil)
35
- make_filter_query "past_week", {}, rollup, rollup_type
36
- end
37
-
38
- def filter_past_month(rollup = nil, rollup_type = nil)
39
- make_filter_query "past_month", {}, rollup, rollup_type
40
- end
41
-
42
- def filter_past_year(rollup = nil, rollup_type = nil)
43
- make_filter_query "past_year", {}, rollup, rollup_type
44
- end
45
-
46
- def filter_next_week(rollup = nil, rollup_type = nil)
47
- make_filter_query "next_week", {}, rollup, rollup_type
48
- end
49
-
50
- def filter_next_month(rollup = nil, rollup_type = nil)
51
- make_filter_query "next_month", {}, rollup, rollup_type
52
- end
53
-
54
- def filter_next_year(rollup = nil, rollup_type = nil)
55
- make_filter_query "next_year", {}, rollup, rollup_type
56
- end
57
-
58
- protected
59
-
60
- # @param [Date, Time, DateTime, String, nil] obj
61
- # @return [String] iso8601 format string
62
- def value_str(obj)
63
- case obj
64
- when Date
65
- obj.iso8601
66
- when Time
67
- obj.strftime("%Y-%m-%dT%H:%M:%S%:z")
68
- when DateTime
69
- obj.iso8601
70
- else
71
- obj
72
- end
73
- end
74
- end
75
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module NotionRubyMapping
4
- # Notion page object
5
- class Page < Base
6
- ### Public announced methods
7
-
8
- # @param [String] id
9
- # @return [NotionRubyMapping::Page, String]
10
- def self.find(id, dry_run: false)
11
- nc = NotionCache.instance
12
- if dry_run
13
- Base.dry_run_script :get, nc.page_path(id)
14
- else
15
- nc.page id
16
- end
17
- end
18
-
19
- def create_child_database(title, *assign)
20
- Database.new json: {"title" => [TextObject.new(title).property_values_json]},
21
- assign: assign, parent: {"type" => "page_id", "page_id" => @id}
22
- end
23
-
24
- protected
25
-
26
- # @return [NotionRubyMapping::Base, String]
27
- def create(dry_run: false)
28
- if dry_run
29
- dry_run_script :post, @nc.pages_path, :property_values_json
30
- else
31
- @new_record = false
32
- update_json @nc.create_page_request(property_values_json)
33
- end
34
- end
35
-
36
- # @return [Hash]
37
- def reload_json
38
- @nc.page_request @id
39
- end
40
-
41
- # @return [NotionRubyMapping::Base, String]
42
- def update(dry_run: false)
43
- if dry_run
44
- dry_run_script :patch, @nc.page_path(@id), :property_values_json
45
- else
46
- update_json @nc.update_page_request(@id, property_values_json)
47
- end
48
- end
49
- end
50
- end