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.4"
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
43
44
45
46
|
# File 'lib/flipside.rb', line 43
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
53
54
55
56
|
# File 'lib/flipside.rb', line 53
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
73
74
75
|
# File 'lib/flipside.rb', line 73
def create(name:, description: nil)
Feature.create(name: name, description: description)
end
|
.create_missing(name) ⇒ Object
77
78
79
80
81
82
|
# File 'lib/flipside.rb', line 77
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
34
35
36
|
# File 'lib/flipside.rb', line 34
def disabled?(...)
!enabled?(...)
end
|
.enable!(name) ⇒ Object
38
39
40
41
|
# File 'lib/flipside.rb', line 38
def enable!(name)
feature = find_by!(name:)
feature.update(enabled: true)
end
|
.enabled?(name, *objects) ⇒ Boolean
25
26
27
28
29
30
31
32
|
# File 'lib/flipside.rb', line 25
def enabled?(name, *objects)
feature = find_by(name:)
return false unless feature
objects = Array(default_object) if objects.empty?
objects << nil if objects.empty?
objects.any? { |object| feature.enabled? object }
end
|
.find_by(name:, create_on_missing: create_missing_features) ⇒ Object
63
64
65
66
67
|
# File 'lib/flipside.rb', line 63
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
69
70
71
|
# File 'lib/flipside.rb', line 69
def find_by!(name:)
find_by(name:) || raise(NoSuchFeauture.new(name))
end
|
.remove_entity(entity_id:, feature: nil, name: nil) ⇒ Object
48
49
50
51
|
# File 'lib/flipside.rb', line 48
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
58
59
60
61
|
# File 'lib/flipside.rb', line 58
def remove_role(role_id:, feature: nil, name: nil)
feature ||= find_by!(name:)
feature.roles.find_by(id: role_id)&.destroy
end
|