railsui_icon 1.0.8 → 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: 10d02df8ac8f9e8898f39420db584fab2187233cc55eef5c3cdfefc6ff5baf82
4
- data.tar.gz: ce8af1dee5d60a12730ea468ba48569873ec9192952ee416d350bacbbb58e36a
3
+ metadata.gz: 51a9a0836425ce4622b7d00588f61b5db119a8b3d3c009bf9c029a3edd7281b7
4
+ data.tar.gz: dc8f4cd8f33e54f772a28e16c517ef79dd00ba41990bf32ae1000c6e473a2778
5
5
  SHA512:
6
- metadata.gz: cb3f011b2da7e400190cf096cf009af5199dcafb88d7e05d2b399b90be0e0fe02f30cb422889ce6bd0756fb51471048d7d7716930d2fada2cf0337e8ad68f239
7
- data.tar.gz: 94eda12d52a3d407d30dd100b793f95f1e2b82774e80077a9578f602d97f4df872da04781baba180649eb45c5a048599c0e13f2b3f6fd17059edc0f6fa1ad291
6
+ metadata.gz: 66dd52f85985d981f2021a4d4900ecf340aaab5746ade40f030aa29e4ebc01dbad55b66d6042c62c2b7b636d5aa590c03b440bd2ca40a36c41e18285c0bb436a
7
+ data.tar.gz: 7b001043b1787db770e7532a9687d89d4a2e2901528d1a56f4e9cb2a0b5eff38e11cff854af524d9fc8b8fce36b8e9b29787234b62e6a7bd8a159949a7819265
@@ -43,20 +43,18 @@ module RailsuiIcon
43
43
  def render_custom_path(custom_path)
44
44
  return warning if custom_path.blank?
45
45
 
46
- asset_path = nil
46
+ # Strip leading slashes from custom_path
47
+ sanitized_path = custom_path.sub(%r{^/}, '')
47
48
 
48
- if defined?(Railsui::Engine) && Railsui::Engine.root.present?
49
- engine_asset_path = Railsui::Engine.root.join("app/assets/images#{custom_path}")
50
- asset_path = engine_asset_path if File.exist?(engine_asset_path)
51
- end
49
+ # Extract file name from sanitized_path
50
+ file_name = File.basename(URI.parse(sanitized_path).path)
52
51
 
53
- unless asset_path
54
- app_asset_path = Rails.root.join("app/assets/images#{custom_path}")
55
- asset_path = app_asset_path.to_s if File.exist?(app_asset_path)
56
- end
52
+ # Attempt to find the asset in subdirectories of app/assets/images
53
+ asset_path = find_asset_path(sanitized_path)
57
54
 
58
55
  raise ArgumentError, "Asset path cannot be found" if asset_path.nil?
59
56
 
57
+ # Read the SVG content
60
58
  svg_content = File.read(asset_path)
61
59
  doc = Nokogiri::HTML::DocumentFragment.parse(svg_content)
62
60
  svg = doc.at_css('svg')
@@ -72,6 +70,17 @@ module RailsuiIcon
72
70
  warning
73
71
  end
74
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
+
75
84
  def file_path
76
85
  File.join(RailsuiIcon.root, "lib/railsui_icon/icons/#{variant}/#{name}.svg")
77
86
  end
@@ -1,3 +1,3 @@
1
1
  module RailsuiIcon
2
- VERSION = "1.0.8"
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.8
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-26 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