effective_resources 2.25.5 → 2.25.6

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