eco-helpers 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/.rubocop.yml +3 -0
 - data/CHANGELOG.md +24 -1
 - data/eco-helpers.gemspec +2 -2
 - data/lib/eco/api/usecases/default/meta/cli/graphql_schema_cli.rb +15 -0
 - data/lib/eco/api/usecases/default/meta/graphql_schema.rb +78 -0
 - data/lib/eco/api/usecases/default/meta.rb +12 -0
 - data/lib/eco/api/usecases/default/utils/cli/split_csv_cli.rb +1 -1
 - data/lib/eco/api/usecases/default/utils/split_csv_case.rb +1 -1
 - data/lib/eco/api/usecases/default.rb +2 -1
 - data/lib/eco/version.rb +1 -1
 - metadata +17 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: c1a2d4588e054806a3ccbebd04efd0b8bdb25b750e18e26ed69a29e6f219a552
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 5828f9d271d41cd18f8f0b684d4711c18c7edfaa906910566145141d8dd3c869
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 2c293216d07c3553ff786c9c46019de87b5ef142a19e4b9ae709527b257c279534d7e21f737c824586263cbbc79c6983630bea7a1986d105f7665aec933b8ce4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a283d0285a0b370af02eeb3f75e1482e94a2774f58cbad3898f159a5152d999253dc8873abe1a41b6ced16238f8205f3e0d86a6d0655cd2de0a187d311acc5a5
         
     | 
    
        data/.rubocop.yml
    CHANGED
    
    | 
         @@ -30,6 +30,9 @@ Style/ConditionalAssignment: 
     | 
|
| 
       30 
30 
     | 
    
         
             
            Style/BlockDelimiters:
         
     | 
| 
       31 
31 
     | 
    
         
             
              BracesRequiredMethods: ['log']
         
     | 
| 
       32 
32 
     | 
    
         
             
              AllowedPatterns: ['proc', 'new']
         
     | 
| 
      
 33 
     | 
    
         
            +
            Style/HashSyntax:
         
     | 
| 
      
 34 
     | 
    
         
            +
              EnforcedShorthandSyntax: either
         
     | 
| 
      
 35 
     | 
    
         
            +
              EnforcedStyle: no_mixed_keys
         
     | 
| 
       33 
36 
     | 
    
         
             
            Style/ClassAndModuleChildren:
         
     | 
| 
       34 
37 
     | 
    
         
             
              Enabled: false
         
     | 
| 
       35 
38 
     | 
    
         
             
            Style/FrozenStringLiteralComment:
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -2,12 +2,35 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            All notable changes to this project will be documented in this file.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            ## [3.0. 
     | 
| 
      
 5 
     | 
    
         
            +
            ## [3.0.3] - 2024-08-xx
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            ### Added
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            ### Changed
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
      
 11 
     | 
    
         
            +
            ## [3.0.2] - 2024-08-09
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            ### Changed
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            - upgraded gem dependencies
         
     | 
| 
      
 16 
     | 
    
         
            +
              - `ecoportal-api-graphql`
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ## [3.0.1] - 2024-08-09
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            - `GraphQLSchema` case to extract the schema in a json file
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            ### Changed
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            - `SplitCsv` case namespace
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            ### Fixed
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            - have `Eco::VERSION` defined
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            ## [3.0.0] - 2024-08-01
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       11 
34 
     | 
    
         
             
            - require `ruby 3`
         
     | 
| 
       12 
35 
     | 
    
         | 
| 
       13 
36 
     | 
    
         
             
            ### Fixed
         
     | 
    
        data/eco-helpers.gemspec
    CHANGED
    
    | 
         @@ -40,8 +40,8 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       40 
40 
     | 
    
         
             
              spec.add_dependency 'docx',          '>= 0.8.0', '< 0.9'
         
     | 
| 
       41 
41 
     | 
    
         
             
              spec.add_dependency 'dotenv',        '~> 3'
         
     | 
| 
       42 
42 
     | 
    
         
             
              spec.add_dependency 'ecoportal-api',         '~> 0.10'
         
     | 
| 
       43 
     | 
    
         
            -
              spec.add_dependency 'ecoportal-api-graphql', '~> 0.4'
         
     | 
| 
       44 
     | 
    
         
            -
              spec.add_dependency 'ecoportal-api-v2',      '~> 2.0'
         
     | 
| 
      
 43 
     | 
    
         
            +
              spec.add_dependency 'ecoportal-api-graphql', '~> 0.4', '>= 0.4.1'
         
     | 
| 
      
 44 
     | 
    
         
            +
              spec.add_dependency 'ecoportal-api-v2',      '~> 2.0', '>= 2.0.8'
         
     | 
| 
       45 
45 
     | 
    
         
             
              spec.add_dependency 'ed25519',       '~> 1.2'
         
     | 
| 
       46 
46 
     | 
    
         
             
              spec.add_dependency 'fast_excel',    '>= 0.5.0',  '< 0.6'
         
     | 
| 
       47 
47 
     | 
    
         
             
              spec.add_dependency 'fuzzy_match',   '>= 2.1.0',  '< 2.2'
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Eco::API::UseCases::Default::Meta::GraphQLSchema
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Cli < Eco::API::UseCases::Cli
         
     | 
| 
      
 3 
     | 
    
         
            +
                desc "Retrieves and stores the GraphQL Schema"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                callback do |_sess, options, _case|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  file = SCR.get_arg(cli_name, with_param: true)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  options.deep_merge!(output: {file: {name: file}})
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                add_option("-format", "Kind of extract (definition | json | yaml )") do |options|
         
     | 
| 
      
 11 
     | 
    
         
            +
                  format = SCR.get_arg("-format", with_param: true)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  options.deep_merge!(output: {format: format})
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,78 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Eco::API::UseCases::Default::Meta::GraphQLSchema < Eco::API::Common::Loaders::UseCase
         
     | 
| 
      
 2 
     | 
    
         
            +
              include Eco::API::UseCases::GraphQL::Helpers::Base
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              require_relative 'cli/graphql_schema_cli'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              OUT_FOLDER      = "sftp".freeze
         
     | 
| 
      
 7 
     | 
    
         
            +
              OUT_TIME_FORMAT = '%Y%m%dT%H%M%S'.freeze
         
     | 
| 
      
 8 
     | 
    
         
            +
              OUT_FILENAME    = "graphql_schema".freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              name "graphql-schema"
         
     | 
| 
      
 11 
     | 
    
         
            +
              type :other
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              def main(*_args)
         
     | 
| 
      
 14 
     | 
    
         
            +
                return unless graphql_schema
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                File.open(output_filename, 'wb') { |fd| fd << schema_content }
         
     | 
| 
      
 17 
     | 
    
         
            +
                log(:info) {
         
     | 
| 
      
 18 
     | 
    
         
            +
                  "Generated file: '#{output_filename}'"
         
     | 
| 
      
 19 
     | 
    
         
            +
                }
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              private
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              def schema_content
         
     | 
| 
      
 25 
     | 
    
         
            +
                case output_format
         
     | 
| 
      
 26 
     | 
    
         
            +
                when :definition
         
     | 
| 
      
 27 
     | 
    
         
            +
                  graphql_schema.to_definition
         
     | 
| 
      
 28 
     | 
    
         
            +
                when :json
         
     | 
| 
      
 29 
     | 
    
         
            +
                  graphql_schema.to_json
         
     | 
| 
      
 30 
     | 
    
         
            +
                when :yaml
         
     | 
| 
      
 31 
     | 
    
         
            +
                  graphql_schema.to_yaml
         
     | 
| 
      
 32 
     | 
    
         
            +
                else
         
     | 
| 
      
 33 
     | 
    
         
            +
                  raise ArgumentError, "Unknown '-format' #{output_format}"
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              def graphql_schema
         
     | 
| 
      
 38 
     | 
    
         
            +
                @graphql_schema ||= graphql.client.schema
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              def output_filename(name = output_basename)
         
     | 
| 
      
 42 
     | 
    
         
            +
                File.join(output_folder, "#{timestamp}_#{enviro_name}_#{name}.#{output_extension}")
         
     | 
| 
      
 43 
     | 
    
         
            +
              end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              def enviro_name
         
     | 
| 
      
 46 
     | 
    
         
            +
                @enviro_name ||= ''.then do
         
     | 
| 
      
 47 
     | 
    
         
            +
                  host = graphql.client.host
         
     | 
| 
      
 48 
     | 
    
         
            +
                  uri  = URI.parse("https://#{host}")
         
     | 
| 
      
 49 
     | 
    
         
            +
                  uri.host.split('.')[0].gsub('-', '_')
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              def output_extension
         
     | 
| 
      
 54 
     | 
    
         
            +
                case output_format
         
     | 
| 
      
 55 
     | 
    
         
            +
                when :definition then 'graphql'
         
     | 
| 
      
 56 
     | 
    
         
            +
                when :json       then 'json'
         
     | 
| 
      
 57 
     | 
    
         
            +
                when :yaml       then 'yml'
         
     | 
| 
      
 58 
     | 
    
         
            +
                else
         
     | 
| 
      
 59 
     | 
    
         
            +
                  'txt'
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              def output_folder
         
     | 
| 
      
 64 
     | 
    
         
            +
                "#{config.active_enviro}/#{self.class::OUT_FOLDER}"
         
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
              def timestamp(date = Time.now)
         
     | 
| 
      
 68 
     | 
    
         
            +
                date.strftime(self.class::OUT_TIME_FORMAT)
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              def output_basename
         
     | 
| 
      
 72 
     | 
    
         
            +
                options.dig(:output, :file, :name) || self.class::OUT_FILENAME
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              def output_format
         
     | 
| 
      
 76 
     | 
    
         
            +
                @output_format ||= (options.dig(:output, :format) || :definition).to_sym
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
      
 78 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/eco/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: eco-helpers
         
     | 
| 
       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 
     | 
    
         
             
            - Oscar Segura
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2024-08- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-08-08 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake
         
     | 
| 
         @@ -247,6 +247,9 @@ dependencies: 
     | 
|
| 
       247 
247 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       248 
248 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       249 
249 
     | 
    
         
             
                    version: '0.4'
         
     | 
| 
      
 250 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 251 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 252 
     | 
    
         
            +
                    version: 0.4.1
         
     | 
| 
       250 
253 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       251 
254 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       252 
255 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -254,6 +257,9 @@ dependencies: 
     | 
|
| 
       254 
257 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       255 
258 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       256 
259 
     | 
    
         
             
                    version: '0.4'
         
     | 
| 
      
 260 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 261 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 262 
     | 
    
         
            +
                    version: 0.4.1
         
     | 
| 
       257 
263 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       258 
264 
     | 
    
         
             
              name: ecoportal-api-v2
         
     | 
| 
       259 
265 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -261,6 +267,9 @@ dependencies: 
     | 
|
| 
       261 
267 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       262 
268 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       263 
269 
     | 
    
         
             
                    version: '2.0'
         
     | 
| 
      
 270 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 271 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 272 
     | 
    
         
            +
                    version: 2.0.8
         
     | 
| 
       264 
273 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       265 
274 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       266 
275 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -268,6 +277,9 @@ dependencies: 
     | 
|
| 
       268 
277 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       269 
278 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       270 
279 
     | 
    
         
             
                    version: '2.0'
         
     | 
| 
      
 280 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 281 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 282 
     | 
    
         
            +
                    version: 2.0.8
         
     | 
| 
       271 
283 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       272 
284 
     | 
    
         
             
              name: ed25519
         
     | 
| 
       273 
285 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -658,6 +670,9 @@ files: 
     | 
|
| 
       658 
670 
     | 
    
         
             
            - lib/eco/api/usecases/default/locations/csv_to_tree_case.rb
         
     | 
| 
       659 
671 
     | 
    
         
             
            - lib/eco/api/usecases/default/locations/tagtree_extract_case.rb
         
     | 
| 
       660 
672 
     | 
    
         
             
            - lib/eco/api/usecases/default/locations/tagtree_upload_case.rb
         
     | 
| 
      
 673 
     | 
    
         
            +
            - lib/eco/api/usecases/default/meta.rb
         
     | 
| 
      
 674 
     | 
    
         
            +
            - lib/eco/api/usecases/default/meta/cli/graphql_schema_cli.rb
         
     | 
| 
      
 675 
     | 
    
         
            +
            - lib/eco/api/usecases/default/meta/graphql_schema.rb
         
     | 
| 
       661 
676 
     | 
    
         
             
            - lib/eco/api/usecases/default/people.rb
         
     | 
| 
       662 
677 
     | 
    
         
             
            - lib/eco/api/usecases/default/people/amend.rb
         
     | 
| 
       663 
678 
     | 
    
         
             
            - lib/eco/api/usecases/default/people/amend/clean_unknown_tags_case.rb
         
     |