notion_ruby_mapping 1.0.0 → 2.0.1

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -0
  3. data/lib/notion_ruby_mapping/blocks/base.rb +51 -37
  4. data/lib/notion_ruby_mapping/blocks/block.rb +13 -13
  5. data/lib/notion_ruby_mapping/blocks/bookmark_block.rb +1 -1
  6. data/lib/notion_ruby_mapping/blocks/breadcrumb_block.rb +1 -1
  7. data/lib/notion_ruby_mapping/blocks/bulleted_list_item_block.rb +1 -1
  8. data/lib/notion_ruby_mapping/blocks/callout_block.rb +10 -10
  9. data/lib/notion_ruby_mapping/blocks/child_base_block.rb +2 -2
  10. data/lib/notion_ruby_mapping/blocks/child_database_block.rb +3 -3
  11. data/lib/notion_ruby_mapping/blocks/child_page_block.rb +3 -3
  12. data/lib/notion_ruby_mapping/blocks/code_block.rb +7 -7
  13. data/lib/notion_ruby_mapping/blocks/column_block.rb +3 -3
  14. data/lib/notion_ruby_mapping/blocks/column_list_block.rb +2 -2
  15. data/lib/notion_ruby_mapping/blocks/database.rb +5 -5
  16. data/lib/notion_ruby_mapping/blocks/divider_block.rb +1 -1
  17. data/lib/notion_ruby_mapping/blocks/embed_block.rb +2 -2
  18. data/lib/notion_ruby_mapping/blocks/equation_block.rb +5 -5
  19. data/lib/notion_ruby_mapping/blocks/file_base_block.rb +15 -3
  20. data/lib/notion_ruby_mapping/blocks/file_block.rb +2 -2
  21. data/lib/notion_ruby_mapping/blocks/heading1_block.rb +3 -3
  22. data/lib/notion_ruby_mapping/blocks/heading2_block.rb +2 -2
  23. data/lib/notion_ruby_mapping/blocks/heading3_block.rb +3 -3
  24. data/lib/notion_ruby_mapping/blocks/image_block.rb +2 -2
  25. data/lib/notion_ruby_mapping/blocks/link_preview_block.rb +2 -2
  26. data/lib/notion_ruby_mapping/blocks/link_to_page_block.rb +5 -5
  27. data/lib/notion_ruby_mapping/blocks/list.rb +21 -21
  28. data/lib/notion_ruby_mapping/blocks/numbered_list_item_block.rb +2 -2
  29. data/lib/notion_ruby_mapping/blocks/page.rb +8 -8
  30. data/lib/notion_ruby_mapping/blocks/paragraph_block.rb +2 -2
  31. data/lib/notion_ruby_mapping/blocks/pdf_block.rb +2 -2
  32. data/lib/notion_ruby_mapping/blocks/quote_block.rb +1 -1
  33. data/lib/notion_ruby_mapping/blocks/synced_block.rb +5 -5
  34. data/lib/notion_ruby_mapping/blocks/table_block.rb +8 -8
  35. data/lib/notion_ruby_mapping/blocks/table_of_contents_block.rb +3 -3
  36. data/lib/notion_ruby_mapping/blocks/table_row_block.rb +3 -3
  37. data/lib/notion_ruby_mapping/blocks/template_block.rb +3 -3
  38. data/lib/notion_ruby_mapping/blocks/text_sub_block_color_base_block.rb +4 -4
  39. data/lib/notion_ruby_mapping/blocks/to_do_block.rb +4 -4
  40. data/lib/notion_ruby_mapping/blocks/toggle_block.rb +2 -2
  41. data/lib/notion_ruby_mapping/blocks/toggle_heading1_block.rb +2 -2
  42. data/lib/notion_ruby_mapping/blocks/toggle_heading2_block.rb +2 -2
  43. data/lib/notion_ruby_mapping/blocks/toggle_heading3_block.rb +3 -3
  44. data/lib/notion_ruby_mapping/blocks/url_base_block.rb +3 -3
  45. data/lib/notion_ruby_mapping/blocks/url_caption_base_block.rb +4 -4
  46. data/lib/notion_ruby_mapping/blocks/video_block.rb +2 -2
  47. data/lib/notion_ruby_mapping/controllers/mermaid.rb +2 -5
  48. data/lib/notion_ruby_mapping/controllers/mermaid_database.rb +29 -32
  49. data/lib/notion_ruby_mapping/controllers/notion_cache.rb +76 -2
  50. data/lib/notion_ruby_mapping/controllers/payload.rb +29 -11
  51. data/lib/notion_ruby_mapping/controllers/property_cache.rb +8 -9
  52. data/lib/notion_ruby_mapping/controllers/query.rb +14 -14
  53. data/lib/notion_ruby_mapping/controllers/search.rb +5 -5
  54. data/lib/notion_ruby_mapping/objects/comment_object.rb +2 -2
  55. data/lib/notion_ruby_mapping/objects/emoji_object.rb +3 -3
  56. data/lib/notion_ruby_mapping/objects/equation_object.rb +3 -3
  57. data/lib/notion_ruby_mapping/objects/file_object.rb +44 -21
  58. data/lib/notion_ruby_mapping/objects/file_upload_object.rb +86 -0
  59. data/lib/notion_ruby_mapping/objects/mention_object.rb +43 -43
  60. data/lib/notion_ruby_mapping/objects/rich_text_object.rb +43 -43
  61. data/lib/notion_ruby_mapping/objects/text_object.rb +5 -5
  62. data/lib/notion_ruby_mapping/objects/user_object.rb +4 -4
  63. data/lib/notion_ruby_mapping/properties/button_property.rb +3 -3
  64. data/lib/notion_ruby_mapping/properties/checkbox_property.rb +3 -3
  65. data/lib/notion_ruby_mapping/properties/created_by_property.rb +3 -3
  66. data/lib/notion_ruby_mapping/properties/created_time_property.rb +2 -2
  67. data/lib/notion_ruby_mapping/properties/date_base_property.rb +15 -14
  68. data/lib/notion_ruby_mapping/properties/date_property.rb +16 -16
  69. data/lib/notion_ruby_mapping/properties/email_property.rb +3 -3
  70. data/lib/notion_ruby_mapping/properties/files_property.rb +14 -12
  71. data/lib/notion_ruby_mapping/properties/formula_property.rb +7 -7
  72. data/lib/notion_ruby_mapping/properties/last_edited_by_property.rb +4 -3
  73. data/lib/notion_ruby_mapping/properties/last_edited_time_property.rb +2 -2
  74. data/lib/notion_ruby_mapping/properties/multi_select_property.rb +15 -15
  75. data/lib/notion_ruby_mapping/properties/number_property.rb +9 -9
  76. data/lib/notion_ruby_mapping/properties/people_property.rb +7 -7
  77. data/lib/notion_ruby_mapping/properties/phone_number_property.rb +3 -3
  78. data/lib/notion_ruby_mapping/properties/property.rb +55 -56
  79. data/lib/notion_ruby_mapping/properties/relation_property.rb +17 -18
  80. data/lib/notion_ruby_mapping/properties/rich_text_property.rb +5 -5
  81. data/lib/notion_ruby_mapping/properties/rollup_property.rb +15 -15
  82. data/lib/notion_ruby_mapping/properties/select_property.rb +14 -14
  83. data/lib/notion_ruby_mapping/properties/status_property.rb +5 -5
  84. data/lib/notion_ruby_mapping/properties/text_property.rb +1 -1
  85. data/lib/notion_ruby_mapping/properties/title_property.rb +7 -7
  86. data/lib/notion_ruby_mapping/properties/unique_id_property.rb +4 -4
  87. data/lib/notion_ruby_mapping/properties/url_property.rb +3 -3
  88. data/lib/notion_ruby_mapping/properties/verification_property.rb +3 -3
  89. data/lib/notion_ruby_mapping/version.rb +1 -1
  90. data/lib/notion_ruby_mapping.rb +1 -1
  91. data/notion_ruby_mapping.gemspec +2 -0
  92. metadata +30 -1
@@ -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.1"
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,7 +1,7 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki KOBAYASHI
@@ -23,6 +23,34 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: faraday-multipart
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: mime-types
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
26
54
  - !ruby/object:Gem::Dependency
27
55
  name: guard
28
56
  requirement: !ruby/object:Gem::Requirement
@@ -212,6 +240,7 @@ files:
212
240
  - lib/notion_ruby_mapping/objects/emoji_object.rb
213
241
  - lib/notion_ruby_mapping/objects/equation_object.rb
214
242
  - lib/notion_ruby_mapping/objects/file_object.rb
243
+ - lib/notion_ruby_mapping/objects/file_upload_object.rb
215
244
  - lib/notion_ruby_mapping/objects/mention_object.rb
216
245
  - lib/notion_ruby_mapping/objects/rich_text_object.rb
217
246
  - lib/notion_ruby_mapping/objects/text_object.rb