Module: Card::Set::Abstract::CodeFile

Extended by:
Card::Set
Defined in:
tmpsets/set/mod003-core/abstract/code_file.rb

Overview

Set: Abstract (CodeFile)

Defined Under Namespace

Modules: HtmlFormat

Class Method Summary collapse

Instance Method Summary collapse

Methods included from I18nScope

#mod_name, #scope

Methods included from Loader

#clean_empty_module_from_hash, #clean_empty_modules, #extended, #process_base_modules, #register_set

Methods included from Helpers

#abstract_set?, #all_set?, #num_set_parts, #shortname, #underscore

Methods included from Card::Set::AdvancedApi

#attachment, #ensure_set, #stage_method

Methods included from Format

#before, #format, layout_method_name, #view, view_method_name, view_setting_method_name, wrapper_method_name

Methods included from Inheritance

#include_set, #include_set_formats

Methods included from Basket

#abstract_basket, #add_to_basket, #basket, #unshift_basket

Methods included from Trait

#card_accessor, #card_reader, #card_writer, #require_field

Methods included from Event::Api

#event

Class Method Details

.included(host_class) ⇒ Object



8
9
10
11
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 8

def self.included host_class
  host_class.mattr_accessor :file_content_mod_name
  host_class.file_content_mod_name = Card::Set.mod_name(caller)
end

.source_locationObject



7
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 7

def self.source_location; "/Users/ethan/dev/decko/gem/card/mod/core/set/abstract/code_file.rb"; end

Instance Method Details

#coffee_files(files) ⇒ Object



83
84
85
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 83

def coffee_files files
  files.map { |f| "script_#{f}.js.coffee" }
end

#contentObject



55
56
57
58
59
60
61
62
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 55

def content
  Array.wrap(source_files).map do |filename|
    if (source_path = find_file filename)
      Rails.logger.info "reading file: #{source_path}"
      File.read source_path
    end
  end.compact.join "\n"
end

#existing_source_pathsObject



45
46
47
48
49
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 45

def existing_source_paths
  Array.wrap(source_files).map do |filename|
    find_file(filename)
  end.compact
end

#find_file(filename) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 35

def find_file filename
  mod_path = Card::Mod.dirs.path file_content_mod_name
  file_path = File.join(mod_path, source_dir, filename)
  unless File.exist?(file_path)
    Rails.logger.info "couldn't locate file #{filename} at #{file_path}"
    return nil
  end
  file_path
end

#scss_files(files) ⇒ Object



87
88
89
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 87

def scss_files files
  files.map { |f| "style_#{f}.scss" }
end

#source_changed?(since:) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 51

def source_changed? since:
  existing_source_paths.any? { |path| ::File.mtime(path) > since }
end

#source_dirObject



26
27
28
29
30
31
32
33
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 26

def source_dir
  case type_id
  when CoffeeScriptID, JavaScriptID then "lib/javascript"
  when CssID, ScssID then "lib/stylesheets"
  else
    "lib"
  end
end

#source_filesArray<String>, String

Returns the name of file(s) to be loaded.

Returns:

  • (Array<String>, String)

    the name of file(s) to be loaded



17
18
19
20
21
22
23
24
# File 'tmpsets/set/mod003-core/abstract/code_file.rb', line 17

def source_files
  case type_id
  when CoffeeScriptID then "#{codename}.js.coffee"
  when JavaScriptID   then "#{codename}.js"
  when CssID          then "#{codename}.css"
  when ScssID         then "#{codename}.scss"
  end
end