File: app/models/text_filter.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  class: TextFilter#1
includes
  Annotatable   
  Simpleton   
inherits from
  Object ( Builtin-Module )
has properties
method: filter (1/2) / 1 #7
class method: inherited / 1 #12
class method: filter (2/E) / 1 #16
class method: description_file / 1 #20
class method: descendants_names #25
class method: find_descendant / 1 #29

Class Hierarchy

Object ( Builtin-Module )
  TextFilter    #1

Code

   1  class TextFilter
   2    include Simpleton
   3    include Annotatable
   4    
   5    annotate :filter_name, :description
   6     
   7    def filter(text)
   8      text
   9    end
  10    
  11    class << self
  12      def inherited(subclass)
  13        subclass.filter_name = subclass.name.to_name('Filter')
  14      end
  15      
  16      def filter(text)
  17        instance.filter(text)
  18      end
  19      
  20      def description_file(filename)
  21        text = File.read(filename) rescue ""
  22        self.description text
  23      end
  24 
  25      def descendants_names
  26        descendants.map { |s| s.filter_name }.sort
  27      end
  28 
  29      def find_descendant(filter_name)
  30        descendants.each do |s|
  31          return s if s.filter_name == filter_name
  32        end
  33        nil
  34      end
  35    end
  36  end