graphiti 1.0.rc.21 → 1.0.rc.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.standard.yml +14 -0
  4. data/.travis.yml +31 -2
  5. data/Appraisals +16 -10
  6. data/Gemfile +5 -5
  7. data/Guardfile +2 -2
  8. data/README.md +1 -1
  9. data/Rakefile +4 -4
  10. data/exe/graphiti +1 -1
  11. data/gemfiles/rails_4.gemfile +0 -1
  12. data/gemfiles/rails_5.gemfile +0 -1
  13. data/gemfiles/rails_6.gemfile +19 -0
  14. data/graphiti.gemspec +15 -14
  15. data/lib/generators/graphiti/api_test_generator.rb +16 -16
  16. data/lib/generators/graphiti/generator_mixin.rb +7 -7
  17. data/lib/generators/graphiti/install_generator.rb +19 -19
  18. data/lib/generators/graphiti/resource_generator.rb +19 -19
  19. data/lib/generators/graphiti/resource_test_generator.rb +10 -10
  20. data/lib/graphiti.rb +24 -26
  21. data/lib/graphiti/adapters/abstract.rb +25 -39
  22. data/lib/graphiti/adapters/active_record.rb +43 -49
  23. data/lib/graphiti/adapters/active_record/many_to_many_sideload.rb +33 -11
  24. data/lib/graphiti/adapters/graphiti_api.rb +16 -16
  25. data/lib/graphiti/adapters/null.rb +0 -12
  26. data/lib/graphiti/cli.rb +7 -7
  27. data/lib/graphiti/configuration.rb +14 -15
  28. data/lib/graphiti/context.rb +1 -1
  29. data/lib/graphiti/debugger.rb +22 -26
  30. data/lib/graphiti/delegates/pagination.rb +9 -9
  31. data/lib/graphiti/deserializer.rb +7 -9
  32. data/lib/graphiti/errors.rb +119 -119
  33. data/lib/graphiti/extensions/boolean_attribute.rb +1 -1
  34. data/lib/graphiti/extensions/extra_attribute.rb +1 -1
  35. data/lib/graphiti/extensions/temp_id.rb +1 -1
  36. data/lib/graphiti/filter_operators.rb +6 -0
  37. data/lib/graphiti/hash_renderer.rb +15 -15
  38. data/lib/graphiti/jsonapi_serializable_ext.rb +1 -1
  39. data/lib/graphiti/query.rb +35 -35
  40. data/lib/graphiti/railtie.rb +14 -10
  41. data/lib/graphiti/renderer.rb +2 -2
  42. data/lib/graphiti/resource.rb +4 -6
  43. data/lib/graphiti/resource/configuration.rb +9 -13
  44. data/lib/graphiti/resource/documentation.rb +4 -2
  45. data/lib/graphiti/resource/dsl.rb +21 -25
  46. data/lib/graphiti/resource/interface.rb +3 -3
  47. data/lib/graphiti/resource/links.rb +14 -14
  48. data/lib/graphiti/resource/persistence.rb +9 -9
  49. data/lib/graphiti/resource/polymorphism.rb +3 -3
  50. data/lib/graphiti/resource/remote.rb +3 -3
  51. data/lib/graphiti/resource/sideloading.rb +5 -5
  52. data/lib/graphiti/resource_proxy.rb +12 -12
  53. data/lib/graphiti/schema.rb +27 -26
  54. data/lib/graphiti/schema_diff.rb +10 -10
  55. data/lib/graphiti/scope.rb +12 -16
  56. data/lib/graphiti/scoping/base.rb +5 -5
  57. data/lib/graphiti/scoping/default_filter.rb +1 -1
  58. data/lib/graphiti/scoping/filter.rb +15 -24
  59. data/lib/graphiti/scoping/filterable.rb +5 -5
  60. data/lib/graphiti/scoping/paginate.rb +1 -1
  61. data/lib/graphiti/scoping/sort.rb +7 -7
  62. data/lib/graphiti/serializer.rb +8 -4
  63. data/lib/graphiti/sideload.rb +23 -39
  64. data/lib/graphiti/sideload/belongs_to.rb +2 -2
  65. data/lib/graphiti/sideload/has_many.rb +1 -1
  66. data/lib/graphiti/sideload/many_to_many.rb +18 -2
  67. data/lib/graphiti/sideload/polymorphic_belongs_to.rb +14 -8
  68. data/lib/graphiti/stats/dsl.rb +7 -1
  69. data/lib/graphiti/tasks.rb +10 -10
  70. data/lib/graphiti/types.rb +98 -98
  71. data/lib/graphiti/util/attribute_check.rb +1 -1
  72. data/lib/graphiti/util/class.rb +3 -3
  73. data/lib/graphiti/util/field_params.rb +1 -1
  74. data/lib/graphiti/util/hash.rb +19 -1
  75. data/lib/graphiti/util/link.rb +15 -19
  76. data/lib/graphiti/util/persistence.rb +17 -22
  77. data/lib/graphiti/util/relationship_payload.rb +2 -2
  78. data/lib/graphiti/util/remote_params.rb +12 -12
  79. data/lib/graphiti/util/remote_serializer.rb +2 -2
  80. data/lib/graphiti/util/serializer_attributes.rb +20 -25
  81. data/lib/graphiti/util/serializer_relationships.rb +17 -18
  82. data/lib/graphiti/util/sideload.rb +1 -1
  83. data/lib/graphiti/util/transaction_hooks_recorder.rb +3 -2
  84. data/lib/graphiti/version.rb +1 -1
  85. metadata +22 -6
@@ -1,23 +1,23 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
- require 'generator_mixin'
2
+ require "generator_mixin"
3
3
 
4
4
  module Graphiti
5
5
  class ResourceGenerator < ::Rails::Generators::NamedBase
6
6
  include GeneratorMixin
7
7
 
8
- source_root File.expand_path('../templates', __FILE__)
8
+ source_root File.expand_path("../templates", __FILE__)
9
9
 
10
10
  argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]"
11
11
 
12
12
  class_option :'omit-comments',
13
13
  type: :boolean,
14
14
  default: false,
15
- aliases: ['--omit-comments', '-c'],
16
- desc: 'Generate without documentation comments'
17
- class_option :'actions',
15
+ aliases: ["--omit-comments", "-c"],
16
+ desc: "Generate without documentation comments"
17
+ class_option :actions,
18
18
  type: :array,
19
19
  default: nil,
20
- aliases: ['--actions', '-a'],
20
+ aliases: ["--actions", "-a"],
21
21
  desc: 'Array of controller actions to support, e.g. "index show destroy"'
22
22
 
23
23
  desc "This generator creates a resource file at app/resources, as well as corresponding controller/specs/route/etc"
@@ -55,7 +55,7 @@ module Graphiti
55
55
  end
56
56
 
57
57
  def omit_comments?
58
- @options['omit-comments']
58
+ @options["omit-comments"]
59
59
  end
60
60
 
61
61
  def responders?
@@ -63,28 +63,28 @@ module Graphiti
63
63
  end
64
64
 
65
65
  def generate_controller
66
- to = File.join('app/controllers', class_path, "#{file_name.pluralize}_controller.rb")
67
- template('controller.rb.erb', to)
66
+ to = File.join("app/controllers", class_path, "#{file_name.pluralize}_controller.rb")
67
+ template("controller.rb.erb", to)
68
68
  end
69
69
 
70
70
  def generate_application_resource
71
- to = File.join('app/resources', class_path, "application_resource.rb")
72
- template('application_resource.rb.erb', to)
71
+ to = File.join("app/resources", class_path, "application_resource.rb")
72
+ template("application_resource.rb.erb", to)
73
73
  require "#{::Rails.root}/#{to}"
74
74
  end
75
75
 
76
76
  def application_resource_defined?
77
- 'ApplicationResource'.safe_constantize.present?
77
+ "ApplicationResource".safe_constantize.present?
78
78
  end
79
79
 
80
80
  def generate_route
81
81
  # Rails 5.2 adds `plural_route_name`, fallback to `plural_table_name`
82
- plural_name = self.try(:plural_route_name) || plural_table_name
82
+ plural_name = try(:plural_route_name) || plural_table_name
83
83
 
84
84
  code = "resources :#{plural_name}"
85
- code << %{, only: [#{actions.map { |a| ":#{a}" }.join(', ')}]} if actions.length < 5
85
+ code << %(, only: [#{actions.map { |a| ":#{a}" }.join(", ")}]) if actions.length < 5
86
86
  code << "\n"
87
- inject_into_file 'config/routes.rb', after: /ApplicationResource.*$\n/ do
87
+ inject_into_file "config/routes.rb", after: /ApplicationResource.*$\n/ do
88
88
  indent(code, 4)
89
89
  end
90
90
  end
@@ -92,18 +92,18 @@ module Graphiti
92
92
  def generate_resource_specs
93
93
  opts = {}
94
94
  opts[:actions] = @options[:actions] if @options[:actions]
95
- invoke 'graphiti:resource_test', [resource_klass], opts
95
+ invoke "graphiti:resource_test", [resource_klass], opts
96
96
  end
97
97
 
98
98
  def generate_api_specs
99
99
  opts = {}
100
100
  opts[:actions] = @options[:actions] if @options[:actions]
101
- invoke 'graphiti:api_test', [resource_klass], opts
101
+ invoke "graphiti:api_test", [resource_klass], opts
102
102
  end
103
103
 
104
104
  def generate_resource
105
- to = File.join('app/resources', class_path, "#{file_name}_resource.rb")
106
- template('resource.rb.erb', to)
105
+ to = File.join("app/resources", class_path, "#{file_name}_resource.rb")
106
+ template("resource.rb.erb", to)
107
107
  require "#{::Rails.root}/#{to}" if create?
108
108
  end
109
109
 
@@ -1,21 +1,21 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
- require 'generator_mixin'
2
+ require "generator_mixin"
3
3
 
4
4
  module Graphiti
5
5
  class ResourceTestGenerator < ::Rails::Generators::Base
6
6
  include GeneratorMixin
7
7
 
8
- source_root File.expand_path('../templates', __FILE__)
8
+ source_root File.expand_path("../templates", __FILE__)
9
9
 
10
10
  argument :resource, type: :string
11
11
  argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]"
12
- class_option :'actions',
12
+ class_option :actions,
13
13
  type: :array,
14
14
  default: nil,
15
- aliases: ['--actions', '-a'],
15
+ aliases: ["--actions", "-a"],
16
16
  desc: 'Array of controller actions, e.g. "index show destroy"'
17
17
 
18
- desc 'Generates rspec request specs at spec/api'
18
+ desc "Generates rspec request specs at spec/api"
19
19
  def generate
20
20
  generate_resource_specs
21
21
  end
@@ -27,18 +27,18 @@ module Graphiti
27
27
  end
28
28
 
29
29
  def dir
30
- @resource.gsub('Resource', '').underscore.pluralize
30
+ @resource.gsub("Resource", "").underscore.pluralize
31
31
  end
32
32
 
33
33
  def generate_resource_specs
34
- if actions?('create', 'update', 'destroy')
34
+ if actions?("create", "update", "destroy")
35
35
  to = "spec/resources/#{var}/writes_spec.rb"
36
- template('resource_writes_spec.rb.erb', to)
36
+ template("resource_writes_spec.rb.erb", to)
37
37
  end
38
38
 
39
- if actions?('index', 'show')
39
+ if actions?("index", "show")
40
40
  to = "spec/resources/#{var}/reads_spec.rb"
41
- template('resource_reads_spec.rb.erb', to)
41
+ template("resource_reads_spec.rb.erb", to)
42
42
  end
43
43
  end
44
44
 
data/lib/graphiti.rb CHANGED
@@ -1,16 +1,16 @@
1
- require 'json'
2
- require 'forwardable'
3
- require 'active_support/core_ext/string'
4
- require 'active_support/core_ext/enumerable'
5
- require 'active_support/core_ext/class/attribute'
6
- require 'active_support/core_ext/hash/conversions' # to_xml
7
- require 'active_support/concern'
8
- require 'active_support/time'
1
+ require "json"
2
+ require "forwardable"
3
+ require "active_support/core_ext/string"
4
+ require "active_support/core_ext/enumerable"
5
+ require "active_support/core_ext/class/attribute"
6
+ require "active_support/core_ext/hash/conversions" # to_xml
7
+ require "active_support/concern"
8
+ require "active_support/time"
9
9
 
10
- require 'dry-types'
11
- require 'graphiti_errors'
10
+ require "dry-types"
11
+ require "graphiti_errors"
12
12
 
13
- require 'jsonapi/serializable'
13
+ require "jsonapi/serializable"
14
14
 
15
15
  require "graphiti/version"
16
16
  require "graphiti/jsonapi_serializable_ext"
@@ -69,8 +69,8 @@ require "graphiti/util/class"
69
69
  require "graphiti/util/link"
70
70
  require "graphiti/util/remote_serializer"
71
71
  require "graphiti/util/remote_params"
72
- require 'graphiti/adapters/null'
73
- require 'graphiti/adapters/graphiti_api'
72
+ require "graphiti/adapters/null"
73
+ require "graphiti/adapters/graphiti_api"
74
74
  require "graphiti/extensions/extra_attribute"
75
75
  require "graphiti/extensions/boolean_attribute"
76
76
  require "graphiti/extensions/temp_id"
@@ -78,17 +78,17 @@ require "graphiti/serializer"
78
78
  require "graphiti/debugger"
79
79
 
80
80
  if defined?(ActiveRecord)
81
- require 'graphiti/adapters/active_record'
81
+ require "graphiti/adapters/active_record"
82
82
  end
83
83
 
84
84
  if defined?(Rails)
85
- require 'graphiti/railtie'
86
- require 'graphiti/rails'
87
- require 'graphiti/responders'
85
+ require "graphiti/railtie"
86
+ require "graphiti/rails"
87
+ require "graphiti/responders"
88
88
  end
89
89
 
90
90
  module Graphiti
91
- autoload :Base, 'graphiti/base'
91
+ autoload :Base, "graphiti/base"
92
92
 
93
93
  def self.included(klass)
94
94
  klass.instance_eval do
@@ -108,13 +108,11 @@ module Graphiti
108
108
 
109
109
  # @api private
110
110
  def self.with_context(obj, namespace = nil)
111
- begin
112
- prior = self.context
113
- self.context = { object: obj, namespace: namespace }
114
- yield
115
- ensure
116
- self.context = prior
117
- end
111
+ prior = context
112
+ self.context = {object: obj, namespace: namespace}
113
+ yield
114
+ ensure
115
+ self.context = prior
118
116
  end
119
117
 
120
118
  def self.config
@@ -192,7 +190,7 @@ module InstanceVariableOverride
192
190
  values = super
193
191
  if @__graphiti_serializer
194
192
  values.reject! do |v|
195
- ['__graphiti_serializer', '__graphiti_resource'].include?(v)
193
+ ["__graphiti_serializer", "__graphiti_resource"].include?(v)
196
194
  end
197
195
  end
198
196
  values
@@ -17,7 +17,7 @@ module Graphiti
17
17
  belongs_to: ::Graphiti::Sideload::BelongsTo,
18
18
  has_one: ::Graphiti::Sideload::HasOne,
19
19
  many_to_many: ::Graphiti::Sideload::ManyToMany,
20
- polymorphic_belongs_to: ::Graphiti::Sideload::PolymorphicBelongsTo
20
+ polymorphic_belongs_to: ::Graphiti::Sideload::PolymorphicBelongsTo,
21
21
  }
22
22
  end
23
23
 
@@ -33,7 +33,7 @@ module Graphiti
33
33
  :suffix,
34
34
  :not_suffix,
35
35
  :match,
36
- :not_match
36
+ :not_match,
37
37
  ],
38
38
  uuid: [:eq, :not_eq],
39
39
  integer_id: numerical_operators,
@@ -44,7 +44,7 @@ module Graphiti
44
44
  date: numerical_operators,
45
45
  datetime: numerical_operators,
46
46
  hash: [:eq],
47
- array: [:eq]
47
+ array: [:eq],
48
48
  }
49
49
  end
50
50
 
@@ -120,18 +120,6 @@ module Graphiti
120
120
  raise Errors::AdapterNotImplemented.new(self, attribute, :filter_integer_lte)
121
121
  end
122
122
 
123
- def filter_datetime_eq(scope, attribute, value)
124
- raise Errors::AdapterNotImplemented.new(self, attribute, :filter_datetime_eq)
125
- end
126
-
127
- def filter_datetime_not_eq(scope, attribute, value)
128
- raise Errors::AdapterNotImplemented.new(self, attribute, :filter_datetime_not_eq)
129
- end
130
-
131
- def filter_datetime_lte(scope, attribute, value)
132
- raise Errors::AdapterNotImplemented.new(self, attribute, :filter_datetime_lte)
133
- end
134
-
135
123
  def filter_float_eq(scope, attribute, value)
136
124
  raise Errors::AdapterNotImplemented.new(self, attribute, :filter_float_eq)
137
125
  end
@@ -233,7 +221,7 @@ module Graphiti
233
221
  end
234
222
 
235
223
  def base_scope(model)
236
- raise 'you must override #base_scope in an adapter subclass'
224
+ raise "you must override #base_scope in an adapter subclass"
237
225
  end
238
226
 
239
227
  # @param scope The scope object we are chaining
@@ -246,7 +234,7 @@ module Graphiti
246
234
  # scope.order(attribute => direction)
247
235
  # end
248
236
  def order(scope, attribute, direction)
249
- raise 'you must override #order in an adapter subclass'
237
+ raise "you must override #order in an adapter subclass"
250
238
  end
251
239
 
252
240
  # @param scope The scope object we are chaining
@@ -260,7 +248,7 @@ module Graphiti
260
248
  # scope.page(current_page).per(per_page)
261
249
  # end
262
250
  def paginate(scope, current_page, per_page)
263
- raise 'you must override #paginate in an adapter subclass'
251
+ raise "you must override #paginate in an adapter subclass"
264
252
  end
265
253
 
266
254
  # @param scope the scope object we are chaining
@@ -272,7 +260,7 @@ module Graphiti
272
260
  # scope.uniq.count(column)
273
261
  # end
274
262
  def count(scope, attr)
275
- raise 'you must override #count in an adapter subclass'
263
+ raise "you must override #count in an adapter subclass"
276
264
  end
277
265
 
278
266
  # @param scope the scope object we are chaining
@@ -283,7 +271,7 @@ module Graphiti
283
271
  # scope.average(attr).to_f
284
272
  # end
285
273
  def average(scope, attr)
286
- raise 'you must override #average in an adapter subclass'
274
+ raise "you must override #average in an adapter subclass"
287
275
  end
288
276
 
289
277
  # @param scope the scope object we are chaining
@@ -294,7 +282,7 @@ module Graphiti
294
282
  # scope.sum(attr)
295
283
  # end
296
284
  def sum(scope, attr)
297
- raise 'you must override #sum in an adapter subclass'
285
+ raise "you must override #sum in an adapter subclass"
298
286
  end
299
287
 
300
288
  # @param scope the scope object we are chaining
@@ -305,7 +293,7 @@ module Graphiti
305
293
  # scope.maximum(attr)
306
294
  # end
307
295
  def maximum(scope, attr)
308
- raise 'you must override #maximum in an adapter subclass'
296
+ raise "you must override #maximum in an adapter subclass"
309
297
  end
310
298
 
311
299
  # @param scope the scope object we are chaining
@@ -316,7 +304,7 @@ module Graphiti
316
304
  # scope.maximum(attr)
317
305
  # end
318
306
  def minimum(scope, attr)
319
- raise 'you must override #maximum in an adapter subclass'
307
+ raise "you must override #maximum in an adapter subclass"
320
308
  end
321
309
 
322
310
  # This method must +yield+ the code to run within the transaction.
@@ -332,7 +320,7 @@ module Graphiti
332
320
  #
333
321
  # @see Resource.model
334
322
  def transaction(model_class)
335
- raise 'you must override #transaction in an adapter subclass, it must yield'
323
+ raise "you must override #transaction in an adapter subclass, it must yield"
336
324
  end
337
325
 
338
326
  # Resolve the scope. This is where you'd actually fire SQL,
@@ -359,7 +347,7 @@ module Graphiti
359
347
  end
360
348
 
361
349
  def belongs_to_many_filter(sideload, scope, value)
362
- raise 'You must implement #belongs_to_many_filter in an adapter subclass'
350
+ raise "You must implement #belongs_to_many_filter in an adapter subclass"
363
351
  end
364
352
 
365
353
  def associate_all(parent, children, association_name, association_type)
@@ -377,21 +365,19 @@ module Graphiti
377
365
  if activerecord_associate?(parent, child, association_name)
378
366
  activerecord_adapter.associate \
379
367
  parent, child, association_name, association_type
380
- else
381
- if [:has_many, :many_to_many].include?(association_type)
382
- if parent.send(:"#{association_name}").nil?
383
- parent.send(:"#{association_name}=", [child])
384
- else
385
- parent.send(:"#{association_name}") << child
386
- end
368
+ elsif [:has_many, :many_to_many].include?(association_type)
369
+ if parent.send(:"#{association_name}").nil?
370
+ parent.send(:"#{association_name}=", [child])
387
371
  else
388
- parent.send(:"#{association_name}=", child)
372
+ parent.send(:"#{association_name}") << child
389
373
  end
374
+ else
375
+ parent.send(:"#{association_name}=", child)
390
376
  end
391
377
  end
392
378
 
393
379
  def disassociate(parent, child, association_name, association_type)
394
- raise 'you must override #disassociate in an adapter subclass'
380
+ raise "you must override #disassociate in an adapter subclass"
395
381
  end
396
382
 
397
383
  def build(model_class)
@@ -406,19 +392,19 @@ module Graphiti
406
392
  end
407
393
 
408
394
  def save(model_instance)
409
- raise 'you must override #save in an adapter subclass'
395
+ raise "you must override #save in an adapter subclass"
410
396
  end
411
397
 
412
398
  def destroy(model_instance)
413
- raise 'you must override #destroy in an adapter subclass'
399
+ raise "you must override #destroy in an adapter subclass"
414
400
  end
415
401
 
416
- private
417
-
418
402
  def self.numerical_operators
419
- [:eq, :not_eq, :gt, :gte, :lt, :lte]
403
+ [:eq, :not_eq, :gt, :gte, :lt, :lte].freeze
420
404
  end
421
405
 
406
+ private
407
+
422
408
  def activerecord_adapter
423
409
  @activerecord_adapter ||=
424
410
  ::Graphiti::Adapters::ActiveRecord.new(resource)
@@ -1,40 +1,40 @@
1
1
  module Graphiti
2
2
  module Adapters
3
3
  class ActiveRecord < ::Graphiti::Adapters::Abstract
4
- require 'graphiti/adapters/active_record/inferrence'
5
- require 'graphiti/adapters/active_record/has_many_sideload'
6
- require 'graphiti/adapters/active_record/belongs_to_sideload'
7
- require 'graphiti/adapters/active_record/has_one_sideload'
8
- require 'graphiti/adapters/active_record/many_to_many_sideload'
4
+ require "graphiti/adapters/active_record/inferrence"
5
+ require "graphiti/adapters/active_record/has_many_sideload"
6
+ require "graphiti/adapters/active_record/belongs_to_sideload"
7
+ require "graphiti/adapters/active_record/has_one_sideload"
8
+ require "graphiti/adapters/active_record/many_to_many_sideload"
9
9
 
10
10
  def self.sideloading_classes
11
11
  {
12
12
  has_many: Graphiti::Adapters::ActiveRecord::HasManySideload,
13
13
  has_one: Graphiti::Adapters::ActiveRecord::HasOneSideload,
14
14
  belongs_to: Graphiti::Adapters::ActiveRecord::BelongsToSideload,
15
- many_to_many: Graphiti::Adapters::ActiveRecord::ManyToManySideload
15
+ many_to_many: Graphiti::Adapters::ActiveRecord::ManyToManySideload,
16
16
  }
17
17
  end
18
18
 
19
19
  def filter_eq(scope, attribute, value)
20
20
  scope.where(attribute => value)
21
21
  end
22
- alias :filter_integer_eq :filter_eq
23
- alias :filter_float_eq :filter_eq
24
- alias :filter_big_decimal_eq :filter_eq
25
- alias :filter_date_eq :filter_eq
26
- alias :filter_boolean_eq :filter_eq
27
- alias :filter_uuid_eq :filter_eq
22
+ alias filter_integer_eq filter_eq
23
+ alias filter_float_eq filter_eq
24
+ alias filter_big_decimal_eq filter_eq
25
+ alias filter_date_eq filter_eq
26
+ alias filter_boolean_eq filter_eq
27
+ alias filter_uuid_eq filter_eq
28
28
 
29
29
  def filter_not_eq(scope, attribute, value)
30
30
  scope.where.not(attribute => value)
31
31
  end
32
- alias :filter_integer_not_eq :filter_not_eq
33
- alias :filter_float_not_eq :filter_not_eq
34
- alias :filter_big_decimal_not_eq :filter_not_eq
35
- alias :filter_date_not_eq :filter_not_eq
36
- alias :filter_boolean_not_eq :filter_not_eq
37
- alias :filter_uuid_not_eq :filter_not_eq
32
+ alias filter_integer_not_eq filter_not_eq
33
+ alias filter_float_not_eq filter_not_eq
34
+ alias filter_big_decimal_not_eq filter_not_eq
35
+ alias filter_date_not_eq filter_not_eq
36
+ alias filter_boolean_not_eq filter_not_eq
37
+ alias filter_uuid_not_eq filter_not_eq
38
38
 
39
39
  def filter_string_eq(scope, attribute, value, is_not: false)
40
40
  column = column_for(scope, attribute)
@@ -43,7 +43,7 @@ module Graphiti
43
43
  end
44
44
 
45
45
  def filter_string_eql(scope, attribute, value, is_not: false)
46
- clause = { attribute => value }
46
+ clause = {attribute => value}
47
47
  is_not ? scope.where.not(clause) : scope.where(clause)
48
48
  end
49
49
 
@@ -92,45 +92,45 @@ module Graphiti
92
92
  column = column_for(scope, attribute)
93
93
  scope.where(column.gt_any(value))
94
94
  end
95
- alias :filter_integer_gt :filter_gt
96
- alias :filter_float_gt :filter_gt
97
- alias :filter_big_decimal_gt :filter_gt
98
- alias :filter_datetime_gt :filter_gt
99
- alias :filter_date_gt :filter_gt
95
+ alias filter_integer_gt filter_gt
96
+ alias filter_float_gt filter_gt
97
+ alias filter_big_decimal_gt filter_gt
98
+ alias filter_datetime_gt filter_gt
99
+ alias filter_date_gt filter_gt
100
100
 
101
101
  def filter_gte(scope, attribute, value)
102
102
  column = column_for(scope, attribute)
103
103
  scope.where(column.gteq_any(value))
104
104
  end
105
- alias :filter_integer_gte :filter_gte
106
- alias :filter_float_gte :filter_gte
107
- alias :filter_big_decimal_gte :filter_gte
108
- alias :filter_datetime_gte :filter_gte
109
- alias :filter_date_gte :filter_gte
105
+ alias filter_integer_gte filter_gte
106
+ alias filter_float_gte filter_gte
107
+ alias filter_big_decimal_gte filter_gte
108
+ alias filter_datetime_gte filter_gte
109
+ alias filter_date_gte filter_gte
110
110
 
111
111
  def filter_lt(scope, attribute, value)
112
112
  column = column_for(scope, attribute)
113
113
  scope.where(column.lt_any(value))
114
114
  end
115
- alias :filter_integer_lt :filter_lt
116
- alias :filter_float_lt :filter_lt
117
- alias :filter_big_decimal_lt :filter_lt
118
- alias :filter_datetime_lt :filter_lt
119
- alias :filter_date_lt :filter_lt
115
+ alias filter_integer_lt filter_lt
116
+ alias filter_float_lt filter_lt
117
+ alias filter_big_decimal_lt filter_lt
118
+ alias filter_datetime_lt filter_lt
119
+ alias filter_date_lt filter_lt
120
120
 
121
121
  def filter_lte(scope, attribute, value)
122
122
  column = column_for(scope, attribute)
123
123
  scope.where(column.lteq_any(value))
124
124
  end
125
- alias :filter_integer_lte :filter_lte
126
- alias :filter_float_lte :filter_lte
127
- alias :filter_big_decimal_lte :filter_lte
128
- alias :filter_date_lte :filter_lte
125
+ alias filter_integer_lte filter_lte
126
+ alias filter_float_lte filter_lte
127
+ alias filter_big_decimal_lte filter_lte
128
+ alias filter_date_lte filter_lte
129
129
 
130
130
  # Ensure fractional seconds don't matter
131
131
  def filter_datetime_eq(scope, attribute, value, is_not: false)
132
- ranges = value.map { |v| (v..v+1.second-0.00000001) }
133
- clause = { attribute => ranges }
132
+ ranges = value.map { |v| (v..v + 1.second - 0.00000001) }
133
+ clause = {attribute => ranges}
134
134
  is_not ? scope.where.not(clause) : scope.where(clause)
135
135
  end
136
136
 
@@ -139,7 +139,7 @@ module Graphiti
139
139
  end
140
140
 
141
141
  def filter_datetime_lte(scope, attribute, value)
142
- value = value.map { |v| v + 1.second-0.00000001 }
142
+ value = value.map { |v| v + 1.second - 0.00000001 }
143
143
  column = scope.klass.arel_table[attribute]
144
144
  scope.where(column.lteq_any(value))
145
145
  end
@@ -239,9 +239,8 @@ module Graphiti
239
239
  def disassociate(parent, child, association_name, association_type)
240
240
  if association_type == :many_to_many
241
241
  parent.send(association_name).delete(child)
242
- else
243
- # Nothing to do here, happened when we merged foreign key
244
242
  end
243
+ # Nothing to do in the else case, happened when we merged foreign key
245
244
  end
246
245
 
247
246
  # (see Adapters::Abstract#create)
@@ -258,11 +257,6 @@ module Graphiti
258
257
  instance
259
258
  end
260
259
 
261
- def destroy(model)
262
- model.destroy
263
- model
264
- end
265
-
266
260
  def save(model_instance)
267
261
  model_instance.save
268
262
  model_instance
@@ -277,7 +271,7 @@ module Graphiti
277
271
 
278
272
  def column_for(scope, name)
279
273
  table = scope.klass.arel_table
280
- if other = scope.attribute_alias(name)
274
+ if (other = scope.attribute_alias(name))
281
275
  table[other]
282
276
  else
283
277
  table[name]