Class: EacTemplates::Abstract::FsObject

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_templates/abstract/fs_object.rb

Direct Known Subclasses

Directory, File

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.assert(obj) ⇒ EacTemplates::Abstract::FsObject, EacTemplates::Abstracts::FsObjectByPathname

Parameters:

Returns:



9
10
11
12
13
14
15
# File 'lib/eac_templates/abstract/fs_object.rb', line 9

def assert(obj)
  if obj.is_a?(self)
    obj
  else
    ::EacTemplates::Abstract::FsObjectByPathname.new(obj)
  end
end

.by_subpath(owner, parent_object, subpath, options = {}) ⇒ EacTemplates::Abstract::FsObject

Parameters:

  • owner (Object)
  • parent_object (Object, nil)
  • subpath (Pathname)

Returns:



21
22
23
24
25
26
27
28
# File 'lib/eac_templates/abstract/fs_object.rb', line 21

def by_subpath(owner, parent_object, subpath, options = {})
  r = new(owner, parent_object, nil, options)
  subpath.if_present(::Pathname.new(''), &:to_pathname).each_filename do |basename|
    parent_object = r
    r = new(owner, parent_object, basename, options)
  end
  r
end

Instance Method Details

#applierEacTemplates::Variables::Directory, EacTemplates::Variables::File



42
43
44
# File 'lib/eac_templates/abstract/fs_object.rb', line 42

def applier
  applier_class.new(self)
end

#applier_classClass

Returns:

  • (Class)


47
48
49
# File 'lib/eac_templates/abstract/fs_object.rb', line 47

def applier_class
  ::EacTemplates::Variables.const_get(type.to_s.camelize)
end

#category_moduleModule

Returns:



52
53
54
# File 'lib/eac_templates/abstract/fs_object.rb', line 52

def category_module
  self.class.module_parent
end

#path_for_searchPathname

Returns:

  • (Pathname)


57
58
59
60
61
62
63
# File 'lib/eac_templates/abstract/fs_object.rb', line 57

def path_for_search
  if parent_object.present?
    parent_object.path_for_search.join(basename)
  else
    path_for_search_prefix.join(basename)
  end
end

#path_for_search_prefixPathname

Returns:

  • (Pathname)


66
67
68
# File 'lib/eac_templates/abstract/fs_object.rb', line 66

def path_for_search_prefix
  raise_abstract_method __method__
end

#raise_not_found(message) ⇒ Object



70
71
72
# File 'lib/eac_templates/abstract/fs_object.rb', line 70

def raise_not_found(message)
  raise ::EacTemplates::Errors::NotFound, message
end

#source_setEacTemplates::Sources::Set



75
76
77
# File 'lib/eac_templates/abstract/fs_object.rb', line 75

def source_set
  options[OPTION_SOURCE_SET] || ::EacTemplates::Sources::Set.default
end

#to_sObject



89
90
91
92
# File 'lib/eac_templates/abstract/fs_object.rb', line 89

def to_s
  source_set = options.if_key(:source_set, '-', &:included_paths)
  "#{self.class}[Basename: #{basename}, Source Set: #{source_set}]"
end

#typeSymbol

Returns:

  • (Symbol)


80
81
82
# File 'lib/eac_templates/abstract/fs_object.rb', line 80

def type
  type_list.value_validate!(self.class.name.demodulize.underscore.to_sym)
end

#type_listEacRubyUtils::Listable::SymbolList

Returns:

  • (EacRubyUtils::Listable::SymbolList)


85
86
87
# File 'lib/eac_templates/abstract/fs_object.rb', line 85

def type_list
  ::EacTemplates::Abstract::FsObject.lists.type
end