notion_ruby_mapping 0.8.1 → 0.8.3

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: 1d5ecb543438b351d894b9f20d2b9ea0f10ebdacf3dd3b01c20bafae1d07f84d
4
- data.tar.gz: e1463b904bba8cf73e41113754b9aed7492b45500321dd80b4660ba210cdb722
3
+ metadata.gz: 88063ea97ad5859285370907bf40121b34718e0acae70f88b564fb35f646b416
4
+ data.tar.gz: 163da74c41fe90ac6209ffe80262ebcac6f8e54f0ebcba14739d3e6fd1feb6dd
5
5
  SHA512:
6
- metadata.gz: 82a8330b58a7a6edb675a03640f3c8a324fd7e3f58e124f184f4806c80a15c07d9f62fa92adfd31cfd21a7fa5db0ade83cd987baa48950f95076b021259abb2d
7
- data.tar.gz: 86d1738c9a54021b5122435b77e93faff510294330217db44c748ebfaf8e37e3f821bd7fc18a62869200f6054a9b4d3f3b42f184d4f41724ca28eb8002368cf8
6
+ metadata.gz: 1e49c0bf7bcff56d1657cc2668d407fcd3e79724526c46ab58f0845fbf5d18322eec830801eec5e6f06c3a6b9c489f7f2f9bff237331b9cbbc94698ef9af93a6
7
+ data.tar.gz: 4b1e62e1a61ac2cd7274a2cd8abb4aaa1f331fe8cd3e624031ba428ce8d619926dbae6806d20d30648301212ad44d21b7d0d737a055238575d873ece9d2cd6aa
data/README.md CHANGED
@@ -127,6 +127,7 @@ NotionRubyMapping.configuration { |c| c.notion_token = ENV["NOTION_API_TOKEN"] }
127
127
 
128
128
  ## 3. ChangeLog
129
129
 
130
+ - 2023/7/13 [v0.8.2] add 'after' option to append_block_chidren, 'append_after' method to block, and 'public_url' method to page
130
131
  - 2023/7/10 [v0.8.1] Automatically change type to external when file object is updated
131
132
  - 2023/6/4 [v0.8.0] add unique_id properties, filter_properties
132
133
  - 2023/4/14 [v0.7.7] add token= method for Notion API book typo
@@ -94,7 +94,7 @@ module NotionRubyMapping
94
94
  json: @nc.retrieve_comments_request(@id, query),
95
95
  query: query).each do |comment|
96
96
  dt_id = comment.discussion_id
97
- dt = ans[dt_id] ||= DiscussionThread.new dt_id
97
+ dt = ans[dt_id] ||= DiscussionThread.new(dt_id)
98
98
  dt.comments << comment
99
99
  end
100
100
  ans
@@ -118,11 +118,12 @@ module NotionRubyMapping
118
118
  end
119
119
 
120
120
  # @param [Array<Block>] blocks
121
+ # @param [String, nil] after block id of previous block
121
122
  # @param [Boolean] dry_run true if dry_run
122
123
  # @return [NotionRubyMapping::Block, String]
123
124
  # @see https://www.notion.so/hkob/Page-d359650e3ca94424af8359a24147b9a0#44bbf83d852c419485c5efe9fe1558fb
124
125
  # @see https://www.notion.so/hkob/Block-689ad4cbff50404d8a1baf67b6d6d78d#2c47f7fedae543cf8566389ba1677132
125
- def append_block_children(*blocks, dry_run: false)
126
+ def append_block_children(*blocks, after: nil, dry_run: false)
126
127
  raise StandardError, "This block can have no children." unless page? || (block? && can_have_children)
127
128
 
128
129
  only_one = blocks.length == 1
@@ -132,6 +133,7 @@ module NotionRubyMapping
132
133
  block.block_json
133
134
  end,
134
135
  }
136
+ json["after"] = after if after
135
137
  if dry_run
136
138
  path = @nc.append_block_children_page_path(id)
137
139
  self.class.dry_run_script :patch, path, json
@@ -76,6 +76,13 @@ module NotionRubyMapping
76
76
  end
77
77
  end
78
78
 
79
+ # @param [Boolean] dry_run true if dry_run
80
+ # @return [NotionRubyMapping::Block, String]
81
+ # @param [Array<Block>] blocks
82
+ def append_after(*blocks, dry_run: false)
83
+ parent.append_block_children *blocks, after: id, dry_run: dry_run
84
+ end
85
+
79
86
  # @param [Boolean] not_update false when update
80
87
  # @return [Hash{String (frozen)->Hash}]
81
88
  def block_json(not_update: true)
@@ -59,6 +59,11 @@ module NotionRubyMapping
59
59
  db.save dry_run: dry_run
60
60
  end
61
61
 
62
+ # @return [String] 公開URL
63
+ def public_url
64
+ @json["public_url"]
65
+ end
66
+
62
67
  # @return [String] title
63
68
  # @see https://www.notion.so/hkob/Page-d359650e3ca94424af8359a24147b9a0#2ff7209055f346fbbda454cdbb40b1c8
64
69
  def title
@@ -66,6 +71,11 @@ module NotionRubyMapping
66
71
  tp.map(&:full_text).join ""
67
72
  end
68
73
 
74
+ # @return [String] URL
75
+ def url
76
+ @json["url"]
77
+ end
78
+
69
79
  protected
70
80
 
71
81
  # @param [Boolean] dry_run true if dry_run
@@ -93,5 +103,6 @@ module NotionRubyMapping
93
103
  update_json @nc.update_page_request(@id, property_values_json)
94
104
  end
95
105
  end
106
+
96
107
  end
97
108
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NotionRubyMapping
4
+ # Button property
5
+ class ButtonProperty < Property
6
+ TYPE = "button"
7
+
8
+ ### Public announced methods
9
+
10
+ ## Common methods
11
+
12
+ # @return [Boolean, Hash, nil]
13
+ def button
14
+ @json
15
+ end
16
+
17
+ # @param [String] name Property name
18
+ # @param [Boolean, Hash] json
19
+ def initialize(name, will_update: false, base_type: :page, property_id: nil, property_cache: nil, json: nil)
20
+ super name, will_update: will_update, base_type: base_type, property_id: property_id,
21
+ property_cache: property_cache
22
+ @json = json
23
+ end
24
+
25
+ ## Page property only methods
26
+
27
+ # @return [Hash]
28
+ def property_values_json
29
+ assert_page_property __method__
30
+ {@name => {"button" => @json, "type" => "button"}}
31
+ end
32
+ end
33
+ end
@@ -96,6 +96,7 @@ module NotionRubyMapping
96
96
  end
97
97
  else
98
98
  klass = {
99
+ "button" => ButtonProperty,
99
100
  "checkbox" => CheckboxProperty,
100
101
  "created_time" => CreatedTimeProperty,
101
102
  "date" => DateProperty,
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NotionRubyMapping
4
- VERSION = "0.8.1"
4
+ VERSION = "0.8.3"
5
5
  NOTION_VERSION = "2022-06-28"
6
6
  end
@@ -20,7 +20,7 @@ require_relative "notion_ruby_mapping/version"
20
20
  date_property email_property files_property formula_property last_edited_by_property
21
21
  last_edited_time_property multi_select_property number_property people_property phone_number_property
22
22
  relation_property text_property rich_text_property rollup_property select_property status_property
23
- title_property unique_id_property url_property],
23
+ title_property unique_id_property url_property button_property],
24
24
  }.each do |key, values|
25
25
  values.each do |klass|
26
26
  require_relative "notion_ruby_mapping/#{key}/#{klass}"
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.8.1
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki KOBAYASHI
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-10 00:00:00.000000000 Z
11
+ date: 2024-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -231,6 +231,7 @@ files:
231
231
  - lib/notion_ruby_mapping/objects/rich_text_object.rb
232
232
  - lib/notion_ruby_mapping/objects/text_object.rb
233
233
  - lib/notion_ruby_mapping/objects/user_object.rb
234
+ - lib/notion_ruby_mapping/properties/button_property.rb
234
235
  - lib/notion_ruby_mapping/properties/checkbox_property.rb
235
236
  - lib/notion_ruby_mapping/properties/created_by_property.rb
236
237
  - lib/notion_ruby_mapping/properties/created_time_property.rb
@@ -279,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
280
  - !ruby/object:Gem::Version
280
281
  version: '0'
281
282
  requirements: []
282
- rubygems_version: 3.4.13
283
+ rubygems_version: 3.5.3
283
284
  signing_key:
284
285
  specification_version: 4
285
286
  summary: Notion Ruby mapping tool