class OO::License
Attributes
key[R]
to_s[R]
Public Class Methods
mask_mark()
click to toggle source
# File lib/oo/license.rb, line 8 def mask_mark '*' end
masks()
click to toggle source
# File lib/oo/license.rb, line 16 def masks masks = {} max_depth.times do |t| masks["#{t + 1}"] = mask_mark + "#{separator}#{mask_mark}" * t end masks end
max_depth()
click to toggle source
# File lib/oo/license.rb, line 12 def max_depth OO.configuration.license_max_depth end
new(attrs = {})
click to toggle source
# File lib/oo/license.rb, line 29 def initialize(attrs = {}) @key = attrs.fetch(:key) end
separator()
click to toggle source
# File lib/oo/license.rb, line 4 def separator '.' end
Public Instance Methods
depth()
click to toggle source
# File lib/oo/license.rb, line 53 def depth to_a.size end
genre_masks()
click to toggle source
# File lib/oo/license.rb, line 65 def genre_masks (depth..self.class.masks.size).map { |n| self.class.masks[n.to_s] } end
mask_key(mask)
click to toggle source
# File lib/oo/license.rb, line 69 def mask_key(mask) mask = mask.split(separator) mask[0..depth - 1] = *to_a mask.join(separator) end
mask_mark()
click to toggle source
# File lib/oo/license.rb, line 61 def mask_mark self.class.mask_mark end
masks()
click to toggle source
# File lib/oo/license.rb, line 33 def masks masks = [] gen_masks = genre_masks current = self while current.key != mask_mark gen_masks.each { |mask| masks << current.mask_key(mask) } current = current.parent end (masks + gen_masks).uniq end
parent()
click to toggle source
# File lib/oo/license.rb, line 44 def parent return self.class.new(key: mask_mark) if depth == 1 self.class.new(key: to_a[0..-2].join(separator)) end
separator()
click to toggle source
# File lib/oo/license.rb, line 57 def separator self.class.separator end
to_a()
click to toggle source
# File lib/oo/license.rb, line 49 def to_a key.split(separator) end