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