tail_merge 0.2.0 → 0.3.0

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: ff6ca50c862b6942ab07296b4111bc84928f960883f939e153069b926b51dc38
4
- data.tar.gz: 853009b24fb888e2d0af540c274541fdebbad87aded06fbab79cfcb1061f469a
3
+ metadata.gz: '09136ec0a7747e58715fc95aae08f3c81599247202a152bc3b21c85217b5dbad'
4
+ data.tar.gz: b4313ed6f949a48149d1e417e88c84bd026dd9791197f68f0137c2217e5798fb
5
5
  SHA512:
6
- metadata.gz: dc1d28edcf9b35ea2b98ba0a42821d932ad8109c21e818fa6b499fc8cdbca2db4dbe8c54540fb4d8c79dca2523f90a5883398e8736e4ef9f7693e855c956369c
7
- data.tar.gz: 385cea35eb5451eb138557b3ec3312834fc4826449802f16f7f40531922ca38dc9fdd55c829fcdcc819820b7196cd10a26095ae65b5f252fc3c830d9eb380fdd
6
+ metadata.gz: 8a797eafd289cc37273f8ebf323241f6245f9a90337dc2c9b9841d279ec7eac957b492ed974b4a4c9bc824485dd057722fc2191ff04d9bddeff6ec3b50b85f43
7
+ data.tar.gz: 7e52a4c5a9b2d763228aab6930895742a2f2dddfbbb2581fb6d8b31dfd719bcb85b75d86a43976f45b65d22dadd6527187a771744a432d808fe24c241c11694a
@@ -14,6 +14,7 @@ fn merge_tailwind_classes(args: &[Value]) -> Result<RString, Error> {
14
14
 
15
15
  // ---------- 2. collect class tokens ------------------------------------
16
16
  let mut tokens = Vec::<String>::new();
17
+ let is_string_input = matches!(args[0].clone().try_convert::<RString>(), Ok(_));
17
18
  match args[0].clone().try_convert::<RString>() {
18
19
  Ok(rstr) => tokens.extend(rstr.to_string()?.split_whitespace().map(str::to_owned)),
19
20
  Err(_) => {
@@ -25,6 +26,24 @@ fn merge_tailwind_classes(args: &[Value]) -> Result<RString, Error> {
25
26
  }
26
27
  }
27
28
 
29
+ // Early returns for simple cases
30
+ if is_string_input {
31
+ let rstr: RString = args[0].clone().try_convert()?;
32
+ let s = rstr.to_string()?;
33
+ if !s.contains(' ') {
34
+ // Single class string, return as-is
35
+ return Ok(RString::new(&s));
36
+ }
37
+ } else {
38
+ // Array input
39
+ if tokens.is_empty() {
40
+ return Ok(RString::new(""));
41
+ }
42
+ if tokens.len() == 1 {
43
+ return Ok(RString::new(&tokens[0]));
44
+ }
45
+ }
46
+
28
47
  // ---------- 3. extract options -----------------------------------------
29
48
  let mut prefix: Option<String> = None;
30
49
  let mut separator: Option<String> = None;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TailMerge
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tail_merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Achilleas Buisman