effective_resources 0.3.8 → 0.3.9

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: 3d1402ecc05965bee97bc9bc54cab706bac0fed5
4
- data.tar.gz: 3f6b2afd4c260dc4ecd7460e0ab68043b778509c
3
+ metadata.gz: d0fa62c577020ee87d607427cf4910492d2437db
4
+ data.tar.gz: 710ec9d60171463f8e153d2525cdf66698ae9847
5
5
  SHA512:
6
- metadata.gz: 4f8fcd372c81a61cf1592533a4914bf1bfff2a7a0ccfd83eb385a798fb4e81d7f157e876b0e61c99897bf510ce64b68cc69920d68061abddfddd79f25e84275c
7
- data.tar.gz: 9f20ffeb34e900ba6e48d593613c8aeb4be46a8463cc4cd31c052b2b8aa2b9844dca83bb6fb5a1c4124dbd8708c72f734a8a8c715ae530d5db6f0f05a144fdf2
6
+ metadata.gz: c5d6c31a8f02deb548467e65dfaacbdc107216f33f4a63d2d71e2f415bc8c9d9c1f7674e63dfe651da7ece1e43a8871296fa760fc682190485ade203b2e4b06f
7
+ data.tar.gz: 404375d92f1b6675c61540856eb2ec0b210a076e2d1444085d081e9abe6ac0f87bc7ec8e6fca6d19a956e3d88b59b0966b9404b5953a47a3d51f67c027dbef97
@@ -85,6 +85,16 @@ module Effective
85
85
  klass.respond_to?(:deobfuscate) ? klass.deobfuscate(value) : value.to_s
86
86
  when :effective_roles
87
87
  EffectiveRoles.roles.include?(value.to_sym) ? value : EffectiveRoles.roles_for(value)
88
+ when :integer
89
+ (value.kind_of?(String) ? value.gsub(/\D/, '') : value).to_i
90
+ when :percentage
91
+ # We want this to return 0.81 when we type 81% or 0.81 or 81.5
92
+ if value.to_s.include?('.')
93
+ value = value.to_s.gsub(/[^0-9|\-|\.]/, '').to_f
94
+ value >= 1.0 ? (value / 100.0) : value
95
+ else
96
+ (value.to_s.gsub(/\D/, '').to_f / 100.0)
97
+ end
88
98
  when :integer, :percentage
89
99
  (value.kind_of?(String) ? value.gsub(/\D/, '') : value).to_i
90
100
  when :nil
@@ -61,7 +61,8 @@ module Effective
61
61
 
62
62
  term = Effective::Attribute.new(sql_type, klass: (association.try(:klass) rescue nil) || klass).parse(value, name: name)
63
63
 
64
- if term == 'nil' && ![:has_and_belongs_to_many, :has_many, :has_one, :belongs_to_polymorphic, :effective_roles].include?(sql_type)
64
+ # term == 'nil' rescue false is a Rails 4.1 fix, where you can't compare a TimeWithZone to 'nil'
65
+ if (term == 'nil' rescue false) && ![:has_and_belongs_to_many, :has_many, :has_one, :belongs_to_polymorphic, :effective_roles].include?(sql_type)
65
66
  return relation.where("#{sql_column} IS NULL")
66
67
  end
67
68
 
@@ -122,7 +123,7 @@ module Effective
122
123
  when :integer
123
124
  relation.where("#{sql_column} = ?", term)
124
125
  when :percentage
125
- relation.where("#{sql_column} = ?", term)
126
+ relation.where("#{sql_column} = ?", sql_type(name) == :integer ? (term * 100).to_i : term)
126
127
  when :price
127
128
  relation.where("#{sql_column} = ?", term)
128
129
  when :string, :text, :email
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '0.3.8'.freeze
2
+ VERSION = '0.3.9'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-12 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails