stac 0.2.0 → 0.3.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.
- checksums.yaml +4 -4
 - data/.rubocop.yml +3 -0
 - data/CHANGELOG.md +10 -0
 - data/GETTING_STARTED.md +384 -0
 - data/Gemfile.lock +48 -37
 - data/README.md +12 -59
 - data/Rakefile +62 -4
 - data/Steepfile +2 -0
 - data/lib/stac/asset.rb +3 -1
 - data/lib/stac/catalog.rb +78 -8
 - data/lib/stac/collection.rb +43 -9
 - data/lib/stac/common_metadata.rb +1 -1
 - data/lib/stac/errors.rb +2 -5
 - data/lib/stac/extension.rb +34 -0
 - data/lib/stac/extensions/electro_optical.rb +67 -0
 - data/lib/stac/extensions/projection.rb +42 -0
 - data/lib/stac/extensions/scientific_citation.rb +84 -0
 - data/lib/stac/extensions/view_geometry.rb +38 -0
 - data/lib/stac/extent.rb +39 -31
 - data/lib/stac/file_writer.rb +31 -0
 - data/lib/stac/hash_like.rb +74 -0
 - data/lib/stac/item.rb +56 -22
 - data/lib/stac/link.rb +51 -9
 - data/lib/stac/object_resolver.rb +4 -4
 - data/lib/stac/properties.rb +3 -1
 - data/lib/stac/provider.rb +5 -1
 - data/lib/stac/simple_http_client.rb +3 -0
 - data/lib/stac/stac_object.rb +138 -36
 - data/lib/stac/version.rb +1 -1
 - data/lib/stac.rb +12 -1
 - data/sig/stac/asset.rbs +1 -3
 - data/sig/stac/catalog.rbs +28 -5
 - data/sig/stac/collection.rbs +13 -5
 - data/sig/stac/common_metadata.rbs +2 -2
 - data/sig/stac/errors.rbs +1 -4
 - data/sig/stac/extension.rbs +12 -0
 - data/sig/stac/extensions/electro_optical.rbs +40 -0
 - data/sig/stac/extensions/projection.rbs +32 -0
 - data/sig/stac/extensions/scientific_citation.rbs +38 -0
 - data/sig/stac/extensions/view_geometry.rbs +22 -0
 - data/sig/stac/extent.rbs +13 -16
 - data/sig/stac/file_writer.rbs +13 -0
 - data/sig/stac/hash_like.rbs +13 -0
 - data/sig/stac/item.rbs +16 -7
 - data/sig/stac/link.rbs +20 -12
 - data/sig/stac/object_resolver.rbs +2 -2
 - data/sig/stac/properties.rbs +1 -3
 - data/sig/stac/provider.rbs +2 -3
 - data/sig/stac/simple_http_client.rbs +3 -0
 - data/sig/stac/stac_object.rbs +33 -10
 - data/stac.gemspec +1 -1
 - metadata +18 -3
 
    
        data/sig/stac/link.rbs
    CHANGED
    
    | 
         @@ -1,25 +1,33 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module STAC
         
     | 
| 
      
 2 
     | 
    
         
            +
              class LinkHrefError < Error
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_reader link: Link
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize: (?String? msg, link: Link) -> void
         
     | 
| 
      
 6 
     | 
    
         
            +
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       2 
8 
     | 
    
         
             
              class Link
         
     | 
| 
      
 9 
     | 
    
         
            +
                include HashLike
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       3 
11 
     | 
    
         
             
                def self.from_hash: (Hash[String, untyped]) -> Link
         
     | 
| 
       4 
12 
     | 
    
         | 
| 
       5 
13 
     | 
    
         
             
                attr_accessor rel: String
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 14 
     | 
    
         
            +
                attr_writer href: String?
         
     | 
| 
       7 
15 
     | 
    
         
             
                attr_accessor type: String?
         
     | 
| 
       8 
16 
     | 
    
         
             
                attr_accessor title: String?
         
     | 
| 
       9 
     | 
    
         
            -
                attr_accessor  
     | 
| 
       10 
     | 
    
         
            -
                attr_accessor owner: STACObject | nil
         
     | 
| 
      
 17 
     | 
    
         
            +
                attr_accessor owner: STACObject?
         
     | 
| 
       11 
18 
     | 
    
         
             
                attr_accessor http_client: _HTTPClient
         
     | 
| 
       12 
     | 
    
         
            -
                @target:  
     | 
| 
      
 19 
     | 
    
         
            +
                @target: STACObject?
         
     | 
| 
       13 
20 
     | 
    
         
             
                @resolver: ObjectResolver
         
     | 
| 
       14 
21 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                def initialize: (rel: String, href: String 
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                def  
     | 
| 
      
 22 
     | 
    
         
            +
                def initialize: (?STACObject? target, rel: String, href: String?, ?type: String?, ?title: String?, **untyped) -> void
         
     | 
| 
      
 23 
     | 
    
         
            +
                def resolved?: -> bool
         
     | 
| 
      
 24 
     | 
    
         
            +
                def href: -> String?
         
     | 
| 
       18 
25 
     | 
    
         
             
                def absolute_href: -> String?
         
     | 
| 
       19 
     | 
    
         
            -
                def  
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                def  
     | 
| 
      
 26 
     | 
    
         
            +
                def relative_href: -> String?
         
     | 
| 
      
 27 
     | 
    
         
            +
                def target: (?http_client: _HTTPClient) -> STACObject?
         
     | 
| 
      
 28 
     | 
    
         
            +
                
         
     | 
| 
      
 29 
     | 
    
         
            +
                def href!: -> String
         
     | 
| 
      
 30 
     | 
    
         
            +
                def absolute_href!: -> String
         
     | 
| 
      
 31 
     | 
    
         
            +
                def relative_href!: -> String
         
     | 
| 
       24 
32 
     | 
    
         
             
              end
         
     | 
| 
       25 
33 
     | 
    
         
             
            end
         
     | 
| 
         @@ -2,7 +2,7 @@ module STAC 
     | 
|
| 
       2 
2 
     | 
    
         
             
              class ObjectResolver
         
     | 
| 
       3 
3 
     | 
    
         
             
                RESOLVABLES: Array[_STACObjectClass]
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
                 
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader self.resolvables: Array[_STACObjectClass]
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
                def self.default_http_client: -> _HTTPClient
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
         @@ -18,7 +18,7 @@ module STAC 
     | 
|
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              interface _STACObjectClass
         
     | 
| 
       21 
     | 
    
         
            -
                def type: -> String
         
     | 
| 
      
 21 
     | 
    
         
            +
                def type: -> String?
         
     | 
| 
       22 
22 
     | 
    
         
             
                def from_hash: (Hash[String, untyped] hash) -> untyped
         
     | 
| 
       23 
23 
     | 
    
         
             
              end
         
     | 
| 
       24 
24 
     | 
    
         
             
            end
         
     | 
    
        data/sig/stac/properties.rbs
    CHANGED
    
    | 
         @@ -1,14 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module STAC
         
     | 
| 
       2 
2 
     | 
    
         
             
              class Properties
         
     | 
| 
      
 3 
     | 
    
         
            +
                include HashLike
         
     | 
| 
       3 
4 
     | 
    
         
             
                include CommonMetadata
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
                def self.from_hash: (Hash[String, untyped] hash) -> Properties
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
                attr_accessor datetime: Time?
         
     | 
| 
       8 
     | 
    
         
            -
                attr_accessor extra: Hash[String, untyped]
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                def initialize: (datetime: Time?, **untyped) -> void
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                def to_h: -> Hash[String, untyped]
         
     | 
| 
       13 
11 
     | 
    
         
             
              end
         
     | 
| 
       14 
12 
     | 
    
         
             
            end
         
     | 
    
        data/sig/stac/provider.rbs
    CHANGED
    
    | 
         @@ -1,15 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module STAC
         
     | 
| 
       2 
2 
     | 
    
         
             
              class Provider
         
     | 
| 
      
 3 
     | 
    
         
            +
                include HashLike
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
                def self.from_hash: (Hash[String, untyped] hash) -> Provider
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
                attr_accessor name: String
         
     | 
| 
       6 
8 
     | 
    
         
             
                attr_accessor description: String?
         
     | 
| 
       7 
9 
     | 
    
         
             
                attr_accessor roles: Array[String]?
         
     | 
| 
       8 
10 
     | 
    
         
             
                attr_accessor url: String?
         
     | 
| 
       9 
     | 
    
         
            -
                attr_accessor extra: Hash[String, untyped]
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
                def initialize: (name: String, ?description: String?, ?roles: Array[String]?, ?url: String?, **untyped) -> void
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                def to_h: -> Hash[String, untyped]
         
     | 
| 
       14 
13 
     | 
    
         
             
              end
         
     | 
| 
       15 
14 
     | 
    
         
             
            end
         
     | 
    
        data/sig/stac/stac_object.rbs
    CHANGED
    
    | 
         @@ -1,28 +1,51 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module STAC
         
     | 
| 
      
 2 
     | 
    
         
            +
              class NoSelfHrefError < Error
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_reader stac_object: STACObject
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize: (?String? msg, stac_object: STACObject) -> void
         
     | 
| 
      
 6 
     | 
    
         
            +
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       2 
8 
     | 
    
         
             
              class STACObject
         
     | 
| 
       3 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                include HashLike
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                @@extendables: Hash[String, Extension]
         
     | 
| 
      
 12 
     | 
    
         
            +
                
         
     | 
| 
      
 13 
     | 
    
         
            +
                attr_reader self.type: String?
         
     | 
| 
       4 
14 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
                def self. 
     | 
| 
      
 15 
     | 
    
         
            +
                def self.extendables: -> Array[Extension]
         
     | 
| 
      
 16 
     | 
    
         
            +
                def self.add_extendable: (Extension) -> self
         
     | 
| 
      
 17 
     | 
    
         
            +
                def self.from_hash: (Hash[String | Symbol, untyped]) -> STACObject
         
     | 
| 
       6 
18 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                attr_accessor stac_extensions: Array[String]?
         
     | 
| 
       8 
     | 
    
         
            -
                attr_accessor extra: Hash[String, untyped]
         
     | 
| 
       9 
19 
     | 
    
         
             
                attr_accessor http_client: _HTTPClient
         
     | 
| 
      
 20 
     | 
    
         
            +
                attr_reader stac_extensions: Array[String]
         
     | 
| 
       10 
21 
     | 
    
         
             
                attr_reader links: Array[Link]
         
     | 
| 
       11 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
                @extended: Array[Extension]
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       12 
25 
     | 
    
         
             
                def initialize: (
         
     | 
| 
       13 
     | 
    
         
            -
                  links: Array[ 
     | 
| 
      
 26 
     | 
    
         
            +
                  ?links: Array[Hash[String, String]], ?stac_extensions: Array[String], **untyped
         
     | 
| 
       14 
27 
     | 
    
         
             
                ) -> void
         
     | 
| 
       15 
28 
     | 
    
         | 
| 
       16 
29 
     | 
    
         
             
                def type: -> String
         
     | 
| 
       17 
     | 
    
         
            -
                def  
     | 
| 
       18 
     | 
    
         
            -
                def  
     | 
| 
       19 
     | 
    
         
            -
                def  
     | 
| 
      
 30 
     | 
    
         
            +
                def extended: -> Array[Extension]
         
     | 
| 
      
 31 
     | 
    
         
            +
                def add_extension: (Extension | String) -> self
         
     | 
| 
      
 32 
     | 
    
         
            +
                def find_link: (rel: String, ?type: String?) -> Link?
         
     | 
| 
      
 33 
     | 
    
         
            +
                def add_link: (?STACObject? target, rel: String, ?href: String?, ?type: String?, ?title: String?, **untyped) -> self
         
     | 
| 
       20 
34 
     | 
    
         
             
                def self_href: -> String?
         
     | 
| 
       21 
35 
     | 
    
         
             
                def self_href=: (String) -> void
         
     | 
| 
       22 
     | 
    
         
            -
                def  
     | 
| 
      
 36 
     | 
    
         
            +
                def root: -> Catalog?
         
     | 
| 
      
 37 
     | 
    
         
            +
                def root=: (Catalog? catalog) -> void
         
     | 
| 
      
 38 
     | 
    
         
            +
                def parent: -> Catalog?
         
     | 
| 
      
 39 
     | 
    
         
            +
                def parent=: (Catalog? catalog) -> void
         
     | 
| 
      
 40 
     | 
    
         
            +
                def save: (?String? dest, ?writer: _Writer) -> void
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                def self_href!: -> String
         
     | 
| 
       23 
43 
     | 
    
         | 
| 
       24 
44 
     | 
    
         
             
                private
         
     | 
| 
       25 
45 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                def  
     | 
| 
      
 46 
     | 
    
         
            +
                def extensions: -> Array[Extension]
         
     | 
| 
      
 47 
     | 
    
         
            +
                def apply_extensions!: -> void
         
     | 
| 
      
 48 
     | 
    
         
            +
                def apply_extension!: (Module) -> void
         
     | 
| 
      
 49 
     | 
    
         
            +
                def remove_links: (rel: String) -> Array[Link]?
         
     | 
| 
       27 
50 
     | 
    
         
             
              end
         
     | 
| 
       28 
51 
     | 
    
         
             
            end
         
     | 
    
        data/stac.gemspec
    CHANGED
    
    | 
         @@ -26,7 +26,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       26 
26 
     | 
    
         
             
              spec.files = Dir.chdir(__dir__) do
         
     | 
| 
       27 
27 
     | 
    
         
             
                `git ls-files -z`.split("\x0").reject do |f|
         
     | 
| 
       28 
28 
     | 
    
         
             
                  (f == __FILE__) || f.match(
         
     | 
| 
       29 
     | 
    
         
            -
                    %r{\A(?:(?:bin|spec 
     | 
| 
      
 29 
     | 
    
         
            +
                    %r{\A(?:(?:bin|spec)/|\.(?:git|vscode|devcontainer)|stac-spec)},
         
     | 
| 
       30 
30 
     | 
    
         
             
                  )
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
       32 
32 
     | 
    
         
             
              end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: stac
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Takahiro Miyoshi
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-12-16 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description:
         
     | 
| 
       14 
14 
     | 
    
         
             
            email:
         
     | 
| 
         @@ -21,6 +21,7 @@ files: 
     | 
|
| 
       21 
21 
     | 
    
         
             
            - ".rubocop.yml"
         
     | 
| 
       22 
22 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       23 
23 
     | 
    
         
             
            - CODE_OF_CONDUCT.md
         
     | 
| 
      
 24 
     | 
    
         
            +
            - GETTING_STARTED.md
         
     | 
| 
       24 
25 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       25 
26 
     | 
    
         
             
            - Gemfile.lock
         
     | 
| 
       26 
27 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
         @@ -33,7 +34,14 @@ files: 
     | 
|
| 
       33 
34 
     | 
    
         
             
            - lib/stac/collection.rb
         
     | 
| 
       34 
35 
     | 
    
         
             
            - lib/stac/common_metadata.rb
         
     | 
| 
       35 
36 
     | 
    
         
             
            - lib/stac/errors.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/stac/extension.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/stac/extensions/electro_optical.rb
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/stac/extensions/projection.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/stac/extensions/scientific_citation.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            - lib/stac/extensions/view_geometry.rb
         
     | 
| 
       36 
42 
     | 
    
         
             
            - lib/stac/extent.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            - lib/stac/file_writer.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib/stac/hash_like.rb
         
     | 
| 
       37 
45 
     | 
    
         
             
            - lib/stac/item.rb
         
     | 
| 
       38 
46 
     | 
    
         
             
            - lib/stac/link.rb
         
     | 
| 
       39 
47 
     | 
    
         
             
            - lib/stac/object_resolver.rb
         
     | 
| 
         @@ -50,7 +58,14 @@ files: 
     | 
|
| 
       50 
58 
     | 
    
         
             
            - sig/stac/collection.rbs
         
     | 
| 
       51 
59 
     | 
    
         
             
            - sig/stac/common_metadata.rbs
         
     | 
| 
       52 
60 
     | 
    
         
             
            - sig/stac/errors.rbs
         
     | 
| 
      
 61 
     | 
    
         
            +
            - sig/stac/extension.rbs
         
     | 
| 
      
 62 
     | 
    
         
            +
            - sig/stac/extensions/electro_optical.rbs
         
     | 
| 
      
 63 
     | 
    
         
            +
            - sig/stac/extensions/projection.rbs
         
     | 
| 
      
 64 
     | 
    
         
            +
            - sig/stac/extensions/scientific_citation.rbs
         
     | 
| 
      
 65 
     | 
    
         
            +
            - sig/stac/extensions/view_geometry.rbs
         
     | 
| 
       53 
66 
     | 
    
         
             
            - sig/stac/extent.rbs
         
     | 
| 
      
 67 
     | 
    
         
            +
            - sig/stac/file_writer.rbs
         
     | 
| 
      
 68 
     | 
    
         
            +
            - sig/stac/hash_like.rbs
         
     | 
| 
       54 
69 
     | 
    
         
             
            - sig/stac/item.rbs
         
     | 
| 
       55 
70 
     | 
    
         
             
            - sig/stac/link.rbs
         
     | 
| 
       56 
71 
     | 
    
         
             
            - sig/stac/object_resolver.rbs
         
     | 
| 
         @@ -86,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       86 
101 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       87 
102 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       88 
103 
     | 
    
         
             
            requirements: []
         
     | 
| 
       89 
     | 
    
         
            -
            rubygems_version: 3.3. 
     | 
| 
      
 104 
     | 
    
         
            +
            rubygems_version: 3.3.26
         
     | 
| 
       90 
105 
     | 
    
         
             
            signing_key:
         
     | 
| 
       91 
106 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       92 
107 
     | 
    
         
             
            summary: A library for working with SpatioTemporal Asset Catalog (STAC)
         
     |