Sha256: 20c14166bd5eb304c19e78533cc40c24da85509a81d5dbebad1e8fbbf44e1238

Contents?: true

Size: 1.26 KB

Versions: 10

Compression:

Stored size: 1.26 KB

Contents

module UnifiedDB
  module Backend
    class Base
    
      attr_accessor :id, :title
    
      def self.find(params)
        new.find(params)
      end
    
      def initialize
        @result = []
      end
    
      def find(params)
        if params[:id]
          find_by_id params[:id]
        elsif params[:t] || params[:title]
          find_by_title(params[:t] || params[:title])
        else
          raise ApiError, 'no search criteria specified'
        end
      
        result
      rescue ApiError => e
        {
          :status => 'error',
          :reason => e.message
        }
      end
    
      def find_by_id(id)
        raise ApiError, 'not implemented'
      end
    
      def find_by_title(title)
        raise ApiError, 'not implemented'
      end
    
      def result
        {
          :status => 'success',
          :service => service,
          :result => @result
        }
      end
    
      private
    
      def service; 'base'; end
    
      def format_actors(actors)
        Array(actors).collect { |a| { a.name => a.role } }
      end
    
      def format_directors(directors)
        Array(directors).collect(&:name)
      end
    
      def format_writers(writers)
        Array(writers).collect(&:name)
      end
    
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
unified_db-0.2.7 lib/unified_db/backend/base.rb
unified_db-0.2.6 lib/unified_db/backend/base.rb
unified_db-0.2.5 lib/unified_db/backend/base.rb
unified_db-0.2.4 lib/unified_db/backend/base.rb
unified_db-0.2.3 lib/unified_db/backend/base.rb
unified_db-0.2.2 lib/unified_db/backend/base.rb
unified_db-0.2.1 lib/unified_db/backend/base.rb
unified_db-0.2.0 lib/unified_db/backend/base.rb
unified_db-0.1.1 lib/unified_db/backend/base.rb
unified_db-0.1.0 lib/unified_db/backend/base.rb