Class: SkillTree::Parser::AclParser

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_tree/parser/acl_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ AclParser

Returns a new instance of AclParser.



5
6
7
8
9
10
# File 'lib/skill_tree/parser/acl_parser.rb', line 5

def initialize(name, options = {})
  @name = name.to_s
  @default_for = options[:default_for]
  @roles = []
  @version = options[:version]
end

Instance Attribute Details

#default_forObject (readonly)

Returns the value of attribute default_for.



4
5
6
# File 'lib/skill_tree/parser/acl_parser.rb', line 4

def default_for
  @default_for
end

#rolesObject (readonly)

Returns the value of attribute roles.



4
5
6
# File 'lib/skill_tree/parser/acl_parser.rb', line 4

def roles
  @roles
end

Instance Method Details

#modelObject



27
28
29
# File 'lib/skill_tree/parser/acl_parser.rb', line 27

def model
  SkillTree::Models::Acl.find_by(name: @name)
end

#role(*args) {|parser| ... } ⇒ Object

Yields:

  • (parser)


12
13
14
15
16
17
# File 'lib/skill_tree/parser/acl_parser.rb', line 12

def role(*args)
  parser = RoleParser.new(*args)
  parser.parent = self
  yield parser
  @roles << parser
end

#sync_modelObject



19
20
21
22
23
24
25
# File 'lib/skill_tree/parser/acl_parser.rb', line 19

def sync_model
  acl = SkillTree::Models::Acl.find_or_initialize_by(name: @name)
  return if version_match? acl
  update_version acl
  @roles.each { |role| role.sync_model acl }
  acl.save!
end