graphql_devise 0.11.1 → 0.11.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 580d9a3a2c78687ecf7268521db9dc79a37c69a17b23ec7221b53de22ee0c137
4
- data.tar.gz: ee9be896415d8b816191680aeb368d9b114b3dfc01c9ee8291461aa3ef3ebc08
3
+ metadata.gz: a1a520284d1b06d637b6a5438d34a0c1fc0a150643f7915afe7c62af88749a42
4
+ data.tar.gz: c4db3a40a6513306c51937a70a1cee0960b26ed7d25e73c9c1d4bdea8f1da4d1
5
5
  SHA512:
6
- metadata.gz: dc80b028276918bab533b07e279a8572efa07b9b01afaffdfc841d578aa9bf8ea26aa31b67c422f111fdfa93b01ce3d58a448f0791d6d7df40b50616c391e835
7
- data.tar.gz: 1043a114f91cc6474a6a147f93fbb0d067ad24ffcc914a578f40c8e24dca464b7562da92c0d039c0aa3559a5d918d0a0cac76827a82cafa2d55a5fcc24254513
6
+ metadata.gz: ea8cf460d52cf99b4113faf028541b57d8f1930ece55da23e7c6e78116d08ee20e5ccd9279fe87229e550d9f8d3f316864c015499c7d648b866a500b739b01d0
7
+ data.tar.gz: ae14da2bec687cb822b05e5a78a68123e9df6b581a38f793817ec80203b8dadd3b48c2af38337ae1f0f0dd957626dc4a0b018f14b3faff7f8a6bd12da1f58239
data/.travis.yml CHANGED
@@ -5,6 +5,8 @@ cache: bundler
5
5
  before_install: gem install bundler -v 1.17
6
6
  before_script: RAILS_ENV=test bundle exec rake db:create db:schema:load
7
7
 
8
+ env: EAGER_LOAD=true
9
+
8
10
  rvm:
9
11
  - 2.2.10
10
12
  - 2.3.8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.11.2](https://github.com/graphql-devise/graphql_devise/tree/v0.11.2) (2020-05-06)
4
+
5
+ [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v0.11.1...v0.11.2)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Avoid multiple schema and type load \(Devise behavior\) [\#88](https://github.com/graphql-devise/graphql_devise/pull/88) ([mcelicalderon](https://github.com/mcelicalderon))
10
+
3
11
  ## [v0.11.1](https://github.com/graphql-devise/graphql_devise/tree/v0.11.1) (2020-05-05)
4
12
 
5
13
  [Full Changelog](https://github.com/graphql-devise/graphql_devise/compare/v0.11.0...v0.11.1)
data/config/routes.rb CHANGED
@@ -1,11 +1,16 @@
1
1
  GraphqlDevise::Engine.routes.draw do
2
- if GraphqlDevise::Types::QueryType.fields.blank?
3
- GraphqlDevise::Types::QueryType.field(:dummy, resolver: GraphqlDevise::Resolvers::Dummy)
4
- end
2
+ # Required as Devise forces routes to reload on eager_load
3
+ unless GraphqlDevise.schema_loaded?
4
+ if GraphqlDevise::Types::QueryType.fields.blank?
5
+ GraphqlDevise::Types::QueryType.field(:dummy, resolver: GraphqlDevise::Resolvers::Dummy)
6
+ end
5
7
 
6
- if GraphqlDevise::Types::MutationType.fields.present?
7
- GraphqlDevise::Schema.mutation(GraphqlDevise::Types::MutationType)
8
- end
8
+ if GraphqlDevise::Types::MutationType.fields.present?
9
+ GraphqlDevise::Schema.mutation(GraphqlDevise::Types::MutationType)
10
+ end
9
11
 
10
- GraphqlDevise::Schema.query(GraphqlDevise::Types::QueryType)
12
+ GraphqlDevise::Schema.query(GraphqlDevise::Types::QueryType)
13
+
14
+ GraphqlDevise.load_schema
15
+ end
11
16
  end
@@ -6,6 +6,25 @@ module GraphqlDevise
6
6
  class Error < StandardError; end
7
7
 
8
8
  class InvalidMountOptionsError < GraphqlDevise::Error; end
9
+
10
+ @schema_loaded = false
11
+ @mounted_resources = []
12
+
13
+ def self.schema_loaded?
14
+ @schema_loaded
15
+ end
16
+
17
+ def self.load_schema
18
+ @schema_loaded = true
19
+ end
20
+
21
+ def self.mount_resource(resource)
22
+ @mounted_resources << resource
23
+ end
24
+
25
+ def self.resource_mounted?(resource)
26
+ @mounted_resources.include?(resource)
27
+ end
9
28
  end
10
29
 
11
30
  require 'graphql_devise/concerns/controller_methods'
@@ -25,10 +25,6 @@ module ActionDispatch::Routing
25
25
  ]
26
26
  ).validate!
27
27
 
28
- authenticatable_type = clean_options.authenticatable_type.presence ||
29
- "Types::#{resource}Type".safe_constantize ||
30
- GraphqlDevise::Types::AuthenticatableType
31
-
32
28
  devise_for(
33
29
  resource.pluralize.underscore.tr('/', '_').to_sym,
34
30
  module: :devise,
@@ -36,6 +32,18 @@ module ActionDispatch::Routing
36
32
  skip: DEVISE_OPERATIONS
37
33
  )
38
34
 
35
+ devise_scope resource.underscore.tr('/', '_').to_sym do
36
+ post clean_options.at, to: 'graphql_devise/graphql#auth'
37
+ get clean_options.at, to: 'graphql_devise/graphql#auth'
38
+ end
39
+
40
+ # Avoid routes reload done by Devise
41
+ return if GraphqlDevise.resource_mounted?(resource)
42
+
43
+ authenticatable_type = clean_options.authenticatable_type.presence ||
44
+ "Types::#{resource}Type".safe_constantize ||
45
+ GraphqlDevise::Types::AuthenticatableType
46
+
39
47
  prepared_mutations = GraphqlDevise::MountMethod::OperationPreparer.new(
40
48
  resource: resource,
41
49
  custom: clean_options.operations,
@@ -66,10 +74,7 @@ module ActionDispatch::Routing
66
74
 
67
75
  Devise.mailer.helper(GraphqlDevise::MailerHelper)
68
76
 
69
- devise_scope resource.underscore.tr('/', '_').to_sym do
70
- post clean_options.at, to: 'graphql_devise/graphql#auth'
71
- get clean_options.at, to: 'graphql_devise/graphql#auth'
72
- end
77
+ GraphqlDevise.mount_resource(resource)
73
78
  end
74
79
  end
75
80
  end
@@ -1,3 +1,3 @@
1
1
  module GraphqlDevise
2
- VERSION = '0.11.1'.freeze
2
+ VERSION = '0.11.2'.freeze
3
3
  end
@@ -10,7 +10,7 @@ Rails.application.configure do
10
10
  # Do not eager load code on boot. This avoids loading your whole application
11
11
  # just for the purpose of running a single test. If you are using a tool that
12
12
  # preloads Rails for running tests, you may have to set it to true.
13
- config.eager_load = false
13
+ config.eager_load = ENV['EAGER_LOAD'].present?
14
14
 
15
15
  # Configure public file server for tests with Cache-Control for performance.
16
16
  if Rails::VERSION::MAJOR >= 5
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Celi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-05-05 00:00:00.000000000 Z
12
+ date: 2020-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise_token_auth