Class: Jazzy::SourceDeclaration::AccessControlLevel
- Inherits:
-
Object
- Object
- Jazzy::SourceDeclaration::AccessControlLevel
- Includes:
- Comparable
- Defined in:
- lib/jazzy/source_declaration/access_control_level.rb
Constant Summary collapse
- ACCESSIBILITY_PRIVATE =
'source.lang.swift.accessibility.private'.freeze
- ACCESSIBILITY_INTERNAL =
'source.lang.swift.accessibility.internal'.freeze
- ACCESSIBILITY_PUBLIC =
'source.lang.swift.accessibility.public'.freeze
- LEVELS =
{ private: 0, internal: 1, public: 2, }.freeze
Instance Attribute Summary collapse
-
#level ⇒ Object
readonly
Returns the value of attribute level.
Class Method Summary collapse
- .from_doc(doc) ⇒ Object
- .from_explicit_declaration(declaration_string) ⇒ Object
- .from_human_string(string) ⇒ Object
- .internal ⇒ Object
- .private ⇒ Object
- .public ⇒ Object
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(accessibility) ⇒ AccessControlLevel
constructor
A new instance of AccessControlLevel.
Constructor Details
#initialize(accessibility) ⇒ AccessControlLevel
Returns a new instance of AccessControlLevel.
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 12 def initialize(accessibility) @level = case accessibility when ACCESSIBILITY_PRIVATE then :private when ACCESSIBILITY_INTERNAL then :internal when ACCESSIBILITY_PUBLIC then :public else raise 'cannot initialize AccessControlLevel with ' \ "'#{accessibility}'" end end |
Instance Attribute Details
#level ⇒ Object (readonly)
Returns the value of attribute level.
6 7 8 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 6 def level @level end |
Class Method Details
.from_doc(doc) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 23 def self.from_doc(doc) accessibility = doc['key.accessibility'] if accessibility acl = new(accessibility) if acl return acl end end acl = from_explicit_declaration(doc['key.parsed_declaration']) acl || AccessControlLevel.public # fallback on public ACL end |
.from_explicit_declaration(declaration_string) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 35 def self.from_explicit_declaration(declaration_string) case declaration_string when /private\ / then private when /public\ / then public when /internal\ / then internal end end |
.from_human_string(string) ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 43 def self.from_human_string(string) case string.to_s.downcase when 'private' then private when 'internal' then internal when 'public' then public else raise "cannot initialize AccessControlLevel with '#{string}'" end end |
.internal ⇒ Object
56 57 58 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 56 def self.internal new(ACCESSIBILITY_INTERNAL) end |
.private ⇒ Object
52 53 54 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 52 def self.private new(ACCESSIBILITY_PRIVATE) end |
.public ⇒ Object
60 61 62 |
# File 'lib/jazzy/source_declaration/access_control_level.rb', line 60 def self.public new(ACCESSIBILITY_PUBLIC) end |