card-mod-assets 0.18.1 → 0.19.1

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: f760d28cbd8816fe77585459f95b1da4b34d22e39dffce3dba02479f9e5ab8e0
4
- data.tar.gz: '085c3c9529a70d230f4d285a35ca52c7b92a0c4dde349f193f65fe5eb14e3546'
3
+ metadata.gz: fb9a794fbc07eb171f607b72243b0894a03bec91ea6cd80dc628b32657331085
4
+ data.tar.gz: 76bc4728b7542d1487ddd6e3c8b2bd60d5306dbc1858b59a987a71bd9b04d12e
5
5
  SHA512:
6
- metadata.gz: f5f61dda1fce10b16d11c3a703b836a2892ddbdc39743c692b8f7a9a51694f18a4524f83df9ac8cf6473cdd8652cbb1ccd7e524d92e1c44a10b4cac634adfbc4
7
- data.tar.gz: efa0c998c16004dd5c7e50d37efb8f076f208d85fc62f807a02534a1d584e3716ec6c42b60c647af3e3187b63a6ecb9236b23ab332e997ba0ed846006808bd50
6
+ metadata.gz: 9f6922bce169460df9b03285723eea84f2ba4d3cc968be950454dd44995ce2ca1a5372eb4f205dbddb5eed7847eb351175acfd8c094ba5775d42cc45a6646fec
7
+ data.tar.gz: 8717798d6d89e81a606a2a3fadb76b7e9697861042d56ca94be512e4c0d3457558b1f98b5e966469aa2e926dcf048ec3ce47e064b34b729522f831bcfb40c572
data/data/real.yml CHANGED
@@ -2,6 +2,7 @@
2
2
  :codename: asset_input
3
3
  - :name: "*asset output"
4
4
  :codename: asset_output
5
- - :name: Remote manifest group
6
- :type: :cardtype
7
- :codename: remote_manifest_group
5
+ - :name: "group: local"
6
+ :codename: group_local
7
+ - :name: "group: remote"
8
+ :codename: group_remote
@@ -63,6 +63,7 @@ class DeathToMachines < Cardio::Migration::Transform
63
63
  def drop_all_style_items
64
64
  Card[:all, :style].item_cards.each do |card|
65
65
  next unless card.left&.type_id == Card::ModID && card.right&.codename == :style
66
+
66
67
  Card[:all, :style].drop_item! card
67
68
  end
68
69
  end
data/lib/card/assets.rb CHANGED
@@ -53,16 +53,8 @@ class Card
53
53
  asset_outputters.each(&:update_asset_output)
54
54
  end
55
55
 
56
- def script_outputters
57
- Card.search(left: { type: :mod }, right: :script).flatten
58
- end
59
-
60
- def style_outputters
61
- [Card[:all, :style]]
62
- end
63
-
64
56
  def asset_outputters
65
- script_outputters + style_outputters
57
+ %i[script style].map { |asset| [:all, asset].card }
66
58
  end
67
59
 
68
60
  # MOD+:style and MOD+:script cards, which represent the assets in MOD/assets/style
@@ -47,7 +47,7 @@ format do
47
47
 
48
48
  def link_to_view view, text=nil, opts={}
49
49
  opts[:path] = { card: { type: card.type, content: card.db_content } }
50
- super view, (text || view), opts
50
+ super(view, text || view, opts)
51
51
  end
52
52
  end
53
53
 
@@ -20,6 +20,7 @@ end
20
20
 
21
21
  def new_asset_file_card path, name=::File.basename(path)
22
22
  return unless (constants = new_asset_constants path)
23
+
23
24
  asset_card = Card.new(name: name, type_id: constants[:type_id], content: path)
24
25
  asset_card.include_set_module constants[:set_module]
25
26
  asset_card.minimize if @minimize
@@ -32,6 +32,7 @@ end
32
32
 
33
33
  def update_asset_input
34
34
  return unless Codename.exist? :asset_input
35
+
35
36
  # otherwise the migration that adds the asset_input card fails
36
37
 
37
38
  Card::Auth.as_bot do
@@ -42,6 +43,7 @@ end
42
43
 
43
44
  def asset_input_content
44
45
  return assemble_asset_input_content if virtual?
46
+
45
47
  update_asset_input if asset_input.blank?
46
48
  asset_input
47
49
  end
@@ -66,18 +66,11 @@ def make_asset_output_coded mod
66
66
  mod ||= :assets
67
67
  Card::Auth.as_bot do
68
68
  ENV["STORE_CODED_FILES"] = "true"
69
- asset_output_card.update! storage_type: :coded, mod: mod,
70
- codename: asset_output_codename
69
+ asset_output_card.update! storage_type: :coded, mod: mod
71
70
  ENV["STORE_CODED_FILES"] = nil
72
71
  end
73
72
  end
74
73
 
75
- def asset_output_codename
76
- asset_output_card.name.parts.map do |part|
77
- Card[part].codename&.to_s || part.cardname.safe_key
78
- end.join "_"
79
- end
80
-
81
74
  def input_item_cards
82
75
  item_cards(known_only: true).compact.reject(&:trash)
83
76
  end
@@ -10,7 +10,7 @@ end
10
10
  def relative_paths
11
11
  return [] unless (path = assets_path)
12
12
 
13
- Dir.chdir(path) { Dir.glob(search_path).sort }
13
+ Dir.chdir(path) { Dir.glob(search_path) }
14
14
  end
15
15
 
16
16
  def search_path
@@ -1,6 +1,8 @@
1
1
  include_set Abstract::List
2
2
  include_set Abstract::ReadOnly
3
3
 
4
+ card_accessor :group_remote
5
+
4
6
  def item_cards _args={}
5
7
  local_group_cards
6
8
  end
@@ -21,23 +23,20 @@ end
21
23
 
22
24
  def folder_group_card
23
25
  return unless assets_path
26
+
24
27
  card = new_assets_group_card local_group_name, folder_group_type_id
25
28
  card.assets_path = assets_path
26
29
  card
27
30
  end
28
31
 
29
32
  def local_manifest_group_cards
30
- manifest.map do |group_name, config|
31
- next if remote_group?(group_name, config)
33
+ manifest.map do |group_name, _config|
34
+ next if remote_group? group_name
35
+
32
36
  new_local_manifest_group_card group_name
33
37
  end.compact
34
38
  end
35
39
 
36
- def remote_group_urls
37
- return unless manifest_exists?
38
- manifest_group_items "remote"
39
- end
40
-
41
40
  def content?
42
41
  assets_path
43
42
  end
@@ -67,8 +66,8 @@ def local_group_name
67
66
  "local"
68
67
  end
69
68
 
70
- def remote_group? name, _config
71
- name == "remote" # || config["remote"]
69
+ def remote_group? name
70
+ name == "remote"
72
71
  end
73
72
 
74
73
  def manifest_group_items group_name
@@ -86,8 +85,10 @@ end
86
85
 
87
86
  def load_manifest
88
87
  return unless manifest_exists?
88
+
89
89
  manifest = YAML.load_file manifest_path
90
90
  return {} unless manifest # blank manifest
91
+
91
92
  validate_manifest manifest
92
93
  manifest
93
94
  end
@@ -130,6 +131,14 @@ def no_action?
130
131
  new? && !assets_path
131
132
  end
132
133
 
134
+ def asset_input_needs_refresh?
135
+ !asset_input_updated_at || source_changed?(since: asset_input_updated_at)
136
+ end
137
+
138
+ def asset_input_updated_at
139
+ asset_input_card&.updated_at
140
+ end
141
+
133
142
  private
134
143
 
135
144
  def new_local_manifest_group_card group_name
@@ -140,8 +149,7 @@ end
140
149
 
141
150
  def new_assets_group_card group_name, type_id
142
151
  item_name = "#{name}+group: #{group_name}"
143
- card = Card.new group_card_args(group_name, type_id, item_name)
144
- card
152
+ Card.new group_card_args(group_name, type_id, item_name)
145
153
  end
146
154
 
147
155
  def validate_manifest_item name, config
@@ -156,20 +164,17 @@ def raise_manifest_error msg
156
164
  end
157
165
 
158
166
  format :html do
159
- def map_remote_items
160
- remote_items = card.manifest_group_items "remote"
161
- return unless remote_items
162
-
163
- remote_items.map { |args| yield args.clone }
167
+ def map_remote_items &block
168
+ card.group_remote_card.map_items(&block)
164
169
  end
165
170
 
166
171
  view :core do
167
- groups =
168
- card.item_cards.map do |item|
169
- [item.cardname.tag, item.input_item_cards.map(&:name)]
170
- end
171
- if card.remote_group_urls.present?
172
- groups << ["group: remote", card.remote_group_urls.map { |remote| remote["src"] }]
172
+ groups = []
173
+ urls = card.group_remote_card.urls
174
+ groups << ["group: remote", urls] if urls.present?
175
+
176
+ card.item_cards.map do |item|
177
+ groups << [item.cardname.tag, item.input_item_cards.map(&:name)]
173
178
  end
174
179
 
175
180
  haml :group_list, groups: groups
@@ -1,8 +1,13 @@
1
1
  include_set Abstract::ReadOnly
2
2
  include_set Abstract::ManifestGroup
3
3
 
4
+ # TODO: migrate away the cardtype and remove the following
4
5
  basket[:non_createable_types] << :remote_manifest_group
5
6
 
7
+ def virtual?
8
+ new?
9
+ end
10
+
6
11
  def local?
7
12
  @local = false
8
13
  end
@@ -11,29 +16,39 @@ def minimize?
11
16
  @minimize = false
12
17
  end
13
18
 
14
- def paths
15
- return [] unless left
19
+ def item_configs
20
+ return @item_configs if @item_configs
16
21
 
17
- left.manifest_group_items group_name
22
+ @item_configs = left.manifest_group_items("remote") || []
18
23
  end
19
24
 
20
- def item_names _content=nil
21
- paths
25
+ def urls
26
+ item_configs.map { |path| path["src"] }
22
27
  end
23
28
 
24
29
  def content
25
- paths.join "\n"
30
+ urls.join "\n"
31
+ end
32
+
33
+ def map_items
34
+ item_configs.map { |config| yield config.clone }
26
35
  end
27
36
 
28
37
  format :html do
38
+ delegate :urls, to: :card
39
+
40
+ view :core do
41
+ list_group urls
42
+ end
43
+
29
44
  view :javascript_include_tag, cache: :never do
30
- paths.map do |path|
45
+ urls.map do |path|
31
46
  javascript_include_tag path
32
47
  end.join("\n")
33
48
  end
34
49
 
35
50
  view :stylesheet_include_tag do
36
- paths.map do |path|
51
+ urls.map do |path|
37
52
  tag "link", href: path, media: "all", rel: "stylesheet", type: "text/css"
38
53
  end.join("\n")
39
54
  end
data/set/type/mod.rb CHANGED
@@ -1,12 +1,13 @@
1
-
2
1
  def ensure_mod_asset_card asset_type
3
2
  asset_card = fetch_mod_assets_card asset_type
4
3
  return unless asset_card.assets_path
4
+
5
5
  asset_card.save! if asset_card.new?
6
6
  asset_card.name
7
7
  end
8
8
 
9
9
  private
10
+
10
11
  def fetch_mod_assets_card asset_type
11
12
  Card.fetch [name, asset_type], new: { type: :list }
12
13
  end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.19.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
8
8
  - Philipp Kühl
9
9
  - Gerry Gleason
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-11-22 00:00:00.000000000 Z
12
+ date: 1980-01-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: card
@@ -18,14 +17,14 @@ dependencies:
18
17
  requirements:
19
18
  - - '='
20
19
  - !ruby/object:Gem::Version
21
- version: 1.108.1
20
+ version: 1.109.1
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  requirements:
26
25
  - - '='
27
26
  - !ruby/object:Gem::Version
28
- version: 1.108.1
27
+ version: 1.109.1
29
28
  - !ruby/object:Gem::Dependency
30
29
  name: execjs
31
30
  requirement: !ruby/object:Gem::Requirement
@@ -52,70 +51,70 @@ dependencies:
52
51
  requirements:
53
52
  - - '='
54
53
  - !ruby/object:Gem::Version
55
- version: 0.18.1
54
+ version: 0.19.1
56
55
  type: :runtime
57
56
  prerelease: false
58
57
  version_requirements: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - '='
61
60
  - !ruby/object:Gem::Version
62
- version: 0.18.1
61
+ version: 0.19.1
63
62
  - !ruby/object:Gem::Dependency
64
63
  name: card-mod-format
65
64
  requirement: !ruby/object:Gem::Requirement
66
65
  requirements:
67
66
  - - '='
68
67
  - !ruby/object:Gem::Version
69
- version: 0.18.1
68
+ version: 0.19.1
70
69
  type: :runtime
71
70
  prerelease: false
72
71
  version_requirements: !ruby/object:Gem::Requirement
73
72
  requirements:
74
73
  - - '='
75
74
  - !ruby/object:Gem::Version
76
- version: 0.18.1
75
+ version: 0.19.1
77
76
  - !ruby/object:Gem::Dependency
78
77
  name: card-mod-list
79
78
  requirement: !ruby/object:Gem::Requirement
80
79
  requirements:
81
80
  - - '='
82
81
  - !ruby/object:Gem::Version
83
- version: 0.18.1
82
+ version: 0.19.1
84
83
  type: :runtime
85
84
  prerelease: false
86
85
  version_requirements: !ruby/object:Gem::Requirement
87
86
  requirements:
88
87
  - - '='
89
88
  - !ruby/object:Gem::Version
90
- version: 0.18.1
89
+ version: 0.19.1
91
90
  - !ruby/object:Gem::Dependency
92
91
  name: card-mod-carrierwave
93
92
  requirement: !ruby/object:Gem::Requirement
94
93
  requirements:
95
94
  - - '='
96
95
  - !ruby/object:Gem::Version
97
- version: 0.18.1
96
+ version: 0.19.1
98
97
  type: :runtime
99
98
  prerelease: false
100
99
  version_requirements: !ruby/object:Gem::Requirement
101
100
  requirements:
102
101
  - - '='
103
102
  - !ruby/object:Gem::Version
104
- version: 0.18.1
103
+ version: 0.19.1
105
104
  - !ruby/object:Gem::Dependency
106
105
  name: card-mod-content
107
106
  requirement: !ruby/object:Gem::Requirement
108
107
  requirements:
109
108
  - - '='
110
109
  - !ruby/object:Gem::Version
111
- version: 0.18.1
110
+ version: 0.19.1
112
111
  type: :runtime
113
112
  prerelease: false
114
113
  version_requirements: !ruby/object:Gem::Requirement
115
114
  requirements:
116
115
  - - '='
117
116
  - !ruby/object:Gem::Version
118
- version: 0.18.1
117
+ version: 0.19.1
119
118
  description: ''
120
119
  email:
121
120
  - info@decko.org
@@ -125,7 +124,6 @@ extra_rdoc_files: []
125
124
  files:
126
125
  - LICENSE
127
126
  - README.md
128
- - config/admin.yml
129
127
  - config/locales/de.yml
130
128
  - config/locales/en.yml
131
129
  - data/real.yml
@@ -143,8 +141,8 @@ files:
143
141
  - set/abstract/mod_assets/group_list.haml
144
142
  - set/right/asset_input.rb
145
143
  - set/right/asset_output.rb
144
+ - set/right/group_remote.rb
146
145
  - set/type/mod.rb
147
- - set/type/remote_manifest_group.rb
148
146
  homepage: https://decko.org
149
147
  licenses:
150
148
  - GPL-3.0-or-later
@@ -156,7 +154,6 @@ metadata:
156
154
  documentation_url: http://docs.decko.org/
157
155
  card-mod: assets
158
156
  card-mod-group: gem-defaults
159
- post_install_message:
160
157
  rdoc_options: []
161
158
  require_paths:
162
159
  - lib
@@ -164,15 +161,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
161
  requirements:
165
162
  - - ">="
166
163
  - !ruby/object:Gem::Version
167
- version: '3.0'
164
+ version: '3.2'
168
165
  required_rubygems_version: !ruby/object:Gem::Requirement
169
166
  requirements:
170
167
  - - ">="
171
168
  - !ruby/object:Gem::Version
172
169
  version: '0'
173
170
  requirements: []
174
- rubygems_version: 3.5.10
175
- signing_key:
171
+ rubygems_version: 3.6.8
176
172
  specification_version: 4
177
173
  summary: decko asset pipeline
178
174
  test_files: []
data/config/admin.yml DELETED
@@ -1,3 +0,0 @@
1
- cardtypes:
2
- assets:
3
- - remote_manifest_group