effective_resources 0.3.8 → 0.3.9

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: 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