notion_ruby_mapping 3.0.0 → 3.0.2
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.
- checksums.yaml +4 -4
 - data/README.md +2 -0
 - data/lib/notion_ruby_mapping/blocks/base.rb +5 -2
 - data/lib/notion_ruby_mapping/blocks/data_source.rb +4 -4
 - data/lib/notion_ruby_mapping/properties/place_property.rb +33 -0
 - data/lib/notion_ruby_mapping/properties/property.rb +1 -0
 - data/lib/notion_ruby_mapping/version.rb +1 -1
 - data/lib/notion_ruby_mapping.rb +1 -1
 - metadata +2 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0bd25791d37f43bba61d634c605af7bb8e5afd178d3166135d40231f96820912
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7aae9ec026d6acce1ad3ea4b542a5cd7db67caa2158c74835526f5699bc0cd90
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5b3db4c23fb05797ecbfea12b6bad3fdc7b5701c3abeaff964dd4fb86e1b91742d1986ba387e56c6ef2978d40a1a6f4df6017a059bdf993a424a246336d11e17
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c76f986868915a57e973d109738e1ae7abbfcb8f861f956f68c9ea2914d3f88a95f3dd64809d4c24e504c77de8b8c55af3554ea4bd5643a5b3b104df8c0ac161
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -136,6 +136,8 @@ NotionRubyMapping.configuration { |c| c.notion_token = ENV["NOTION_API_TOKEN"] } 
     | 
|
| 
       136 
136 
     | 
    
         | 
| 
       137 
137 
     | 
    
         
             
            ## 3. ChangeLog
         
     | 
| 
       138 
138 
     | 
    
         | 
| 
      
 139 
     | 
    
         
            +
            - 2025/10/22 [v3.0.2] Add template_page option for create_child_page and build_child_page
         
     | 
| 
      
 140 
     | 
    
         
            +
            - 2025/10/4 [v3.0.1] Add place_property
         
     | 
| 
       139 
141 
     | 
    
         
             
            - 2025/9/15 [v3.0.0] updates for Notion-Version 2025-09-03 (Add DataSource class)
         
     | 
| 
       140 
142 
     | 
    
         
             
            - 2025/6/29 [v2.0.1] add creating FileUploadObject with external url
         
     | 
| 
       141 
143 
     | 
    
         
             
            - 2025/6/26 [v2.0.0] [FIX] remove symbolize_names: true (only use String)
         
     | 
| 
         @@ -7,7 +7,7 @@ module NotionRubyMapping 
     | 
|
| 
       7 
7 
     | 
    
         
             
                # @param [Hash, nil] json
         
     | 
| 
       8 
8 
     | 
    
         
             
                # @param [String, nil] id
         
     | 
| 
       9 
9 
     | 
    
         
             
                # @param [Array<Property, Class, String>] assign
         
     | 
| 
       10 
     | 
    
         
            -
                def initialize(json: nil, id: nil, assign: [], parent: nil)
         
     | 
| 
      
 10 
     | 
    
         
            +
                def initialize(json: nil, id: nil, assign: [], parent: nil, template_page: nil)
         
     | 
| 
       11 
11 
     | 
    
         
             
                  @nc = NotionCache.instance
         
     | 
| 
       12 
12 
     | 
    
         
             
                  @json = json
         
     | 
| 
       13 
13 
     | 
    
         
             
                  @id = @nc.hex_id(id || @json && @json["id"])
         
     | 
| 
         @@ -16,7 +16,10 @@ module NotionRubyMapping 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  @new_record = true unless parent.nil?
         
     | 
| 
       17 
17 
     | 
    
         
             
                  raise StandardError, "Unknown id" if !is_a?(List) && !is_a?(Block) && @id.nil? && parent.nil?
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                   
     | 
| 
      
 19 
     | 
    
         
            +
                  payload_json = {}
         
     | 
| 
      
 20 
     | 
    
         
            +
                  payload_json["parent"] = parent if !is_a?(Block) && parent
         
     | 
| 
      
 21 
     | 
    
         
            +
                  payload_json["template"] = {"type" => "template_id", "template_id" => template_page.id} if template_page
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @payload = Payload.new(payload_json)
         
     | 
| 
       20 
23 
     | 
    
         
             
                  @property_cache = nil
         
     | 
| 
       21 
24 
     | 
    
         
             
                  @created_time = nil
         
     | 
| 
       22 
25 
     | 
    
         
             
                  @last_edited_time = nil
         
     | 
| 
         @@ -40,9 +40,9 @@ module NotionRubyMapping 
     | 
|
| 
       40 
40 
     | 
    
         
             
                # @param [Array<Property, Class, String>] assign
         
     | 
| 
       41 
41 
     | 
    
         
             
                # @return [NotionRubyMapping::Base]
         
     | 
| 
       42 
42 
     | 
    
         
             
                # @see https://www.notion.so/hkob/DataSource-1462b24502424539a4231bedc07dc2f5#c217ce78020a4de79b720790fce3092d
         
     | 
| 
       43 
     | 
    
         
            -
                def build_child_page(*assign)
         
     | 
| 
      
 43 
     | 
    
         
            +
                def build_child_page(*assign, template_page: nil)
         
     | 
| 
       44 
44 
     | 
    
         
             
                  assign = properties.map { |p| [p.class, p.name] }.flatten if assign.empty?
         
     | 
| 
       45 
     | 
    
         
            -
                  page = Page.new assign: assign, parent: {"data_source_id" => @id}
         
     | 
| 
      
 45 
     | 
    
         
            +
                  page = Page.new assign: assign, parent: {"data_source_id" => @id}, template_page: template_page
         
     | 
| 
       46 
46 
     | 
    
         
             
                  pp = page.properties
         
     | 
| 
       47 
47 
     | 
    
         
             
                  pp.clear_will_update
         
     | 
| 
       48 
48 
     | 
    
         
             
                  yield page, pp if block_given?
         
     | 
| 
         @@ -53,9 +53,9 @@ module NotionRubyMapping 
     | 
|
| 
       53 
53 
     | 
    
         
             
                # @param [Boolean] dry_run true if dry_run
         
     | 
| 
       54 
54 
     | 
    
         
             
                # @return [NotionRubyMapping::Base]
         
     | 
| 
       55 
55 
     | 
    
         
             
                # @see https://www.notion.so/hkob/DataSource-1462b24502424539a4231bedc07dc2f5#c217ce78020a4de79b720790fce3092d
         
     | 
| 
       56 
     | 
    
         
            -
                def create_child_page(*assign, dry_run: false)
         
     | 
| 
      
 56 
     | 
    
         
            +
                def create_child_page(*assign, template_page: nil, dry_run: false)
         
     | 
| 
       57 
57 
     | 
    
         
             
                  assign = properties.map { |p| [p.class, p.name] }.flatten if assign.empty?
         
     | 
| 
       58 
     | 
    
         
            -
                  page = Page.new assign: assign, parent: {"data_source_id" => @id}
         
     | 
| 
      
 58 
     | 
    
         
            +
                  page = Page.new assign: assign, parent: {"data_source_id" => @id}, template_page: template_page
         
     | 
| 
       59 
59 
     | 
    
         
             
                  pp = page.properties
         
     | 
| 
       60 
60 
     | 
    
         
             
                  pp.clear_will_update
         
     | 
| 
       61 
61 
     | 
    
         
             
                  yield page, pp if block_given?
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module NotionRubyMapping
         
     | 
| 
      
 4 
     | 
    
         
            +
              # Button property
         
     | 
| 
      
 5 
     | 
    
         
            +
              class PlaceProperty < Property
         
     | 
| 
      
 6 
     | 
    
         
            +
                TYPE = "place"
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                ### Public announced methods
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                ## Common methods
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                # @return [Boolean, Hash, nil]
         
     | 
| 
      
 13 
     | 
    
         
            +
                def place
         
     | 
| 
      
 14 
     | 
    
         
            +
                  @json
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                # @param [String, Symbol] 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 => {"place" => @json, "type" => "place"}}
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/notion_ruby_mapping.rb
    CHANGED
    
    | 
         @@ -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 button_property verification_property],
         
     | 
| 
      
 23 
     | 
    
         
            +
                             title_property unique_id_property url_property button_property verification_property place_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,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: notion_ruby_mapping
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Hiroyuki KOBAYASHI
         
     | 
| 
         @@ -255,6 +255,7 @@ files: 
     | 
|
| 
       255 
255 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/number_property.rb
         
     | 
| 
       256 
256 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/people_property.rb
         
     | 
| 
       257 
257 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/phone_number_property.rb
         
     | 
| 
      
 258 
     | 
    
         
            +
            - lib/notion_ruby_mapping/properties/place_property.rb
         
     | 
| 
       258 
259 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/property.rb
         
     | 
| 
       259 
260 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/relation_property.rb
         
     | 
| 
       260 
261 
     | 
    
         
             
            - lib/notion_ruby_mapping/properties/rich_text_property.rb
         
     |