upnxt-ransack 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: 3c2a88b81d06252dd91c89c313089557acfabc4f
4
- data.tar.gz: f79536b3aed41cadcfef79c228f646d05a31d23e
3
+ metadata.gz: fd78402254e1cae1f645e68535870c405fae5dc5
4
+ data.tar.gz: fd990e5a9b7f43590f2631f34b5abb03b9171f4b
5
5
  SHA512:
6
- metadata.gz: b60fc519ba713232a5ea1bbe3f8305cb89d7d6f441e12d9477bc2d3b514303e0004e1d876b39816f47634898f779e7f310a0c92c5608e4bd162f69a18c1de763
7
- data.tar.gz: 290ca016f8461887115813d553958b6f465db2f01bfd1f239e7c7aed1320048ad8ead6666b9d1322fe5933a83594448cae054bf2092c9f745acc2a3fa31e13bb
6
+ metadata.gz: 0515b7b391c36ea1d619e6708036fc9962162040101bd340278231c0ca02befab9d74ff6114b30b0678652cb49382fc441382e6c057720f1ce036c34f37d47f2
7
+ data.tar.gz: 807b0e5b9edfaad236f354e03b44ea04ce936640e50907c7d292246f99121559a43c6627a3d43525d05dd9fd141908e3c5851761bd1e08895f135347b22130d9
@@ -5,14 +5,14 @@ module Ransack
5
5
  def initialize(object, params = {}, options = {})
6
6
  params.each do |str, _|
7
7
  str = str.to_s
8
- Predicate.detect_and_strip_from_string!(str.to_s)
8
+ Predicate.detect_and_strip_from_string!(str)
9
9
  assoc = convert_to_associations(object, str)
10
10
  last = assoc.pop
11
11
  attr_name = last.last
12
12
  prev_class_sym = last.first.name.underscore.to_sym
13
13
  prev_assoc_sym = nil
14
14
  assoc.reverse.each do |klass, str|
15
- assoc_sym = str.gsub(Regexp.new("_#{attr_name}\\z"), '').to_sym
15
+ assoc_sym = str.sub(/_#{attr_name}\z/, '').to_sym
16
16
  klass.has_one(assoc_sym, through: prev_class_sym, source: prev_assoc_sym) unless klass.reflections.keys.include?(assoc_sym)
17
17
  prev_assoc_sym = assoc_sym
18
18
  prev_class_sym = klass.name.underscore.to_sym
@@ -24,7 +24,8 @@ module Ransack
24
24
 
25
25
  private
26
26
  def convert_to_associations(klass, str)
27
- klass.reflections.each do |name, reflection|
27
+ #sort backwards to favor longer names
28
+ Hash[klass.reflections.sort{|a,b| b<=>a}].each do |name, reflection|
28
29
  if str.start_with? name.to_s
29
30
  result = convert_to_associations(reflection.class_name.constantize, str.sub("#{name.to_s}_", ''))
30
31
  return [[klass, str]].concat(result) if result
data/lib/upnxt-ransack.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "ransack/engine"
1
+ require "upnxt/ransack/engine"
2
2
 
3
3
  module Upnxt
4
4
  module Ransack
@@ -1,5 +1,5 @@
1
1
  module Upnxt
2
2
  module Ransack
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upnxt-ransack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bert bruynooghe