notion_ruby_mapping 1.0.0 → 2.0.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/lib/notion_ruby_mapping/blocks/base.rb +51 -37
  3. data/lib/notion_ruby_mapping/blocks/block.rb +13 -13
  4. data/lib/notion_ruby_mapping/blocks/bookmark_block.rb +1 -1
  5. data/lib/notion_ruby_mapping/blocks/breadcrumb_block.rb +1 -1
  6. data/lib/notion_ruby_mapping/blocks/bulleted_list_item_block.rb +1 -1
  7. data/lib/notion_ruby_mapping/blocks/callout_block.rb +10 -10
  8. data/lib/notion_ruby_mapping/blocks/child_base_block.rb +2 -2
  9. data/lib/notion_ruby_mapping/blocks/child_database_block.rb +3 -3
  10. data/lib/notion_ruby_mapping/blocks/child_page_block.rb +3 -3
  11. data/lib/notion_ruby_mapping/blocks/code_block.rb +7 -7
  12. data/lib/notion_ruby_mapping/blocks/column_block.rb +3 -3
  13. data/lib/notion_ruby_mapping/blocks/column_list_block.rb +2 -2
  14. data/lib/notion_ruby_mapping/blocks/database.rb +5 -5
  15. data/lib/notion_ruby_mapping/blocks/divider_block.rb +1 -1
  16. data/lib/notion_ruby_mapping/blocks/embed_block.rb +2 -2
  17. data/lib/notion_ruby_mapping/blocks/equation_block.rb +5 -5
  18. data/lib/notion_ruby_mapping/blocks/file_base_block.rb +15 -3
  19. data/lib/notion_ruby_mapping/blocks/file_block.rb +2 -2
  20. data/lib/notion_ruby_mapping/blocks/heading1_block.rb +3 -3
  21. data/lib/notion_ruby_mapping/blocks/heading2_block.rb +2 -2
  22. data/lib/notion_ruby_mapping/blocks/heading3_block.rb +3 -3
  23. data/lib/notion_ruby_mapping/blocks/image_block.rb +2 -2
  24. data/lib/notion_ruby_mapping/blocks/link_preview_block.rb +2 -2
  25. data/lib/notion_ruby_mapping/blocks/link_to_page_block.rb +5 -5
  26. data/lib/notion_ruby_mapping/blocks/list.rb +21 -21
  27. data/lib/notion_ruby_mapping/blocks/numbered_list_item_block.rb +2 -2
  28. data/lib/notion_ruby_mapping/blocks/page.rb +8 -8
  29. data/lib/notion_ruby_mapping/blocks/paragraph_block.rb +2 -2
  30. data/lib/notion_ruby_mapping/blocks/pdf_block.rb +2 -2
  31. data/lib/notion_ruby_mapping/blocks/quote_block.rb +1 -1
  32. data/lib/notion_ruby_mapping/blocks/synced_block.rb +5 -5
  33. data/lib/notion_ruby_mapping/blocks/table_block.rb +8 -8
  34. data/lib/notion_ruby_mapping/blocks/table_of_contents_block.rb +3 -3
  35. data/lib/notion_ruby_mapping/blocks/table_row_block.rb +3 -3
  36. data/lib/notion_ruby_mapping/blocks/template_block.rb +3 -3
  37. data/lib/notion_ruby_mapping/blocks/text_sub_block_color_base_block.rb +4 -4
  38. data/lib/notion_ruby_mapping/blocks/to_do_block.rb +4 -4
  39. data/lib/notion_ruby_mapping/blocks/toggle_block.rb +2 -2
  40. data/lib/notion_ruby_mapping/blocks/toggle_heading1_block.rb +2 -2
  41. data/lib/notion_ruby_mapping/blocks/toggle_heading2_block.rb +2 -2
  42. data/lib/notion_ruby_mapping/blocks/toggle_heading3_block.rb +3 -3
  43. data/lib/notion_ruby_mapping/blocks/url_base_block.rb +3 -3
  44. data/lib/notion_ruby_mapping/blocks/url_caption_base_block.rb +4 -4
  45. data/lib/notion_ruby_mapping/blocks/video_block.rb +2 -2
  46. data/lib/notion_ruby_mapping/controllers/mermaid.rb +2 -5
  47. data/lib/notion_ruby_mapping/controllers/mermaid_database.rb +29 -32
  48. data/lib/notion_ruby_mapping/controllers/notion_cache.rb +68 -2
  49. data/lib/notion_ruby_mapping/controllers/payload.rb +29 -11
  50. data/lib/notion_ruby_mapping/controllers/property_cache.rb +8 -9
  51. data/lib/notion_ruby_mapping/controllers/query.rb +14 -14
  52. data/lib/notion_ruby_mapping/controllers/search.rb +5 -5
  53. data/lib/notion_ruby_mapping/objects/comment_object.rb +2 -2
  54. data/lib/notion_ruby_mapping/objects/emoji_object.rb +3 -3
  55. data/lib/notion_ruby_mapping/objects/equation_object.rb +3 -3
  56. data/lib/notion_ruby_mapping/objects/file_object.rb +44 -21
  57. data/lib/notion_ruby_mapping/objects/file_upload_object.rb +78 -0
  58. data/lib/notion_ruby_mapping/objects/mention_object.rb +43 -43
  59. data/lib/notion_ruby_mapping/objects/rich_text_object.rb +43 -43
  60. data/lib/notion_ruby_mapping/objects/text_object.rb +5 -5
  61. data/lib/notion_ruby_mapping/objects/user_object.rb +4 -4
  62. data/lib/notion_ruby_mapping/properties/button_property.rb +3 -3
  63. data/lib/notion_ruby_mapping/properties/checkbox_property.rb +3 -3
  64. data/lib/notion_ruby_mapping/properties/created_by_property.rb +3 -3
  65. data/lib/notion_ruby_mapping/properties/created_time_property.rb +2 -2
  66. data/lib/notion_ruby_mapping/properties/date_base_property.rb +15 -14
  67. data/lib/notion_ruby_mapping/properties/date_property.rb +16 -16
  68. data/lib/notion_ruby_mapping/properties/email_property.rb +3 -3
  69. data/lib/notion_ruby_mapping/properties/files_property.rb +14 -12
  70. data/lib/notion_ruby_mapping/properties/formula_property.rb +7 -7
  71. data/lib/notion_ruby_mapping/properties/last_edited_by_property.rb +4 -3
  72. data/lib/notion_ruby_mapping/properties/last_edited_time_property.rb +2 -2
  73. data/lib/notion_ruby_mapping/properties/multi_select_property.rb +15 -15
  74. data/lib/notion_ruby_mapping/properties/number_property.rb +9 -9
  75. data/lib/notion_ruby_mapping/properties/people_property.rb +7 -7
  76. data/lib/notion_ruby_mapping/properties/phone_number_property.rb +3 -3
  77. data/lib/notion_ruby_mapping/properties/property.rb +55 -56
  78. data/lib/notion_ruby_mapping/properties/relation_property.rb +17 -18
  79. data/lib/notion_ruby_mapping/properties/rich_text_property.rb +5 -5
  80. data/lib/notion_ruby_mapping/properties/rollup_property.rb +15 -15
  81. data/lib/notion_ruby_mapping/properties/select_property.rb +14 -14
  82. data/lib/notion_ruby_mapping/properties/status_property.rb +5 -5
  83. data/lib/notion_ruby_mapping/properties/text_property.rb +1 -1
  84. data/lib/notion_ruby_mapping/properties/title_property.rb +7 -7
  85. data/lib/notion_ruby_mapping/properties/unique_id_property.rb +4 -4
  86. data/lib/notion_ruby_mapping/properties/url_property.rb +3 -3
  87. data/lib/notion_ruby_mapping/properties/verification_property.rb +3 -3
  88. data/lib/notion_ruby_mapping/version.rb +1 -1
  89. data/lib/notion_ruby_mapping.rb +1 -1
  90. data/notion_ruby_mapping.gemspec +2 -0
  91. metadata +35 -3
@@ -3,18 +3,18 @@
3
3
  module NotionRubyMapping
4
4
  # TitleProperty
5
5
  class TitleProperty < TextProperty
6
- TYPE = :title
6
+ TYPE = "title"
7
7
 
8
8
  ### Not public announced methods
9
9
 
10
10
  ## Common methods
11
11
 
12
12
  def self.rich_text_array_from_json(json)
13
- if json[:object]&.to_sym == :list
14
- rich_text_objects = List.new(json: json, type: :property, value: self).select { true }
15
- RichTextArray.rich_text_array :title, rich_text_objects
13
+ if json["object"] == "list"
14
+ rich_text_objects = List.new(json: json, type: "property", value: self).select { true }
15
+ RichTextArray.rich_text_array "title", rich_text_objects
16
16
  else
17
- RichTextArray.new :title, json: json[:title]
17
+ RichTextArray.new "title", json: json["title"]
18
18
  end
19
19
  end
20
20
 
@@ -43,8 +43,8 @@ module NotionRubyMapping
43
43
  text_json = map(&:property_values_json)
44
44
  {
45
45
  @name => {
46
- type: "title",
47
- title: text_json.empty? ? @json : text_json,
46
+ "type" => "title",
47
+ "title" => text_json.empty? ? @json : text_json,
48
48
  },
49
49
  }
50
50
  end
@@ -6,7 +6,7 @@ module NotionRubyMapping
6
6
  include EqualsDoesNotEqual
7
7
  include GreaterThanLessThan
8
8
  include IsEmptyIsNotEmpty
9
- TYPE = :unique_id
9
+ TYPE = "unique_id"
10
10
 
11
11
  ### Public announced methods
12
12
 
@@ -27,7 +27,7 @@ module NotionRubyMapping
27
27
 
28
28
  # @param [String] name Property name
29
29
  # @param [Float, Integer, Hash] json Number value or format Hash
30
- def initialize(name, will_update: false, base_type: :page, json: nil, property_id: nil, property_cache: nil)
30
+ def initialize(name, will_update: false, base_type: "page", json: nil, property_id: nil, property_cache: nil)
31
31
  super name, will_update: will_update, base_type: base_type, property_id: property_id, property_cache: property_cache
32
32
  @json = json
33
33
  @json ||= {} if database?
@@ -37,7 +37,7 @@ module NotionRubyMapping
37
37
  # @return [NotionRubyMapping::NumberProperty]
38
38
  def update_from_json(json)
39
39
  @will_update = false
40
- @json = json[:unique_id]
40
+ @json = json["unique_id"]
41
41
  self
42
42
  end
43
43
 
@@ -48,7 +48,7 @@ module NotionRubyMapping
48
48
  # @return [Hash]
49
49
  def property_values_json
50
50
  assert_page_property __method__
51
- {@name => {unique_id: @json, type: "unique_id"}}
51
+ {@name => {"unique_id" => @json, "type" => "unique_id"}}
52
52
  end
53
53
 
54
54
  ## Database property only methods
@@ -7,7 +7,7 @@ module NotionRubyMapping
7
7
  include ContainsDoesNotContain
8
8
  include StartsWithEndsWith
9
9
  include IsEmptyIsNotEmpty
10
- TYPE = :url
10
+ TYPE = "url"
11
11
 
12
12
  ### Public announced methods
13
13
 
@@ -34,7 +34,7 @@ module NotionRubyMapping
34
34
  ## Common methods
35
35
 
36
36
  # @param [String, Symbol] name Property name
37
- def initialize(name, will_update: false, base_type: :page, json: nil, property_id: nil, property_cache: nil)
37
+ def initialize(name, will_update: false, base_type: "page", json: nil, property_id: nil, property_cache: nil)
38
38
  super name, will_update: will_update, base_type: base_type, property_id: property_id,
39
39
  property_cache: property_cache
40
40
  @json = json || (database? ? {} : nil)
@@ -45,7 +45,7 @@ module NotionRubyMapping
45
45
  # @return [Hash]
46
46
  def property_values_json
47
47
  assert_page_property __method__
48
- {@name => {url: @json, type: "url"}}
48
+ {@name => {"url" => @json, "type" => "url"}}
49
49
  end
50
50
  end
51
51
  end
@@ -3,7 +3,7 @@
3
3
  module NotionRubyMapping
4
4
  # Status property
5
5
  class VerificationProperty < Property
6
- TYPE = :verification
6
+ TYPE = "verification"
7
7
 
8
8
  ### Public announced methods
9
9
 
@@ -24,7 +24,7 @@ module NotionRubyMapping
24
24
 
25
25
  # @param [String, Symbol] name Property name
26
26
  # @param [Boolean, Hash] json
27
- def initialize(name, will_update: false, base_type: :page, property_id: nil, property_cache: nil, json: {})
27
+ def initialize(name, will_update: false, base_type: "page", property_id: nil, property_cache: nil, json: {})
28
28
  super name, will_update: will_update, base_type: base_type, property_id: property_id,
29
29
  property_cache: property_cache
30
30
  @json = json
@@ -35,7 +35,7 @@ module NotionRubyMapping
35
35
  # @return [Hash]
36
36
  def property_values_json
37
37
  assert_page_property __method__
38
- {@name => {verification: @json, type: TYPE}}
38
+ {@name => {"verification" => @json, "type" => TYPE}}
39
39
  end
40
40
  end
41
41
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NotionRubyMapping
4
- VERSION = "1.0.0"
4
+ VERSION = "2.0.0"
5
5
  NOTION_VERSION = "2022-06-28"
6
6
  end
@@ -15,7 +15,7 @@ require_relative "notion_ruby_mapping/version"
15
15
  controllers: %w[notion_cache payload property_cache query rich_text_array discussion_thread search mermaid
16
16
  mermaid_database],
17
17
  objects: %w[rich_text_object emoji_object equation_object file_object mention_object text_object user_object
18
- comment_object],
18
+ comment_object file_upload_object],
19
19
  properties: %w[property checkbox_property multi_property created_by_property date_base_property created_time_property
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
@@ -35,6 +35,8 @@ Gem::Specification.new do |spec|
35
35
  # spec.add_dependency "example-gem", "~> 1.0"
36
36
 
37
37
  spec.add_dependency "faraday"
38
+ spec.add_dependency "faraday-multipart"
39
+ spec.add_dependency "mime-types"
38
40
 
39
41
  spec.add_development_dependency "guard"
40
42
  spec.add_development_dependency "guard-rspec"
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notion_ruby_mapping
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki KOBAYASHI
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2025-06-26 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: faraday
@@ -23,6 +24,34 @@ dependencies:
23
24
  - - ">="
24
25
  - !ruby/object:Gem::Version
25
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday-multipart
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mime-types
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
26
55
  - !ruby/object:Gem::Dependency
27
56
  name: guard
28
57
  requirement: !ruby/object:Gem::Requirement
@@ -212,6 +241,7 @@ files:
212
241
  - lib/notion_ruby_mapping/objects/emoji_object.rb
213
242
  - lib/notion_ruby_mapping/objects/equation_object.rb
214
243
  - lib/notion_ruby_mapping/objects/file_object.rb
244
+ - lib/notion_ruby_mapping/objects/file_upload_object.rb
215
245
  - lib/notion_ruby_mapping/objects/mention_object.rb
216
246
  - lib/notion_ruby_mapping/objects/rich_text_object.rb
217
247
  - lib/notion_ruby_mapping/objects/text_object.rb
@@ -250,6 +280,7 @@ homepage: https://github.com/hkob/notion_ruby_mapping.git
250
280
  licenses:
251
281
  - MIT
252
282
  metadata: {}
283
+ post_install_message:
253
284
  rdoc_options: []
254
285
  require_paths:
255
286
  - lib
@@ -264,7 +295,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
295
  - !ruby/object:Gem::Version
265
296
  version: '0'
266
297
  requirements: []
267
- rubygems_version: 3.6.9
298
+ rubygems_version: 3.5.11
299
+ signing_key:
268
300
  specification_version: 4
269
301
  summary: Notion Ruby mapping tool
270
302
  test_files: []