class Casbin::Model::Model
Constants
- SECTION_NAME_MAP
Public Instance Methods
add_def(sec, key, value)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 30 def add_def(sec, key, value) return false if value == '' ast = Assertion.new(key: key, value: value) %w[r p].include?(sec) ? ast_tokens_set(ast, key) : model_sec_set(ast) model[sec] ||= {} model[sec][key] = ast end
load_model(path)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 20 def load_model(path) cfg = Config::Config.new_config(path) load_sections(cfg) end
load_model_from_text(text)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 25 def load_model_from_text(text) cfg = Config::Config.new_config_from_text(text) load_sections(cfg) end
print_model()
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 40 def print_model Logger.info 'Model:' model.each do |k, v| v.each do |i, j| Logger.info "#{k}.#{i}: #{j.value}" end end end
Private Instance Methods
ast_tokens_set(ast, key)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 52 def ast_tokens_set(ast, key) ast.tokens = ast.value.split(',') ast.tokens.each_with_index { |token, i| ast.tokens[i] = "#{key}_#{token.strip}" } end
get_key_suffix(i)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 76 def get_key_suffix(i) i == 1 ? '' : i end
load_assertion(cfg, sec, key)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 71 def load_assertion(cfg, sec, key) value = cfg.get("#{SECTION_NAME_MAP[sec.to_sym]}::#{key}") add_def(sec, key, value) end
load_section(cfg, sec)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 61 def load_section(cfg, sec) loop.with_index do |_, i| break unless load_assertion(cfg, sec, "#{sec}#{get_key_suffix(i + 1)}") end end
load_sections(cfg)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 67 def load_sections(cfg) SECTION_NAME_MAP.each_key { |key| load_section(cfg, key.to_s) } end
model_sec_set(ast)
click to toggle source
# File lib/casbin-ruby/model/model.rb, line 57 def model_sec_set(ast) ast.value = Util.remove_comments(Util.escape_assertion(ast.value)) end