avo 4.0.0.beta.15 → 4.0.0.beta.16

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: 1071f00b1ea8452984cabfbefcb91e8ba3681cee0b34e5432acf2d97c7f4ab6f
4
- data.tar.gz: ae20a85de18af36806433d0ba1b8be349683541df065c360d7d417550c94ab58
3
+ metadata.gz: 52bcb0361fb2cc8ceaf16690d1d42d6aa167de55e9292cc520eda4e64d5eb7d1
4
+ data.tar.gz: c604c302f9fe37599e2b4255a09e7b6b4c79860b28a9310f2cab3426ae080e31
5
5
  SHA512:
6
- metadata.gz: 9841450ee5f2ea9d1d9ad95db2916dd9e08c56d6cba707188e841dc899ecacd6bcc87b1b6ace1884042cb82de7e3f819ae3b105b0e195428ff88a3b346c462de
7
- data.tar.gz: 6abbe21b187ca9fa79f08edeecf5582b7f399a026d2a8ad602025ab0c63434579d235de18a82aec6807a07cddc51046317758b1de6c4e017b2112923a17700e0
6
+ metadata.gz: 41190cda831e41b0db64f3ba3f7e2a2e293bcd5011baf0b9dc0acdf31780f3ca51ea95a9b96df0bc4422372ed7d4f1831c9f971842bdeac2f186f5839b14a834
7
+ data.tar.gz: 18aad86d56c8ead2656ba80e282500788e2ac82623d0b2c2c3a366f985b4e368034349eb03996206c3f3656a06f87aab8048dde2a33942d2f43c4e554fce0750
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (4.0.0.beta.15)
4
+ avo (4.0.0.beta.16)
5
5
  actionview (>= 6.1)
6
6
  active_link_to
7
7
  activerecord (>= 6.1)
@@ -0,0 +1,79 @@
1
+ require "fileutils"
2
+ require "rubygems"
3
+
4
+ module Avo
5
+ class TailwindVariablesPreparer
6
+ def self.prepare(target:, label:, avo_gem_path: nil, cwd: Dir.pwd)
7
+ source = resolve_source(avo_gem_path:, cwd:)
8
+ unless source
9
+ raise "[#{label}] Could not resolve Avo variables.css source."
10
+ end
11
+
12
+ target_dir = File.dirname(target)
13
+ begin
14
+ FileUtils.mkdir_p(target_dir)
15
+ rescue Errno::EACCES
16
+ warn "[#{label}] prebuild_css: cannot create #{target_dir} (permission denied). Skipping."
17
+ return true
18
+ end
19
+
20
+ if File.exist?(target) || File.symlink?(target)
21
+ begin
22
+ return true if File.identical?(source, target)
23
+ rescue
24
+ # ignore and continue
25
+ end
26
+
27
+ begin
28
+ File.delete(target)
29
+ rescue Errno::EACCES
30
+ warn "[#{label}] prebuild_css: cannot update #{target} (permission denied). Skipping."
31
+ return true
32
+ end
33
+ end
34
+
35
+ begin
36
+ File.symlink(source, target)
37
+ rescue Errno::EEXIST
38
+ begin
39
+ return true if File.identical?(source, target)
40
+ File.delete(target)
41
+ File.symlink(source, target)
42
+ rescue
43
+ copy_unless_identical(source, target)
44
+ end
45
+ rescue
46
+ copy_unless_identical(source, target)
47
+ end
48
+
49
+ true
50
+ end
51
+
52
+ def self.resolve_source(avo_gem_path: nil, cwd: Dir.pwd)
53
+ roots = []
54
+ roots << avo_gem_path if avo_gem_path
55
+ roots << File.expand_path("../avo", cwd)
56
+ roots << `bundle show avo 2>/dev/null`.strip
57
+
58
+ begin
59
+ roots << Gem::Specification.find_by_name("avo").full_gem_path
60
+ rescue Gem::LoadError
61
+ # ignore
62
+ end
63
+
64
+ roots
65
+ .compact
66
+ .map(&:strip)
67
+ .reject(&:empty?)
68
+ .uniq
69
+ .map { |root| File.join(root, "app/assets/stylesheets/css/variables.css") }
70
+ .find { |path| File.exist?(path) }
71
+ end
72
+
73
+ def self.copy_unless_identical(source, target)
74
+ return if File.exist?(target) && File.identical?(source, target)
75
+
76
+ FileUtils.cp(source, target)
77
+ end
78
+ end
79
+ end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "4.0.0.beta.15" unless const_defined?(:VERSION)
2
+ VERSION = "4.0.0.beta.16" unless const_defined?(:VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avo
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.beta.15
4
+ version: 4.0.0.beta.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
@@ -1048,6 +1048,7 @@ files:
1048
1048
  - lib/avo/services/telemetry_service.rb
1049
1049
  - lib/avo/services/uri_service.rb
1050
1050
  - lib/avo/tailwind_builder.rb
1051
+ - lib/avo/tailwind_variables_preparer.rb
1051
1052
  - lib/avo/test_helpers.rb
1052
1053
  - lib/avo/tools/tool_manager.rb
1053
1054
  - lib/avo/u_i_instance.rb