class Object
Public Instance Methods
add_asset(asset_type)
click to toggle source
# File set/type/mod.rb, line 24 def add_asset asset_type all_rule(asset_type).add_item! codename_for(asset_type).to_sym end
all_rule(asset_type)
click to toggle source
# File set/type/mod.rb, line 38 def all_rule asset_type Card[:all, asset_type] end
assets_dir_exists?()
click to toggle source
# File set/abstract/mod_assets.rb, line 63 def assets_dir_exists? path = assets_path path && Dir.exist?(path) end
assets_path()
click to toggle source
# File set/abstract/mod_assets.rb, line 11 def assets_path return unless mod&.assets_path.present? File.join mod&.assets_path, subpath end
base_path()
click to toggle source
# File set/abstract/local_folder_group.rb, line 17 def base_path left&.assets_path end
codename_for(asset_type)
click to toggle source
# File set/type/mod.rb, line 34 def codename_for asset_type "#{codename}_#{asset_type}" end
compress?()
click to toggle source
# File set/abstract/asset_file.rb, line 36 def compress? @minimize end
content()
click to toggle source
# File set/type/remote_manifest_group.rb, line 22 def content paths.join "\n" end
delete_unused_items() { || ... }
click to toggle source
# File set/abstract/mod_assets.rb, line 57 def delete_unused_items @old_items = ::Set.new item_keys yield remove_deprecated_items @old_items end
drop_asset(asset_type, asset_card)
click to toggle source
# File set/type/mod.rb, line 28 def drop_asset asset_type, asset_card asset_card.update codename: nil asset_card.delete update_referers: true all_rule(asset_type).drop_item! asset_card end
ensure_item(field, type_id)
click to toggle source
# File set/abstract/mod_assets.rb, line 100 def ensure_item field, type_id item_name = "#{name}+#{field}" ensure_item_content item_name card = Card[item_name] args = ensure_item_args field, type_id, item_name return if item_already_coded? card, args ensure_item_save card, args card.try :update_machine_output end
ensure_item_args(field, type_id, name)
click to toggle source
# File set/abstract/mod_assets.rb, line 129 def ensure_item_args field, type_id, name { type_id: type_id, codename: "#{mod_name}_group__#{field}", name: name } end
ensure_item_content(item_name)
click to toggle source
# File set/abstract/mod_assets.rb, line 116 def ensure_item_content item_name @old_items.delete item_name.to_name.key add_item item_name end
ensure_item_save(card, args)
click to toggle source
# File set/abstract/mod_assets.rb, line 121 def ensure_item_save card, args if card card.update args else Card.create! args end end
ensure_manifest_groups_cards()
click to toggle source
# File set/abstract/mod_assets.rb, line 90 def ensure_manifest_groups_cards with_manifest_groups { |group_name, config| new_manifest_group group_name, config } end
ensure_mod_asset_card(asset_type, type_id)
click to toggle source
# File set/type/mod.rb, line 11 def ensure_mod_asset_card asset_type, type_id asset_card = fetch_mod_assets_card asset_type, type_id return if asset_card.no_action? asset_card.save! if asset_card.new? asset_card.update_items if asset_card.item_cards.present? add_asset asset_type else drop_asset asset_type, asset_card end end
ensure_mod_script_card()
click to toggle source
# File set/type/mod.rb, line 1 def ensure_mod_script_card ensure_mod_asset_card :script, Card::ModScriptAssetsID end
ensure_mod_style_card()
click to toggle source
# File set/type/mod.rb, line 5 def ensure_mod_style_card ensure_mod_asset_card :style, Card::ModStyleAssetsID end
ensure_update_items()
click to toggle source
# File set/abstract/mod_assets.rb, line 49 def ensure_update_items if manifest_exists? ensure_manifest_groups_cards else ensure_item local_group_name, local_folder_group_type_id end end
expected_item_keys()
click to toggle source
# File set/abstract/mod_assets.rb, line 23 def expected_item_keys return [] unless assets_dir_exists? if manifest_exists? manifest.keys.map { |group_key| "#{name}+#{group_key}".to_name.key } else ["#{name}+#{local_group_name}".to_name.key] end end
fetch_item_card(name, _args={})
click to toggle source
# File set/abstract/asset_list.rb, line 36 def fetch_item_card name, _args={} new_asset_file_card item_name_to_path(name) end
fetch_mod_assets_card(asset_type, type_id)
click to toggle source
# File set/type/mod.rb, line 42 def fetch_mod_assets_card asset_type, type_id codename = codename_for asset_type if Card::Codename.exists? codename Card[codename.to_sym] else Card.fetch [name, asset_type], new: { type_id: type_id, codename: codename } end end
find_file(path)
click to toggle source
# File set/abstract/asset_file.rb, line 15 def find_file path path.tap do |file_path| return nil if unknown_file? file_path end end
group_name()
click to toggle source
# File set/abstract/01_manifest_group.rb, line 1 def group_name codename.to_s.sub(/^.+__/, "") end
item_already_coded?(card, args)
click to toggle source
# File set/abstract/mod_assets.rb, line 112 def item_already_coded? card, args card&.type_id == args[:type_id] && card.codename == args[:codename] end
item_name_to_path(name)
click to toggle source
# File set/abstract/asset_list.rb, line 32 def item_name_to_path name name end
item_names(_content=nil)
click to toggle source
# File set/type/remote_manifest_group.rb, line 18 def item_names _content=nil paths end
link_to_view(view, text=nil, opts={})
click to toggle source
Calls superclass method
# File set/abstract/asset_file.rb, line 54 def link_to_view view, text=nil, opts={} opts[:path] = { card: { type: card.type, content: card.db_content } } super view, (text || view), opts end
link_view(opts={})
click to toggle source
# File set/abstract/asset_file.rb, line 49 def link_view opts={} opts[:path] = { card: { type: card.type, content: card.db_content } } link_to_card card.name, _render_title, opts end
local()
click to toggle source
# File set/abstract/asset_file.rb, line 44 def local @local = true end
local?()
click to toggle source
# File set/type/remote_manifest_group.rb, line 4 def local? @local = false end
local_group_name()
click to toggle source
# File set/abstract/mod_assets.rb, line 33 def local_group_name "local" end
make_machine_output_coded(verbose=false)
click to toggle source
# File set/abstract/mod_assets.rb, line 144 def make_machine_output_coded verbose=false item_cards.each do |item_card| puts "coding machine output for #{item_card.name}" if verbose item_card.try(:make_machine_output_coded, mod_name) end end
manifest()
click to toggle source
# File set/abstract/mod_assets.rb, line 80 def manifest @manifest ||= YAML.load_file manifest_path end
manifest_exists?()
click to toggle source
# File set/abstract/mod_assets.rb, line 68 def manifest_exists? manifest_path && File.exist?(manifest_path) end
manifest_group_items(group_name)
click to toggle source
# File set/abstract/mod_assets.rb, line 72 def manifest_group_items group_name manifest.dig(group_name, "items") || [] end
manifest_group_minimize?(group_name)
click to toggle source
# File set/abstract/mod_assets.rb, line 76 def manifest_group_minimize? group_name manifest.dig group_name, "minimize" end
manifest_path()
click to toggle source
# File set/abstract/mod_assets.rb, line 17 def manifest_path return unless assets_path File.join(assets_path, "manifest.yml") end
minimize()
click to toggle source
# File set/abstract/asset_file.rb, line 40 def minimize @minimze = true end
minimize?()
click to toggle source
# File set/abstract/local_folder_group.rb, line 21 def minimize? @minimize = true end
mod()
click to toggle source
# File set/abstract/mod_assets.rb, line 7 def mod @mod ||= Cardio::Mod.dirs.fetch_mod(mod_name) end
mod_name()
click to toggle source
# File set/abstract/mod_assets.rb, line 3 def mod_name left&.codename.to_s.sub(/^mod_/, "") end
new?()
click to toggle source
# File set/abstract/asset_file.rb, line 32 def new? false end
new_asset_file_card(path, name=::File.basename(path))
click to toggle source
# File set/abstract/asset_list.rb, line 40 def new_asset_file_card path, name=::File.basename(path) return unless (constants = new_asset_constants path) asset_card = Card.new(name: name, type_id: constants[:type_id], content: path) asset_card.include_set_module constants[:set_module] asset_card.minimize if @minimize asset_card.local if @local asset_card.base_path = base_path asset_card end
new_manifest_group(group_name, config)
click to toggle source
# File set/abstract/mod_assets.rb, line 94 def new_manifest_group group_name, config type_id = config["remote"] ? ::Card::RemoteManifestGroupID : local_manifest_group_type_id ensure_item group_name, type_id end
no_action?()
click to toggle source
# File set/abstract/mod_assets.rb, line 151 def no_action? new? && !assets_dir_exists? end
paths()
click to toggle source
# File set/abstract/local_folder_group.rb, line 1 def paths return [] unless (path = left&.assets_path) relative_paths.map { |child| ::File.join path, child } end
refresh_output(force: false)
click to toggle source
# File set/abstract/asset_list.rb, line 5 def refresh_output force: false update_items! if refresh_output? || force end
refresh_output?()
click to toggle source
# File set/abstract/asset_list.rb, line 9 def refresh_output? !output_updated_at || source_changed?(since: output_updated_at) end
relative_paths()
click to toggle source
# File set/abstract/01_manifest_group.rb, line 5 def relative_paths paths end
remove_deprecated_items(items)
click to toggle source
def groups_changed?
expected_items = expected_item_keys actual_items = item_keys difference = (expected_items + actual_items) - (expected_items & actual_items) difference.present?
end
# File set/abstract/mod_assets.rb, line 164 def remove_deprecated_items items items.each do |deprecated_item| next unless (item_card = Card.fetch(deprecated_item)) item_card.update codename: nil item_card.delete end end
render_items_and_compress(format)
click to toggle source
# File set/abstract/asset_list.rb, line 17 def render_items_and_compress format item_cards.map do |mcard| js = mcard.format(format)._render_core js = mcard.compress js if minimize? "// #{mcard.name}\n#{js}" end.join "\n" end
self_machine_input?()
click to toggle source
# File set/abstract/asset_list.rb, line 54 def self_machine_input? true end
short_content()
click to toggle source
# File set/abstract/asset_file.rb, line 67 def short_content fa_icon("exclamation-circle", class: "text-muted pr-2") + wrap_with(:span, "asset file", class: "text-muted") end
source_changed?(since: difference = (relative_paths + item_names) - (relative_paths & item_names))
click to toggle source
# File set/abstract/asset_list.rb, line 62 def source_changed? since: difference = (relative_paths + item_names) - (relative_paths & item_names) difference.present? || existing_source_paths.any? { |path| ::File.mtime(path) > since } end
source_files()
click to toggle source
# File set/abstract/asset_file.rb, line 11 def source_files [db_content] end
source_paths()
click to toggle source
# File set/abstract/asset_file.rb, line 5 def source_paths source_files.map do |file| ::File.join base_path, file end end
unknown_file?(file_path)
click to toggle source
# File set/abstract/asset_file.rb, line 21 def unknown_file? file_path return false if ::File.exist? file_path Rails.logger.info "couldn't locate #{file_path}" true end
update_items()
click to toggle source
# File set/abstract/mod_assets.rb, line 37 def update_items # return unless groups_changed? delete_unused_items do self.content = "" return unless assets_dir_exists? ensure_update_items save! end end
update_items!()
click to toggle source
# File set/abstract/asset_list.rb, line 25 def update_items! Card::Auth.as_bot do save! end regenerate_machine_output end
virtual?()
click to toggle source
# File set/abstract/asset_file.rb, line 28 def virtual? true end
with_manifest_groups() { |key, config| ... }
click to toggle source
# File set/abstract/mod_assets.rb, line 84 def with_manifest_groups manifest.each_pair do |key, config| yield key, config end end