class Lanes::Screen::Definition
Public Class Methods
new(id, extension_id)
click to toggle source
# File lib/lanes/screen.rb, line 93 def initialize(id, extension_id) self.identifier = id @extension_id = extension_id @extension = extension_id.underscore.camelize end
Public Instance Methods
as_json()
click to toggle source
# File lib/lanes/screen.rb, line 118 def as_json { id: identifier, title: title, icon: icon, model: model_class, view: view_class, access: model_access, group_id: group_id, extension: extension, description: description, asset: asset } end
group()
click to toggle source
# File lib/lanes/screen.rb, line 99 def group GROUPS[@group_id] end
has_file_matching?(pattern)
click to toggle source
# File lib/lanes/screen.rb, line 103 def has_file_matching?(pattern) Pathname.glob(root_path.join(pattern)).any? end
model()
click to toggle source
# File lib/lanes/screen.rb, line 113 def model ext = Lanes::Extensions.for_identifier(@extension_id) (@extension_id.camelize + '::' + @model_class).constantize end
root_path()
click to toggle source
# File lib/lanes/screen.rb, line 107 def root_path ext = Lanes::Extensions.for_identifier(@extension_id) raise "Unable to find extension '#{@extension_id}' for screen group" unless ext ext.root_path.join('client', url_prefix, identifier) end
to_json()
click to toggle source
# File lib/lanes/screen.rb, line 133 def to_json Oj.dump(as_json, mode: :compat) end