asset_db 0.1.1 → 0.2.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: b42a206aff25757d375733d7848c357a4ddccf98d34decb8cf56684f9538ce7d
4
- data.tar.gz: b6e77803fa31752f932bb9d7cd40e85affbf8b96665756440aa4f936678701a9
3
+ metadata.gz: 42dde564b2ddc791818bc1431399d8f51a193f8e4470d157b74cb200999de40c
4
+ data.tar.gz: ce91c3dbeb2690f282f2627be18cd1c2cf9aec72012a68a0b8e97c713103d3a7
5
5
  SHA512:
6
- metadata.gz: 15e1d12a82c2d41cf53ccf83794161e5113e8f6ecc5b8da9ef82808fbb4d137bc9ae43f36709f956f7ef441593e7116e04dd0223aab30ce71d0d98ad9b944250
7
- data.tar.gz: c86c0642cb23bd8ecd29f625bb0b57740615d85e572c9ca97eb7c01f30950a7462f470519c9cc48f865d8ce20aa6e0240c50233e695537a2675fdaff9788aa01
6
+ metadata.gz: e484a766a3ab1c2845c1a1dc04e05bfc2395ca854f16945037c69597cf1a48c97b2dd7a79004a1621d4e93723ee9617d59366b71f8a0aaf0cfab1e8cc3bb10a6
7
+ data.tar.gz: 9f270d3af193419c86e44dbd78cbd3125ad95742c6b264be277c0e319a2c2175f902498484860c8a3964c9318c8ce9d5e485103a094cc762f2c47354cec56692
@@ -6,12 +6,12 @@ module AssetDB
6
6
  class Database
7
7
  CONFIG_RESERVED = %w[types basepath folders].freeze
8
8
 
9
- attr_reader :asset_types, :base_path, :groups, :resolver
9
+ attr_reader :asset_types, :basepath, :groups, :resolver
10
10
  attr_accessor :separator
11
11
 
12
- def initialize(asset_types: nil, base_path: nil)
12
+ def initialize(asset_types: nil, basepath: nil)
13
13
  @asset_types = (asset_types&.map(&:to_sym) || %i[css js]).freeze
14
- @base_path = (base_path || '').dup
14
+ @basepath = (basepath || '').dup
15
15
  @separator = nil
16
16
  @groups = {} # {id ⇒ Group}
17
17
  @resolver = Resolver.new(self)
@@ -49,7 +49,7 @@ module AssetDB
49
49
 
50
50
  group = asset.group
51
51
  package = asset.package
52
- path = @base_path.dup
52
+ path = @basepath.dup
53
53
  unless path.empty?
54
54
  path.gsub!(':type', asset.type.to_s)
55
55
  path.gsub!(':group', group.folder_segment.to_s)
@@ -66,7 +66,7 @@ module AssetDB
66
66
  # --------------- Config loader ---------------
67
67
  def self.from_config(cfg)
68
68
  cfg = cfg.transform_keys(&:to_s)
69
- db = new(asset_types: cfg['types'], base_path: cfg['basepath'])
69
+ db = new(asset_types: cfg['types'], basepath: cfg['basepath'])
70
70
 
71
71
  folders_map = (cfg['folders'] || {}).transform_keys(&:to_s).dup
72
72
  if sep = folders_map.delete('separator')
@@ -101,7 +101,7 @@ module AssetDB
101
101
  p_spec.each do |k, v|
102
102
  key = k.to_s
103
103
  if db.asset_types.include?(key.to_sym) # ASSETS
104
- Array(v).each { |url| pkg.asset(key, url) }
104
+ Array(v).each { |url| pkg.asset(key, url == true ? p_id + '.' + key : url) }
105
105
  else # DEPENDENCIES
106
106
  Array(v).each { |target_pkg| pkg.depends_on(target_pkg, group_id: key) }
107
107
  end
@@ -114,7 +114,14 @@ module AssetDB
114
114
 
115
115
  # Unify any number (≥2) of Package or PackageCollection into one collection
116
116
  def unify(*items)
117
- raise ArgumentError, "unify requires ≥2 packages/collections" if items.size < 2
117
+ # Simple returns
118
+ if items.empty?
119
+ return nil
120
+ elsif items.size == 1
121
+ return Resolver::PackageCollection.new(self, items.first)
122
+ end
123
+
124
+ # Combine packages
118
125
  merged = items.flat_map do |i|
119
126
  case i
120
127
  when Resolver::PackageCollection
@@ -88,7 +88,7 @@ module AssetDB
88
88
 
89
89
  def initialize(database, pkgs)
90
90
  @database = database
91
- @packages = pkgs.map(&:itself).uniq
91
+ @packages = Array(pkgs).uniq
92
92
  @cache = {} # {[type, key] ⇒ [Asset]}
93
93
  end
94
94
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AssetDB
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
data/lib/asset_db.rb CHANGED
@@ -18,7 +18,7 @@ module AssetDB
18
18
  # # ...
19
19
  # end
20
20
  def self.build(types: nil, basepath: nil, &block)
21
- db = Database.new(asset_types: types, base_path: basepath)
21
+ db = Database.new(asset_types: types, basepath: basepath)
22
22
  yield db if block
23
23
  db
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Convincible Media
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-03 00:00:00.000000000 Z
11
+ date: 2025-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler