might 0.7.1 → 0.7.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +19 -0
  3. data/.rubocop.yml +1 -1
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +2 -1
  6. data/Rakefile +1 -0
  7. data/bin/console +1 -0
  8. data/lib/might.rb +45 -0
  9. data/lib/might/fetcher.rb +1 -16
  10. data/lib/might/fetcher_error.rb +1 -0
  11. data/lib/might/filter_middleware.rb +1 -4
  12. data/lib/might/filter_parameter.rb +1 -3
  13. data/lib/might/filter_parameter_definition.rb +1 -4
  14. data/lib/might/filter_parameters.rb +1 -3
  15. data/lib/might/filter_parameters_extractor.rb +1 -5
  16. data/lib/might/filter_parameters_validator.rb +1 -0
  17. data/lib/might/filter_predicates.rb +27 -26
  18. data/lib/might/filter_undefined_parameter.rb +1 -2
  19. data/lib/might/filter_value_validator.rb +2 -10
  20. data/lib/might/pagination_middleware.rb +1 -3
  21. data/lib/might/pagination_parameters_validator.rb +1 -10
  22. data/lib/might/paginator.rb +1 -2
  23. data/lib/might/railtie.rb +1 -1
  24. data/lib/might/ransackable_filter.rb +1 -0
  25. data/lib/might/ransackable_filter_parameters_adapter.rb +1 -0
  26. data/lib/might/ransackable_sort.rb +1 -0
  27. data/lib/might/ransackable_sort_parameters_adapter.rb +1 -0
  28. data/lib/might/result.rb +1 -0
  29. data/lib/might/sort_middleware.rb +1 -5
  30. data/lib/might/sort_parameter.rb +1 -2
  31. data/lib/might/sort_parameter_definition.rb +1 -2
  32. data/lib/might/sort_parameters_extractor.rb +1 -3
  33. data/lib/might/sort_parameters_validator.rb +1 -0
  34. data/lib/might/sort_undefined_parameter.rb +1 -2
  35. data/lib/might/sort_value_validator.rb +2 -10
  36. data/lib/might/version.rb +2 -2
  37. data/might.gemspec +3 -1
  38. metadata +19 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3049e5e1cae5d67d9839b00c3f02bd5e4848b676
4
- data.tar.gz: fc3327868c20797d2b601bb76729da6e1e93ec90
3
+ metadata.gz: 9e4b5f381d33b43a2e2c7cb063cccb64a87c38d1
4
+ data.tar.gz: 701e845bc0d3722c70c256ae893bb5c6e323fc8c
5
5
  SHA512:
6
- metadata.gz: aeb3c48514c7376f951dc86d3b733fafd6543262d22f6d3290b3a257e06d98c75d91401c2db1f29e41c3b84a88fe1fc9de732c7d7233217cf5ecc306f0f80a08
7
- data.tar.gz: 992d1c75fc7a391f0689edd8eea34d0be3cf6f7ac28db0ceef1284664b5834743fb4ae2c34d7f33af5bb896beb805faebb7975968c514c7c69c13d5e01d90acd
6
+ metadata.gz: 08953e15287d062c199dba58919053966da59e5163eca9a5a6a1e6b7f12065aebc2461e4058b3ca5409ffed17b892654bc5c1bab7c04ba973131cf8edfa041f1
7
+ data.tar.gz: ba678ffae577804b809fb6c0ee85845a9192e8b5708211c5662c9becf736ca3d13a0b0eab673499663add3d9f50169b1a375ee6c0b7ba6a0e3e6fe3b4c911796
@@ -0,0 +1,19 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - bin/**/*
17
+ - config/**/*
18
+ - gemfiles/**/*
19
+ - spec/**/*
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.1
2
+ TargetRubyVersion: 2.3
3
3
  inherit_gem:
4
4
  spbtv_code_style: .rubocop.yml
5
5
 
@@ -1,3 +1,7 @@
1
+ **0.7.2**
2
+
3
+ * Use `autoload` instead of explicit `require` and `require_relative`.
4
+
1
5
  **0.7.0**
2
6
 
3
7
  * Allow to pass block to `FilterParameter#fetch` to customize not found behaviour.
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  source 'https://rubygems.org'
2
3
 
3
4
  # Specify your gem's dependencies in might.gemspec
4
5
  gemspec
5
6
 
6
- gem 'codeclimate-test-reporter', group: :test, require: nil
7
+ gem 'codeclimate-test-reporter', '1.0.4', group: :test, require: nil
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'bundler/gem_tasks'
2
3
  require 'rspec/core/rake_task'
3
4
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'might'
@@ -1,4 +1,49 @@
1
+ # frozen_string_literal: true
2
+ require 'set'
3
+ require 'forwardable'
4
+ require 'active_model'
5
+ require 'active_support'
6
+ require 'active_support/dependencies/autoload'
7
+ require 'active_support/core_ext/module/delegation'
8
+ require 'active_support/core_ext/object/blank'
9
+ require 'active_support/concern'
10
+ require 'active_support/callbacks'
11
+ require 'middleware'
12
+ require 'uber/inheritable_attr'
13
+
1
14
  # Top level namespace for mighty fetchers
2
15
  module Might
3
16
  require 'might/version'
17
+ extend ActiveSupport::Autoload
18
+
19
+ autoload :Fetcher
20
+ autoload :FetcherError
21
+ autoload :FilterMiddleware
22
+ autoload :FilterParameter
23
+ autoload :FilterParameterDefinition
24
+ autoload :FilterParameters
25
+ autoload :FilterParametersExtractor
26
+ autoload :FilterParametersValidator
27
+ autoload :FilterPredicates
28
+ autoload :FilterUndefinedParameter
29
+ autoload :FilterValueValidator
30
+ autoload :PaginationMiddleware
31
+ autoload :PaginationParametersValidator
32
+ autoload :Paginator
33
+ autoload :RansackableFilter
34
+ autoload :RansackableFilterParametersAdapter
35
+ autoload :RansackableSort
36
+ autoload :RansackableSortParametersAdapter
37
+ autoload :Result
38
+ autoload :Failure, 'might/result'
39
+ autoload :Success, 'might/result'
40
+ autoload :SortMiddleware
41
+ autoload :SortParameter
42
+ autoload :FilterUndefinedParameter
43
+ autoload :SortParameterDefinition
44
+ autoload :SortParametersExtractor
45
+ autoload :SortParametersValidator
46
+ autoload :SortUndefinedParameter
47
+ autoload :SortValueValidator
48
+ autoload :VERSION
4
49
  end
@@ -1,19 +1,4 @@
1
- require 'might/filter_parameters'
2
- require 'might/sort_parameters_extractor'
3
- require 'might/sort_parameters_validator'
4
- require 'might/filter_parameters_extractor'
5
- require 'might/filter_parameters_validator'
6
- require 'might/pagination_parameters_validator'
7
-
8
- require 'might/filter_middleware'
9
- require 'might/sort_middleware'
10
- require 'might/pagination_middleware'
11
-
12
- require 'might/result'
13
- require 'uber/inheritable_attr'
14
- require 'middleware'
15
-
16
- #
1
+ # frozen_string_literal: true
17
2
  module Might
18
3
  # Configure your own fetcher
19
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  class FetcherError < StandardError
3
4
  end
@@ -1,7 +1,4 @@
1
- require_relative 'ransackable_filter'
2
- require_relative 'ransackable_filter_parameters_adapter'
3
- require 'middleware'
4
- #
1
+ # frozen_string_literal: true
5
2
  module Might
6
3
  # Filter scope using ransack gem
7
4
  #
@@ -1,6 +1,4 @@
1
- require 'active_support/core_ext/module/delegation'
2
- require 'active_support/core_ext/object/blank'
3
-
1
+ # frozen_string_literal: true
4
2
  module Might
5
3
  # User provided filtering on particular parameter
6
4
  #
@@ -1,7 +1,4 @@
1
- require 'active_support/core_ext/module/delegation'
2
- require_relative 'filter_predicates'
3
- require_relative 'filter_value_validator'
4
-
1
+ # frozen_string_literal: true
5
2
  module Might
6
3
  # Filtering parameter definition
7
4
  #
@@ -1,6 +1,4 @@
1
- require 'set'
2
- require 'forwardable'
3
-
1
+ # frozen_string_literal: true
4
2
  module Might
5
3
  #
6
4
  class FilterParameters
@@ -1,8 +1,4 @@
1
- require_relative 'filter_predicates'
2
- require_relative 'filter_undefined_parameter'
3
- require_relative 'filter_parameter'
4
- require_relative 'filter_parameters'
5
-
1
+ # frozen_string_literal: true
6
2
  module Might
7
3
  # User provided filters syntax:
8
4
  # * `{ 'name_eq' => 'Martin' }` - name is equal to Martin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Validates filters and raises error if one of them is invalid
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Contains contains with all supported predicates
3
4
  # You can register your own predicates. Predicates should perform on array or on singular value:
@@ -6,32 +7,32 @@ module Might
6
7
  # Might::FilterPredicates.register('is_upper_case', on: :value)
7
8
  #
8
9
  module FilterPredicates
9
- NOT_EQ = 'not_eq'.freeze
10
- EQ = 'eq'.freeze
11
- DOES_NOT_MATCH = 'does_not_match'.freeze
12
- MATCHES = 'matches'.freeze
13
- GT = 'gt'.freeze
14
- LT = 'lt'.freeze
15
- GTEQ = 'gteq'.freeze
16
- LTEQ = 'lteq'.freeze
17
- NOT_CONT = 'not_cont'.freeze
18
- CONT = 'cont'.freeze
19
- NOT_START = 'not_start'.freeze
20
- START = 'start'.freeze
21
- DOES_NOT_END = 'not_end'.freeze
22
- ENDS = 'end'.freeze
23
- NOT_TRUE = 'not_true'.freeze
24
- TRUE = 'true'.freeze
25
- NOT_FALSE = 'not_false'.freeze
26
- FALSE = 'false'.freeze
27
- BLANK = 'blank'.freeze
28
- PRESENT = 'present'.freeze
29
- NOT_NULL = 'not_null'.freeze
30
- NULL = 'null'.freeze
31
- NOT_IN = 'not_in'.freeze
32
- IN = 'in'.freeze
33
- NOT_CONT_ANY = 'not_cont_any'.freeze
34
- CONT_ANY = 'cont_any'.freeze
10
+ NOT_EQ = 'not_eq'
11
+ EQ = 'eq'
12
+ DOES_NOT_MATCH = 'does_not_match'
13
+ MATCHES = 'matches'
14
+ GT = 'gt'
15
+ LT = 'lt'
16
+ GTEQ = 'gteq'
17
+ LTEQ = 'lteq'
18
+ NOT_CONT = 'not_cont'
19
+ CONT = 'cont'
20
+ NOT_START = 'not_start'
21
+ START = 'start'
22
+ DOES_NOT_END = 'not_end'
23
+ ENDS = 'end'
24
+ NOT_TRUE = 'not_true'
25
+ TRUE = 'true'
26
+ NOT_FALSE = 'not_false'
27
+ FALSE = 'false'
28
+ BLANK = 'blank'
29
+ PRESENT = 'present'
30
+ NOT_NULL = 'not_null'
31
+ NULL = 'null'
32
+ NOT_IN = 'not_in'
33
+ IN = 'in'
34
+ NOT_CONT_ANY = 'not_cont_any'
35
+ CONT_ANY = 'cont_any'
35
36
 
36
37
  @predicates_on_value = Set.new([
37
38
  NOT_EQ, EQ,
@@ -1,5 +1,4 @@
1
- require_relative 'filter_parameter_definition'
2
-
1
+ # frozen_string_literal: true
3
2
  module Might
4
3
  # Null object for ParameterDefinition
5
4
  #
@@ -1,12 +1,4 @@
1
- require 'active_support'
2
- require 'active_support/core_ext/module/delegation'
3
- require 'active_model/validator'
4
- require 'active_model/validations'
5
- require 'active_model/naming'
6
- require 'active_model/callbacks'
7
- require 'active_model/translation'
8
- require 'active_model/errors'
9
-
1
+ # frozen_string_literal: true
10
2
  module Might
11
3
  # Build singleton validation class for specified attribute name
12
4
  # @example you need a nice validator for a first_name
@@ -30,7 +22,7 @@ module Might
30
22
  include ActiveModel::Validations
31
23
 
32
24
  validates(definition.as, definition.validations) if definition.validations.present?
33
- validates(definition.as, :'might/filter_value_validator/defined' => true)
25
+ validates(definition.as, 'might/filter_value_validator/defined': true)
34
26
 
35
27
  define_method(:undefined?) { definition.undefined? }
36
28
 
@@ -1,6 +1,4 @@
1
- # require_relative 'validator'
2
- require 'might/paginator'
3
-
1
+ # frozen_string_literal: true
4
2
  module Might
5
3
  # Pagination middleware
6
4
  #
@@ -1,13 +1,4 @@
1
- require 'active_support/concern'
2
- require 'active_support/core_ext/module/delegation'
3
- require 'active_support/callbacks'
4
- require 'active_model/naming'
5
- require 'active_model/validator'
6
- require 'active_model/callbacks'
7
- require 'active_model/translation'
8
- require 'active_model/errors'
9
- require 'active_model/validations'
10
-
1
+ # frozen_string_literal: true
11
2
  module Might
12
3
  #
13
4
  class PaginationParametersValidator
@@ -1,5 +1,4 @@
1
- # require 'active_support/core_ext/hash/keys'
2
-
1
+ # frozen_string_literal: true
3
2
  module Might
4
3
  # Paginates ActiveRecord scopes
5
4
  # @example
@@ -1,6 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  require 'rails/railtie'
2
3
 
3
- #
4
4
  module Might
5
5
  # Load railtie to get translations
6
6
  class Railtie < Rails::Railtie
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  #
3
4
  class RansackableFilter
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Converts array of parameters to hash familiar to ransack gem
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Sort scope
3
4
  class RansackableSort
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Converts array of parameters to hash familiar to ransack gem
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Marker module
3
4
  module Result
@@ -1,8 +1,4 @@
1
- require 'might/ransackable_sort_parameters_adapter'
2
- require 'might/ransackable_sort'
3
- require 'might/sort_parameters_extractor'
4
- require 'middleware'
5
-
1
+ # frozen_string_literal: true
6
2
  module Might
7
3
  # Sort scope using ransack gem
8
4
  #
@@ -1,5 +1,4 @@
1
- require 'active_support/core_ext/module/delegation'
2
-
1
+ # frozen_string_literal: true
3
2
  module Might
4
3
  # User provided filtering on particular parameter
5
4
  #
@@ -1,5 +1,4 @@
1
- require_relative 'sort_value_validator'
2
-
1
+ # frozen_string_literal: true
3
2
  module Might
4
3
  # Sorting parameter definition
5
4
  #
@@ -1,6 +1,4 @@
1
- require 'might/sort_undefined_parameter'
2
- require 'might/sort_parameter'
3
-
1
+ # frozen_string_literal: true
4
2
  module Might
5
3
  # User provided sorting syntax:
6
4
  # * `name` - sort by name
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Might
2
3
  # Validates sortings and raises error if one of them is invalid
3
4
  #
@@ -1,5 +1,4 @@
1
- require 'might/sort_parameter_definition'
2
-
1
+ # frozen_string_literal: true
3
2
  module Might
4
3
  # Null object for ParameterDefinition
5
4
  #
@@ -1,12 +1,4 @@
1
- require 'active_support'
2
- require 'active_support/core_ext/module/delegation'
3
- require 'active_model/validator'
4
- require 'active_model/validations'
5
- require 'active_model/callbacks'
6
- require 'active_model/naming'
7
- require 'active_model/translation'
8
- require 'active_model/errors'
9
-
1
+ # frozen_string_literal: true
10
2
  module Might
11
3
  # Build singleton validation class for specified attribute name
12
4
  # @example you need a nice validator for a first_name
@@ -29,7 +21,7 @@ module Might
29
21
  Class.new do
30
22
  include ActiveModel::Validations
31
23
 
32
- validates(definition.name, :'might/sort_value_validator/defined' => true)
24
+ validates(definition.name, 'might/sort_value_validator/defined': true)
33
25
 
34
26
  define_method(:undefined?) { definition.undefined? }
35
27
  define_method(definition.name) {}
@@ -1,4 +1,4 @@
1
- #
1
+ # frozen_string_literal: true
2
2
  module Might
3
- VERSION = '0.7.1'.freeze
3
+ VERSION = '0.7.2'
4
4
  end
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'might/version'
@@ -26,9 +27,10 @@ Gem::Specification.new do |spec|
26
27
  spec.add_runtime_dependency 'ransack', '>= 1.6.6'
27
28
  spec.add_development_dependency 'activerecord', '>= 3.2', '< 6.0.0'
28
29
  spec.add_development_dependency 'sqlite3', '~> 1.3.11'
29
- spec.add_development_dependency 'bundler', '~> 1.12.5'
30
+ spec.add_development_dependency 'bundler', '~> 1.13.7'
30
31
  spec.add_development_dependency 'rake', '~> 11.2.2'
31
32
  spec.add_development_dependency 'rspec', '~> 3.5.0'
32
33
  spec.add_development_dependency 'spbtv_code_style', '1.4.1'
33
34
  spec.add_development_dependency 'appraisal', '2.1.0'
35
+ spec.add_development_dependency 'rubocop', '0.40.0'
34
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: might
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tema Bolshakov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-18 00:00:00.000000000 Z
11
+ date: 2016-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: 1.12.5
123
+ version: 1.13.7
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: 1.12.5
130
+ version: 1.13.7
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: rake
133
133
  requirement: !ruby/object:Gem::Requirement
@@ -184,6 +184,20 @@ dependencies:
184
184
  - - '='
185
185
  - !ruby/object:Gem::Version
186
186
  version: 2.1.0
187
+ - !ruby/object:Gem::Dependency
188
+ name: rubocop
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - '='
192
+ - !ruby/object:Gem::Version
193
+ version: 0.40.0
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - '='
199
+ - !ruby/object:Gem::Version
200
+ version: 0.40.0
187
201
  description: Mighty resource fetchers build on top of Ransack gem
188
202
  email:
189
203
  - abolshakov@spbtv.com
@@ -191,6 +205,7 @@ executables: []
191
205
  extensions: []
192
206
  extra_rdoc_files: []
193
207
  files:
208
+ - ".codeclimate.yml"
194
209
  - ".gitignore"
195
210
  - ".hound.yml"
196
211
  - ".rspec"
@@ -264,4 +279,3 @@ signing_key:
264
279
  specification_version: 4
265
280
  summary: Mighty resource fetchers
266
281
  test_files: []
267
- has_rdoc: