Module: Card::Setting
- Included in:
- Card::Set::Self::Accountable, Card::Set::Self::AddHelp, Card::Set::Self::Autoname, Card::Set::Self::Captcha, Card::Set::Self::Create, Card::Set::Self::Default, Card::Set::Self::DefaultHtmlView, Card::Set::Self::Delete, Card::Set::Self::Follow, Card::Set::Self::FollowFields, Card::Set::Self::Help, Card::Set::Self::Input, Card::Set::Self::Layout, Card::Set::Self::OnCreate, Card::Set::Self::OnDelete, Card::Set::Self::OnUpdate, Card::Set::Self::Options, Card::Set::Self::OptionsLabel, Card::Set::Self::Read, Card::Set::Self::Script, Card::Set::Self::Structure, Card::Set::Self::Style, Card::Set::Self::TableOfContents, Card::Set::Self::Thanks, Card::Set::Self::Update
- Defined in:
- mod/settings/lib/card/setting.rb
Overview
Used to extend setting modules like Card::Set::Self::Create in the settings mod
Constant Summary collapse
- @@group_names =
{ templating: "Templating", permission: "Permissions", webpage: "Webpage", editing: "Editing", event: "Events", other: "Other", config: "Config" }
- @@groups =
@@group_names.keys.each_with_object({}) do |key, groups| groups[key] = [] end
- @@user_specific =
::Set.new
Instance Attribute Summary collapse
-
#codename ⇒ Object
Let M = Card::Setting (module) E = Card::Set::Self::Create (module extended with M) O = Card'*create' accessible in E.
Class Method Summary collapse
Instance Method Summary collapse
- #applies_to_cardtype(type_id) ⇒ Object
- #set_position(group, pos) ⇒ Object
-
#setting_opts(opts) ⇒ Object
usage: setting_opts group: :permission | :event | ...
- #to_type_id(type) ⇒ Object
Instance Attribute Details
#codename ⇒ Object
Let M = Card::Setting (module) E = Card::Set::Self::Create (module extended with M) O = Card'*create' accessible in E
11 12 13 |
# File 'mod/settings/lib/card/setting.rb', line 11 def codename @codename end |
Class Method Details
.extended(host_class) ⇒ Object
14 15 16 17 |
# File 'mod/settings/lib/card/setting.rb', line 14 def self.extended host_class # accessible in E and O host_class.mattr_accessor :restricted_to_type, :rule_type_editable end |
.user_specific?(codename) ⇒ Boolean
33 34 35 |
# File 'mod/settings/lib/card/setting.rb', line 33 def self.user_specific? codename @@user_specific.include? codename end |
Instance Method Details
#applies_to_cardtype(type_id) ⇒ Object
77 78 79 |
# File 'mod/settings/lib/card/setting.rb', line 77 def applies_to_cardtype type_id !restricted_to_type || restricted_to_type.include?(type_id) end |
#set_position(group, pos) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'mod/settings/lib/card/setting.rb', line 65 def set_position group, pos if pos if @@groups[group][pos - 1] @@groups[group].insert(pos - 1, self) else @@groups[group][pos - 1] = self end else @@groups[group] << self end end |
#setting_opts(opts) ⇒ Object
usage:
setting_opts group: :permission | :event | ...
position:
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'mod/settings/lib/card/setting.rb', line 46 def setting_opts opts group = opts[:group] || :other @@groups[group] ||= [] set_position group, opts[:position] @codename = opts[:codename] || name.match(/::(\w+)$/)[1].underscore.to_sym self.rule_type_editable = opts[:rule_type_editable] self.restricted_to_type = if opts[:restricted_to_type] type_ids = [opts[:restricted_to_type]].flatten.map do |cardtype| to_type_id(cardtype) end ::Set.new(type_ids) end return unless opts[:user_specific] @@user_specific << @codename end |