diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92e6da2..601b249 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,9 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 - name: Install dependencies - run: bundle install + run: | + bundle config set --local without 'gruff' + bundle install - name: Run tests run: bundle exec rspec - name: Report coverage diff --git a/.ruby-version b/.ruby-version index 8c50098..fd2a018 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1 +3.1.0 diff --git a/Gemfile b/Gemfile index 60127bb..b0eed96 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,7 @@ source "https://rubygems.org" # Specify your gem's dependencies in graphql-groups.gemspec gemspec + +group :gruff do + gem 'gruff', '~> 0.29' +end diff --git a/Gemfile.lock b/Gemfile.lock index eb23b7a..e1aca01 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,7 @@ GEM addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) ast (2.4.1) - base64 (0.2.0) + base64 (0.3.0) benchmark-ips (2.8.2) bigdecimal (3.1.8) concurrent-ruby (1.3.4) @@ -41,19 +41,21 @@ GEM domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) drb (2.2.1) - fiber-storage (1.0.0) + fiber-storage (1.0.1) gqli (1.0.0) hashie (~> 3.0) http (> 0.8, < 3.0) multi_json (~> 1) - graphql (2.3.19) + graphql (2.5.18) base64 fiber-storage + logger groupdate (6.5.1) activesupport (>= 7) - gruff (0.10.0) + gruff (0.29.0) + bigdecimal (>= 3.0) histogram - rmagick + rmagick (>= 5.5) hashie (3.6.0) histogram (0.2.4.1) http (2.2.2) @@ -71,15 +73,19 @@ GEM mini_portile2 (2.8.7) minitest (5.25.1) multi_json (1.15.0) + observer (0.1.2) parallel (1.19.2) parser (2.7.1.4) ast (~> 2.4.1) + pkg-config (1.6.5) public_suffix (4.0.6) rainbow (3.0.0) rake (13.0.1) regexp_parser (1.7.1) rexml (3.3.9) - rmagick (4.1.2) + rmagick (6.1.5) + observer (~> 0.1) + pkg-config (~> 1.4) rspec (3.9.0) rspec-core (~> 3.9.0) rspec-expectations (~> 3.9.0) @@ -135,7 +141,7 @@ DEPENDENCIES gqli (~> 1.0) graphql-groups! groupdate (~> 6.5.1) - gruff (~> 0.10) + gruff (~> 0.29) rake (~> 13.0) rspec (~> 3.0) rubocop (~> 0.88) diff --git a/graphql-groups.gemspec b/graphql-groups.gemspec index b5ae7ab..625429a 100644 --- a/graphql-groups.gemspec +++ b/graphql-groups.gemspec @@ -39,7 +39,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'database_cleaner-active_record', '~> 2.1' spec.add_development_dependency 'gqli', '~> 1.0' spec.add_development_dependency 'groupdate', '~> 6.5.1' - spec.add_development_dependency 'gruff', '~> 0.10' spec.add_development_dependency 'rake', '~> 13.0' spec.add_development_dependency 'rspec', '~> 3.0' spec.add_development_dependency 'rubocop', '~> 0.88' diff --git a/lib/graphql/groups/has_aggregates.rb b/lib/graphql/groups/has_aggregates.rb index 23fcc34..56c7d3a 100644 --- a/lib/graphql/groups/has_aggregates.rb +++ b/lib/graphql/groups/has_aggregates.rb @@ -30,7 +30,17 @@ def aggregate(name, *_, **options, &block) end def aggregate_field(*args, **kwargs, &block) - field_defn = Schema::AggregateField.from_options(*args, owner: self, **kwargs, &block) + if args.any? + name_arg = args.shift + type_arg = args.shift + desc_arg = args.shift + + kwargs[:name] ||= name_arg + kwargs[:type] ||= type_arg if type_arg + kwargs[:description] ||= desc_arg if desc_arg + end + + field_defn = Schema::AggregateField.new(owner: self, **kwargs, &block) field_defn.ensure_loaded if Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('2.3') add_field(field_defn) field_defn diff --git a/lib/graphql/groups/has_groups.rb b/lib/graphql/groups/has_groups.rb index 2729cbc..28fe228 100644 --- a/lib/graphql/groups/has_groups.rb +++ b/lib/graphql/groups/has_groups.rb @@ -37,7 +37,17 @@ def by(name, **options, &block) end def group_field(*args, **kwargs, &block) - field_defn = field_class.from_options(*args, owner: self, **kwargs, &block) + if args.any? + name_arg = args.shift + type_arg = args.shift + desc_arg = args.shift + + kwargs[:name] ||= name_arg + kwargs[:type] ||= type_arg if type_arg + kwargs[:description] ||= desc_arg if desc_arg + end + + field_defn = field_class.new(owner: self, **kwargs, &block) add_field(field_defn) field_defn end