Sha256: e3fedbbfe7e7e86273352b6224cc320bc5b8ae772ba765122d758fd4debde575

Contents?: true

Size: 818 Bytes

Versions: 1

Compression:

Stored size: 818 Bytes

Contents

module EldarScrolls
  module Scrolls
    @@categories = {}
    @@list = {}
    
    def self.add(scroll)
      EldarScrolls::Scrolls.const_set ActiveSupport::Inflector.camelize(scroll.key), scroll
      @@list[scroll.key] = scroll
      (@@categories[scroll.category.to_s] ||= []) << scroll.key
      @@categories[scroll.category.to_s].uniq!
      scroll
    end

    def self.[](key)
      @@list[key.to_s]
    end

    def self.list
      @@list.keys.sort
    end

    def self.list_classes
      @@list.values.sort_by{|c| c.key}
    end

    def self.categories
      @@categories.keys.sort
    end

    def self.for(category)
      (@@categories[category.to_s] || []).sort
    end

    def self.remove_from_category(category, scroll)
      (@@categories[category.to_s] ||= []).delete(scroll.key)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eldarscrolls-0.7.0 lib/eldarscrolls/scrolls.rb