effective_resources 2.25.5 → 2.25.6

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
  SHA256:
3
- metadata.gz: 97c4d9e57cbb9190a61fa28058ded7f0e66462849da488234cb7850d6ff3f3b5
4
- data.tar.gz: 6d5d739a219cc0468ea5d3074e45da0d35eb59dbbb52bd2ba33f851dfbec9497
3
+ metadata.gz: 281dfe01432d3d514f46f43b7c0d76478b4675827581c2b9867ab14af1f51aae
4
+ data.tar.gz: 7edf326e2bd629a49b812e5ee96749e0ad95fb5b81d87d18b14a7452134af78a
5
5
  SHA512:
6
- metadata.gz: c2dc4d8ad8923d37e16d133ff9543d23d3ef98e5d99a0e21fa93d761d8ea67d3ae555c225d3a6acc66e8603c7c467761f0a9bc5527823e87b98a6c37ca39c065
7
- data.tar.gz: 2d0bdc822b307c8274e54a6992b75a95eadf9b54ef4fa5931e82b905859f4599ceb1d080fea04c4812ee6d9824f3be6922b8bbd818ccd1529b65b01d5198dff2
6
+ metadata.gz: 5e0af3a5c4f970d6c637a1429cf252875274a605c92c328fa87e05b9df4366b1924e466ab76e12c8be12f0980ae8dc091de5bc665de34307e6774d9c96bd7fe1
7
+ data.tar.gz: 85ea2f2757651bd051e549da3356d79729ec235776ae8eb35f00037f9616cd16ce5b08772a39fef6656f3926b137e4d6a1fdb9650cb45a60082b88cd29fbc07f
@@ -42,7 +42,8 @@ module Effective
42
42
 
43
43
  # Duplicate if possible
44
44
  if params[:duplicate_id].present?
45
- duplicate = resource_scope.find(params[:duplicate_id])
45
+ duplicate = (resource_scope.find(params[:duplicate_id]) rescue false)
46
+ duplicate ||= resource_scope.find_by_id(params[:duplicate_id])
46
47
 
47
48
  EffectiveResources.authorize!(self, :show, duplicate)
48
49
 
@@ -56,6 +56,15 @@ module Effective
56
56
 
57
57
  private
58
58
 
59
+ def to_masked_select2(resource)
60
+ if resource.respond_to?(:public_email)
61
+ "<span>#{resource}</span> <small>#{view_context.masked_email(resource)}</small>"
62
+ elsif resource.try(:email).present?
63
+ "<span>#{resource}</span> <small>#{resource.email}</small>"
64
+ else
65
+ "<span>#{resource}</span>"
66
+ end
67
+
59
68
  def to_select2(resource)
60
69
  if resource.try(:email).present?
61
70
  "<span>#{resource}</span> <small>#{resource.email}</small>"
@@ -323,6 +323,18 @@ module EffectiveResourcesHelper
323
323
  EffectiveResources.etsd(resource, attribute)
324
324
  end
325
325
 
326
+ def masked_email(resource)
327
+ public_email = resource.try(:public_email)
328
+ return public_email if public_email.present?
326
329
 
330
+ email = resource.email
331
+ return email if email.blank?
332
+
333
+ local, domain = email.split('@')
334
+ masked_local = local[0..1] + '*' * (local.length - 2)
335
+ masked_domain = domain.split('.').first[0..1] + '*' * (domain.split('.').first.length - 2) + '.' + domain.split('.').last
336
+
337
+ "#{masked_local}@#{masked_domain}"
338
+ end
327
339
 
328
340
  end
@@ -22,8 +22,12 @@ module ActsAsPublished
22
22
  included do
23
23
  attr_writer :save_as_draft
24
24
 
25
- before_validation do
26
- assign_attributes(published_start_at: nil, published_end_at: nil) if EffectiveResources.truthy?(@save_as_draft)
25
+ before_validation(if: -> { EffectiveResources.falsey?(@save_as_draft) && @save_as_draft.present? }) do
26
+ self.published_start_at ||= Time.zone.now
27
+ end
28
+
29
+ before_validation(if: -> { EffectiveResources.truthy?(@save_as_draft) }) do
30
+ assign_attributes(published_start_at: nil, published_end_at: nil)
27
31
  end
28
32
 
29
33
  validate(if: -> { published_start_at.present? && published_end_at.present? }) do
@@ -291,4 +291,8 @@ module EffectiveDeviseUser
291
291
  devise_mailer.send(notification, self, *args).deliver_now
292
292
  end
293
293
 
294
+ def to_select2_search_columns
295
+ [:email, :public_email, :first_name, :last_name, :name]
296
+ end
297
+
294
298
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.25.5'.freeze
2
+ VERSION = '2.25.6'.freeze
3
3
  end
@@ -127,6 +127,10 @@ module EffectiveResources
127
127
  end
128
128
  end
129
129
 
130
+ def self.falsey?(value)
131
+ !truthy?(value)
132
+ end
133
+
130
134
  def self.advance_date(date, business_days: 1, holidays: [:us, :observed])
131
135
  raise('business_days must be an integer <= 365') unless business_days.kind_of?(Integer) && business_days <= 365
132
136
 
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: 2.25.5
4
+ version: 2.25.6
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: 2024-07-03 00:00:00.000000000 Z
11
+ date: 2024-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails