Skip to content

Commit 931307f

Browse files
author
Brian Morton
committed
Address PR feedback to pull a builder helper out to reduce duplication
1 parent 15629d0 commit 931307f

File tree

5 files changed

+31
-6
lines changed

5 files changed

+31
-6
lines changed

lib/graphql/persisted_queries.rb

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
require "graphql/persisted_queries/schema_patch"
55
require "graphql/persisted_queries/store_adapters"
66
require "graphql/persisted_queries/version"
7+
require "graphql/persisted_queries/builder_helpers"
78

89
module GraphQL
910
# Plugin definition
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# frozen_string_literal: true
2+
3+
module GraphQL
4+
module PersistedQueries
5+
# Contains factory methods for error handlers
6+
module BuilderHelpers
7+
def self.camelize(name)
8+
name.to_s.split("_").map(&:capitalize).join
9+
end
10+
end
11+
end
12+
end

lib/graphql/persisted_queries/error_handlers.rb

+1-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@ def self.build_from_proc(proc)
2626
end
2727

2828
def self.build_by_name(name, options)
29-
camelized_handler = name.to_s.split("_").map(&:capitalize).join
30-
handler_class_name = "#{camelized_handler}ErrorHandler"
31-
ErrorHandlers.const_get(handler_class_name).new(options || {})
29+
const_get("#{BuilderHelpers.camelize(name)}ErrorHandler").new(options || {})
3230
rescue NameError => e
3331
raise e.class, "Persisted query error handler for :#{name} haven't been found", e.backtrace
3432
end

lib/graphql/persisted_queries/store_adapters.rb

+1-3
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ def self.build(adapter, options = nil)
1717
end
1818

1919
def self.build_by_name(name, options)
20-
camelized_adapter = name.to_s.split("_").map(&:capitalize).join
21-
adapter_class_name = "#{camelized_adapter}StoreAdapter"
22-
StoreAdapters.const_get(adapter_class_name).new(options || {})
20+
const_get("#{BuilderHelpers.camelize(name)}StoreAdapter").new(options || {})
2321
rescue NameError => e
2422
raise e.class, "Persisted query store adapter for :#{name} haven't been found", e.backtrace
2523
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
require "spec_helper"
4+
5+
RSpec.describe GraphQL::PersistedQueries::BuilderHelpers do
6+
describe ".camelize" do
7+
let(:name) { nil }
8+
subject { described_class.camelize(name) }
9+
10+
context "when a symbol is passed" do
11+
let(:name) { :this_is_a_test }
12+
13+
it { is_expected.to eq("ThisIsATest") }
14+
end
15+
end
16+
end

0 commit comments

Comments
 (0)