syto 0.1.0 → 0.1.1

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -0
  3. data/lib/syto/version.rb +1 -1
  4. data/lib/syto.rb +8 -6
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 680b0e8f2fc3d847fc27ff9e5b3f5891d5d5331f84661250b90774e018daacde
4
- data.tar.gz: ca58ebde9c0c3d6ece12a1f6f0ea44dd69e4151ba437e5c0992583dc75254665
3
+ metadata.gz: 6afed86906556c9b2b7c0ca426763ab01d7c704863c3e1c33e5d73c5750643b1
4
+ data.tar.gz: 3590d320491b80c9d6d9828f5da5286fa2bc756ec891880a262167e9eb8ce610
5
5
  SHA512:
6
- metadata.gz: 7cf3dc9333fa4c2b1be5bece3563f6e77c47ccf5503e3da299f5078b6801eb43d837790e58f670449bd183cb9665893531dde40c9907d217e9999d39a847a4b6
7
- data.tar.gz: b84f56820dd009d84fe71310fed024e7a06fa4cadc5c50c24640fc2654b87413f2641f8134fe7c0672fe40ba8c48c4016f69d667f75e1c03b14e9464b09ffb0e
6
+ metadata.gz: 6dd6297c0f8554b70600dc17a6e9acb2879b4af14563e886dd21b0883a991cd03931c2376e67c2a9de8dd3187f6b4aeaeb9e51f0dfe17bbdb1ea1505e99a7be9
7
+ data.tar.gz: 82391c9e0819b8cc177cc8f595455cfc8df20f131be8662877f384446d4d8a0e1334dd9a13a857dc900245f2711b2614d7c6c85a58915a9eeab480b3024c5af6
data/README.md CHANGED
@@ -45,10 +45,16 @@ class Post < ActiveModel
45
45
  end
46
46
  ```
47
47
 
48
+ Tip: There are 3 methods available in Syto for use in `extended_filters`:
49
+ `base_class`, `params` and `result`
50
+
48
51
  ```ruby
49
52
  # app/models/concerns/post_filter.rb
50
53
  class PostFilters < Syto
51
54
  def extended_filters
55
+ # base_class contains Post
56
+ return if params[:published].blank?
57
+
52
58
  self.result = result.where(published: params[:published])
53
59
  filter_by_range(:published_at, key_from: :pub_from, key_to: :pub_to)
54
60
  end
data/lib/syto/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Syto
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
data/lib/syto.rb CHANGED
@@ -68,23 +68,25 @@ module Syto
68
68
  return all if params.blank? || params.empty?
69
69
 
70
70
  @filter_klass ||= Syto::Base
71
- @filter_klass.new(all, params.symbolize_keys, @syto_attrs_map).perform
71
+ @filter_klass.new(self, all, params.symbolize_keys, @syto_attrs_map).perform
72
72
  end
73
73
  end
74
74
 
75
75
  # Base class for filters implementation
76
76
  #
77
77
  class Base
78
- attr_accessor :result, :params
78
+ attr_accessor :result, :params, :base_class
79
79
 
80
+ # @param [Class] base_class
80
81
  # @param [ActiveRecord::Relation] result
81
82
  # @param [Hash] params
82
83
  # @param [Array] attrs_map
83
84
  #
84
- def initialize(result, params, attrs_map)
85
- @result = result
86
- @params = params
87
- @attrs_map = attrs_map
85
+ def initialize(base_class, result, params, attrs_map)
86
+ @base_class = base_class
87
+ @result = result
88
+ @params = params
89
+ @attrs_map = attrs_map
88
90
  end
89
91
 
90
92
  def perform
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vadym Lukavyi