bootic_cli 0.9.3 → 0.9.4

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: 64db13bc720e2ff73d52f53f170ab8e0f320736b2ce2d59f17b6a9484c59ab18
4
- data.tar.gz: 6a430f14bf10f222943c216a80b1d0b46fa35bbd4d0eafaaf8f89f31346585c4
3
+ metadata.gz: a296e4252d391af00cccfff4af93d652c2daa29e4b8d65cd42202331bfc1b70d
4
+ data.tar.gz: 2f485bdd0c668f84738a21d7872404180ebaf04f594d37b1e000bc5df1966f52
5
5
  SHA512:
6
- metadata.gz: c120a547235bb4cdd35ae63fdc029bcd972362f52f0e49a6c845933d85a443d7e1309c366e52433785c0a867156c477e883d1108e09f1d2ccea0f3b59c00332a
7
- data.tar.gz: 309c38cd514887e071fc631a78d4229c928e8c533601afff2568905a8e324876c90fe46a0b96b9e6164984d3db66192093c6302142a135cac03976991c600a9d
6
+ metadata.gz: 8d44a11d8d69d2bd619cd69b8f9e8cfcaf42eea3674f6281cc14c9d70f74c1660da618f4b07983a034ac2d23534e380d83f485946705c641032af12feaa4c835
7
+ data.tar.gz: 6ad0e38e1b4274e68cc52c9d987f0b126af1d786707d2962d82b719bbc158ad4bb8bfba7efe3b1e63bf59ae05cd27e35753ccadea3c09deceeeceb0e735bb546
@@ -33,22 +33,34 @@ module BooticCli
33
33
  TEMPLATE_PATTERNS = ['sections/*.html', '*.html', '*.css', '*.js', '*.json', 'theme.yml'].freeze
34
34
  ASSET_PATTERNS = [File.join(ASSETS_DIR, '*')].freeze
35
35
 
36
+ ASSET_PATH_REGEX = /^assets\/[^\/]+$/.freeze
37
+ TEMPLATE_PATH_REGEX = /^[^\/]+\.(html|css|scss|js|json|yml)$/.freeze
38
+ SECTION_PATH_REGEX = /^sections\/[^\/]+.html$/.freeze
39
+
36
40
  def self.resolve_path(path, dir)
37
41
  File.expand_path(path).sub(File.expand_path(dir) + '/', '')
38
42
  end
39
43
 
40
- # helper to resolve the right type (Template or Asset) from a local path
44
+ # helper to resolve the right type (Template or Asset) from a local path
41
45
  # this is not part of the generic Theme interface
42
- def self.resolve_type(path)
43
- path =~ /assets\// ? :asset : :template
46
+ def self.resolve_type(path, dir)
47
+ relative_path = resolve_path(path, dir)
48
+
49
+ if relative_path[ASSET_PATH_REGEX]
50
+ :asset
51
+ elsif relative_path[TEMPLATE_PATH_REGEX] || relative_path[SECTION_PATH_REGEX]
52
+ :template
53
+ end
44
54
  end
45
55
 
46
56
  def self.resolve_file(path, workdir)
47
- file = File.new(path)
48
- type = resolve_type(path)
57
+ unless type = resolve_type(path, workdir)
58
+ return # neither an asset or template
59
+ end
49
60
 
50
61
  # initialize a new asset or template as it might be a new file
51
- item = if path =~ /assets\//
62
+ file = File.new(path)
63
+ item = if type == :asset
52
64
  file_name = File.basename(path)
53
65
  ThemeAsset.new(file_name, file, file.mtime.utc)
54
66
  else
@@ -326,6 +326,11 @@ module BooticCli
326
326
  return if File.basename(path)[0] == '.' # filter out .lock and .state
327
327
 
328
328
  item, type = FSTheme.resolve_file(path, dir)
329
+ unless item
330
+ # puts "Not a template or asset: #{path}"
331
+ return
332
+ end
333
+
329
334
  success = handle_file_errors(type, item) do
330
335
  case type
331
336
  when :template
@@ -338,7 +343,11 @@ module BooticCli
338
343
  end
339
344
 
340
345
  def delete_file(theme, path, dir)
341
- type = FSTheme.resolve_type(path)
346
+ unless type = FSTheme.resolve_type(path, dir)
347
+ # puts "Not a template or asset: #{path}"
348
+ return
349
+ end
350
+
342
351
  success = case type
343
352
  when :template
344
353
  file_name = FSTheme.resolve_path(path, dir)
@@ -346,8 +355,6 @@ module BooticCli
346
355
  when :asset
347
356
  file_name = File.basename(path)
348
357
  theme.remove_asset(file_name)
349
- else
350
- raise "Invalid type: #{type}"
351
358
  end
352
359
  puts "Deleted remote #{type}: #{highlight(file_name)}" if success
353
360
  end
@@ -1,3 +1,3 @@
1
1
  module BooticCli
2
- VERSION = '0.9.3'
2
+ VERSION = '0.9.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootic_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ismael Celis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-04-22 00:00:00.000000000 Z
12
+ date: 2023-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor