Module: Flipside
- Extended by:
- Config::Entities, Config::Roles, Config::Settings
- Defined in:
- lib/flipside.rb,
lib/flipside/web.rb,
lib/flipside/version.rb,
lib/flipside/importmap.rb,
app/models/flipside/key.rb,
app/models/flipside/keys.rb,
app/models/flipside/role.rb,
app/models/flipside/roles.rb,
lib/flipside/config/roles.rb,
app/models/flipside/checks.rb,
app/models/flipside/entity.rb,
lib/flipside/search_result.rb,
app/models/flipside/feature.rb,
app/models/flipside/entities.rb,
lib/flipside/config/entities.rb,
lib/flipside/config/settings.rb,
lib/flipside/config/registered_role.rb,
lib/flipside/config/registered_entity.rb,
lib/generators/flipside/install/install_generator.rb
Defined Under Namespace
Modules: Checks, Config, Entities, Generators, Importmap, Keys, Roles
Classes: Entity, Error, Feature, Key, NoSuchFeauture, RegisteredEntity, RegisteredRole, Role, SearchResult, Web
Constant Summary
collapse
- VERSION =
"0.3.3"
Instance Attribute Summary
#create_missing_features, #default_object, #ui_back_path
Class Method Summary
collapse
-
.add_entity(entity:, feature: nil, name: nil) ⇒ Object
-
.add_role(class_name:, method_name:, feature: nil, name: nil) ⇒ Object
-
.create(name:, description: nil) ⇒ Object
-
.create_missing(name) ⇒ Object
-
.disabled? ⇒ Boolean
-
.enable!(name) ⇒ Object
-
.enabled?(name, *objects) ⇒ Boolean
-
.find_by(name:, create_on_missing: create_missing_features) ⇒ Object
-
.find_by!(name:) ⇒ Object
-
.remove_entity(entity_id:, feature: nil, name: nil) ⇒ Object
-
.remove_role(role_id:, feature: nil, name: nil) ⇒ Object
display_entity, entity_classes, find_entity, register_entity, search_entity
register_role, role_classes, search_role
Class Method Details
.add_entity(entity:, feature: nil, name: nil) ⇒ Object
42
43
44
45
|
# File 'lib/flipside.rb', line 42
def add_entity(entity:, feature: nil, name: nil)
feature ||= find_by!(name:)
Entity.find_or_create_by(feature:, flippable: entity)
end
|
.add_role(class_name:, method_name:, feature: nil, name: nil) ⇒ Object
52
53
54
55
|
# File 'lib/flipside.rb', line 52
def add_role(class_name:, method_name:, feature: nil, name: nil)
feature ||= find_by!(name:)
Role.find_or_create_by(feature:, class_name:, method: method_name)
end
|
.create(name:, description: nil) ⇒ Object
72
73
74
|
# File 'lib/flipside.rb', line 72
def create(name:, description: nil)
Feature.create(name: name, description: description)
end
|
.create_missing(name) ⇒ Object
76
77
78
79
80
81
|
# File 'lib/flipside.rb', line 76
def create_missing(name)
trace = caller.find { |trace| !trace.start_with? __FILE__ }
source, line, _ = trace.split(":")
source = [source, line].join(":") if line.match?(/\d+/)
create(name:, description: "Created from #{source}")
end
|
.disabled? ⇒ Boolean
33
34
35
|
# File 'lib/flipside.rb', line 33
def disabled?(...)
!enabled?(...)
end
|
.enable!(name) ⇒ Object
37
38
39
40
|
# File 'lib/flipside.rb', line 37
def enable!(name)
feature = find_by!(name:)
feature.update(enabled: true)
end
|
.enabled?(name, *objects) ⇒ Boolean
25
26
27
28
29
30
31
|
# File 'lib/flipside.rb', line 25
def enabled?(name, *objects)
feature = find_by(name:)
return false unless feature
objects = [default_object] if objects.empty?
objects.any? { |object| feature.enabled? object }
end
|
.find_by(name:, create_on_missing: create_missing_features) ⇒ Object
62
63
64
65
66
|
# File 'lib/flipside.rb', line 62
def find_by(name:, create_on_missing: create_missing_features)
feature = Feature.find_by(name:)
feature ||= create_missing(name) if create_on_missing
feature
end
|
.find_by!(name:) ⇒ Object
68
69
70
|
# File 'lib/flipside.rb', line 68
def find_by!(name:)
find_by(name:) || raise(NoSuchFeauture.new(name))
end
|
.remove_entity(entity_id:, feature: nil, name: nil) ⇒ Object
47
48
49
50
|
# File 'lib/flipside.rb', line 47
def remove_entity(entity_id:, feature: nil, name: nil)
feature ||= find_by!(name:)
feature.entities.find_by(id: entity_id)&.destroy
end
|
.remove_role(role_id:, feature: nil, name: nil) ⇒ Object
57
58
59
60
|
# File 'lib/flipside.rb', line 57
def remove_role(role_id:, feature: nil, name: nil)
feature ||= find_by!(name:)
feature.roles.find_by(id: role_id)&.destroy
end
|