module Sashite::CGN::Ability
Constants
- PATTERN
Public Class Methods
dump(io)
click to toggle source
# File lib/sashite/cgn/ability.rb, line 36 def self.dump io raise ArgumentError unless dumpable? io Subject.dump(io.fetch(:subject)) + '^' + Verb.dump(io.fetch(:verb)) + '=' + Object.dump(io.fetch(:object)) end
dumpable?(io)
click to toggle source
# File lib/sashite/cgn/ability.rb, line 28 def self.dumpable? io io.is_a?(Hash) && io.keys.sort == %i(object subject verb) && Subject.dumpable?(io.fetch(:subject)) && Verb.dumpable?(io.fetch(:verb)) && Object.dumpable?(io.fetch(:object)) end
load(io)
click to toggle source
# File lib/sashite/cgn/ability.rb, line 14 def self.load io raise ArgumentError unless loadable? io subject = Subject.load io.split('^').fetch 0 verb = Verb.load io.split('^').fetch(1).split('=').fetch 0 object = Object.load io.split('=').fetch 1 { subject: subject, verb: verb, object: object } end
loadable?(io)
click to toggle source
# File lib/sashite/cgn/ability.rb, line 10 def self.loadable? io !!io.match("^#{PATTERN}$") end