Class: Extension::Models::Type
- Inherits:
-
Object
- Object
- Extension::Models::Type
show all
- Defined in:
- lib/project_types/extension/models/type.rb
Constant Summary
collapse
- TYPES_PATH =
%w(lib project_types extension models types *.rb)
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.inherited(klass) ⇒ Object
14
15
16
17
18
|
# File 'lib/project_types/extension/models/type.rb', line 14
def inherited(klass)
super
@all_extension_types ||= []
@all_extension_types << klass
end
|
.load_all ⇒ Object
9
10
11
12
|
# File 'lib/project_types/extension/models/type.rb', line 9
def load_all
return unless @all_extension_types.nil? || @all_extension_types.empty?
Dir.glob(File.join(ShopifyCli::ROOT, TYPES_PATH)).map { |file_path| load(file_path) }
end
|
.load_type(identifier) ⇒ Object
32
33
34
|
# File 'lib/project_types/extension/models/type.rb', line 32
def load_type(identifier)
repository[identifier]
end
|
.repository ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/project_types/extension/models/type.rb', line 24
def repository
load_all if @all_extension_types.empty?
@repository ||= @all_extension_types.map(&:new).each_with_object({}) do |type, hash|
hash[type.identifier] = type
end
end
|
.valid?(identifier) ⇒ Boolean
20
21
22
|
# File 'lib/project_types/extension/models/type.rb', line 20
def valid?(identifier)
repository.key?(identifier)
end
|
Instance Method Details
#config(_context) ⇒ Object
53
54
55
|
# File 'lib/project_types/extension/models/type.rb', line 53
def config(_context)
raise NotImplementedError, "'#{__method__}' must be implemented for #{self.class}"
end
|
#create(_directory_name, _context) ⇒ Object
57
58
59
|
# File 'lib/project_types/extension/models/type.rb', line 57
def create(_directory_name, _context)
raise NotImplementedError, "'#{__method__}' must be implemented for #{self.class}"
end
|
#extension_context(_context) ⇒ Object
61
62
63
|
# File 'lib/project_types/extension/models/type.rb', line 61
def extension_context(_context)
nil
end
|
#graphql_identifier ⇒ Object
41
42
43
|
# File 'lib/project_types/extension/models/type.rb', line 41
def graphql_identifier
identifier
end
|
#identifier ⇒ Object
37
38
39
|
# File 'lib/project_types/extension/models/type.rb', line 37
def identifier
self.class::IDENTIFIER
end
|
#name ⇒ Object
45
46
47
|
# File 'lib/project_types/extension/models/type.rb', line 45
def name
message('name')
end
|
#tagline ⇒ Object
49
50
51
|
# File 'lib/project_types/extension/models/type.rb', line 49
def tagline
message('tagline') || ""
end
|
#valid_extension_contexts ⇒ Object
65
66
67
|
# File 'lib/project_types/extension/models/type.rb', line 65
def valid_extension_contexts
[]
end
|