railsui_icon 1.0.9 → 1.1.0

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: 9e3a5c13ff65a6d4671c5550561a0af226c8df1ea0c992a8ff7e1f67df9d0840
4
- data.tar.gz: e44adae26817aa4fba39c9139f5b1a70d7cfee80d021e2da5eff35fb33201203
3
+ metadata.gz: 51a9a0836425ce4622b7d00588f61b5db119a8b3d3c009bf9c029a3edd7281b7
4
+ data.tar.gz: dc8f4cd8f33e54f772a28e16c517ef79dd00ba41990bf32ae1000c6e473a2778
5
5
  SHA512:
6
- metadata.gz: 4c9f911dad3a914805c739c63514d31236984770b6083c8dfe8e8e7ff593508801aebe0667cac6880b3b4debb7a3ca7151a39483c219e334d0d5252b1ef70e72
7
- data.tar.gz: 4f137ba098e63dcd10bd808b6ccef8b7b8117b780b4e98fd1d85faf76fcdbacb2f8f2982c40ffbbf033b2d41e25aa3e53d2c68cfef82305433ca823b4a411b57
6
+ metadata.gz: 66dd52f85985d981f2021a4d4900ecf340aaab5746ade40f030aa29e4ebc01dbad55b66d6042c62c2b7b636d5aa590c03b440bd2ca40a36c41e18285c0bb436a
7
+ data.tar.gz: 7b001043b1787db770e7532a9687d89d4a2e2901528d1a56f4e9cb2a0b5eff38e11cff854af524d9fc8b8fce36b8e9b29787234b62e6a7bd8a159949a7819265
@@ -43,21 +43,18 @@ module RailsuiIcon
43
43
  def render_custom_path(custom_path)
44
44
  return warning if custom_path.blank?
45
45
 
46
- file_name = File.basename(URI.parse(custom_path).path)
47
- asset_path = nil
46
+ # Strip leading slashes from custom_path
47
+ sanitized_path = custom_path.sub(%r{^/}, '')
48
48
 
49
- if defined?(Railsui::Engine) && Railsui::Engine.root.present?
50
- engine_asset_path = Railsui::Engine.root.join("app/assets/images", file_name)
51
- asset_path = engine_asset_path if File.exist?(engine_asset_path)
52
- end
49
+ # Extract file name from sanitized_path
50
+ file_name = File.basename(URI.parse(sanitized_path).path)
53
51
 
54
- unless asset_path
55
- app_asset_path = Rails.root.join("app/assets/images", file_name)
56
- asset_path = app_asset_path.to_s if File.exist?(app_asset_path)
57
- end
52
+ # Attempt to find the asset in subdirectories of app/assets/images
53
+ asset_path = find_asset_path(sanitized_path)
58
54
 
59
55
  raise ArgumentError, "Asset path cannot be found" if asset_path.nil?
60
56
 
57
+ # Read the SVG content
61
58
  svg_content = File.read(asset_path)
62
59
  doc = Nokogiri::HTML::DocumentFragment.parse(svg_content)
63
60
  svg = doc.at_css('svg')
@@ -73,6 +70,17 @@ module RailsuiIcon
73
70
  warning
74
71
  end
75
72
 
73
+ private
74
+
75
+ def find_asset_path(file_name)
76
+ # Check in the main app/assets/images directory
77
+ path = Rails.root.join('app/assets/images', file_name)
78
+ return path.to_s if File.exist?(path)
79
+
80
+ # Check in any subdirectories within app/assets/images
81
+ Dir[Rails.root.join('app/assets/images/**/*', file_name)].first
82
+ end
83
+
76
84
  def file_path
77
85
  File.join(RailsuiIcon.root, "lib/railsui_icon/icons/#{variant}/#{name}.svg")
78
86
  end
@@ -1,3 +1,3 @@
1
1
  module RailsuiIcon
2
- VERSION = "1.0.9"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railsui_icon
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Leverenz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-30 00:00:00.000000000 Z
11
+ date: 2024-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails