simple_form_extension 1.4.0 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a367630360bbe1d54b2f59d2a4ccf38b949a35b
4
- data.tar.gz: 769fbc0efd2becb79c147e3558019bc76a9d7f59
3
+ metadata.gz: c9ed7a20a6896f059604491974a53e303a86c76a
4
+ data.tar.gz: 348fd0e432cca498201bbaa8e7173bc72915c337
5
5
  SHA512:
6
- metadata.gz: 30af5740b63676c7cf594918515d3e2253888c83b46abec1c6da9de0988c1f929e7dcf4ee6996b03ca7b5d27d98b5935879342c167ba49cf1dad244e220c6a40
7
- data.tar.gz: cc0ad96f2cd6025a9a3c90f4ce1fdffdc57c1cd1910abd8d5b43a6a4fc048a2f00767ba2885ebef02f0f86be0074da67d37ad335679ded32db827f6a09cdb6db
6
+ metadata.gz: 58eb6c567ed00b012d833d116100fddd57547bfb94a6232d2c73353f39b752280b1676fa1d1ba77e8b29ea6f956351db6e76f47831c1d885a8cb95be645bd023
7
+ data.tar.gz: ea95c4b677f723bb8144adfd7473639cdf8131e3bf7302eaada2406134df95afc36f2c9958a960455191ebbacc425aa964b62ff766a394bc7bdf794bf306922f
@@ -14,7 +14,6 @@ module SimpleFormExtension
14
14
  #
15
15
  def input(wrapper_options = {})
16
16
  @attribute_name = foreign_key if relation?
17
- set_sort_field!
18
17
 
19
18
  input_html_options[:data] ||= {}
20
19
 
@@ -60,18 +59,16 @@ module SimpleFormExtension
60
59
  options[:max_items]
61
60
  end
62
61
 
63
- def set_sort_field!
64
- options[:sort_field] = if enum?
62
+ def sort_field
63
+ if (sort_field = options[:sort_field]).present?
64
+ sort_field
65
+ elsif enum?
65
66
  'position'
66
67
  else
67
68
  'text'
68
69
  end
69
70
  end
70
71
 
71
- def sort_field
72
- options[:sort_field] ||= 'text'
73
- end
74
-
75
72
  def collection
76
73
  return if search_url
77
74
 
@@ -146,8 +143,11 @@ module SimpleFormExtension
146
143
  block ? block.call : nil
147
144
  end
148
145
 
149
- def enumerable?(object)
150
- object.class.include?(Enumerable) || ActiveRecord::Relation === object
146
+ # Check if the given target object is enumerable. Used internally to
147
+ # check wether :collection or :value arguments are collections.
148
+ #
149
+ def enumerable?(target)
150
+ target.class.include?(Enumerable) || ActiveRecord::Relation === target
151
151
  end
152
152
 
153
153
  def name_for(option)
@@ -163,17 +163,17 @@ module SimpleFormExtension
163
163
  end
164
164
 
165
165
  def reflection
166
- @reflection ||= if object.class.respond_to?(:reflect_on_association)
167
- object.class.reflect_on_association(attribute_name)
166
+ @reflection ||= if object_class.respond_to?(:reflect_on_association)
167
+ object_class.reflect_on_association(attribute_name)
168
168
  end
169
169
  end
170
170
 
171
171
  def enum?
172
- @is_enum ||= object.class.defined_enums.key?(attribute_name.to_s)
172
+ object_class.defined_enums.key?(attribute_name.to_s)
173
173
  end
174
174
 
175
175
  def enum_options
176
- object.class.defined_enums[attribute_name.to_s].map do |key, value|
176
+ object_class.defined_enums[attribute_name.to_s].map do |key, value|
177
177
  path = [object.model_name.i18n_key, attribute_name, key].join('.')
178
178
  translation = ::I18n.t("activerecord.enums.#{ path }", default: '')
179
179
 
@@ -192,6 +192,19 @@ module SimpleFormExtension
192
192
  def text_from(resource)
193
193
  resource.try(:title) || resource.try(:name)
194
194
  end
195
+
196
+ # Retrieve actual model class even when the form object is a proxy like
197
+ # for Ransack::Search or ActiveRecord::Relation classes
198
+ #
199
+ def object_class
200
+ @object_class ||= if ((object_class = object.class) < ActiveRecord::Base)
201
+ object_class
202
+ elsif (klass = object.try(:klass))
203
+ klass
204
+ else
205
+ object_class
206
+ end
207
+ end
195
208
  end
196
209
  end
197
210
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleFormExtension
2
- VERSION = "1.4.0"
2
+ VERSION = "1.4.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_form_extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Glyph-fr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-07 00:00:00.000000000 Z
11
+ date: 2016-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails