You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: pipe.rb
    path of file: ./repos/pipes
    
    the code of the file until where you have to start completion: class Pipe

    # the final output block that has to return a feed. Its run-function will call all children block, who will do the same
    attr_accessor :output
    attr_accessor :title

    def initialize(id: nil, pipe: nil, start: nil, params: {})
        if (id)
            stored_data = Database.instance.getPipe(id: id)
            pipe = JSON.parse(stored_data['pipe'])
            self.tit
    
    def createBlock(blockData, params)
        block = case blockData['type']
            when 'FeedBlock' then Feedblock.new
            when 'FilterBlock' then Filterblock.new
            when 'CombineBlock' then Combineblock.new
            when 'DuplicateBlock' then Duplicateblock.new
            when 'UniqueBlock' then Uniqueblock.new
            when 'TruncateBlock' then Truncateblock.new
            when 'SortBlock' then Sortblock.new
            when 'DownloadBlock' then Downloadblock.new
            when 'ExtractBlock' then Extractblock.new
            when 'BuilderBlock' then Builderblock.new
            when 'PipeBlock' then Pipeblock.new
            when 'WebhookBlock' then Webhookblock.new
            when 'ReplaceBlock' then Replaceblock.new
            when 'TextinputBlock' then Textinputblock.new
            when 'TwitterBlock' then Twitterblock.new
            when 'MergeBlock' then Mergeblock.new
            when 'InsertBlock' then Insertblock.new
            when 'ForeachBlock' then Foreachblock.new
            when 'ImagesBlock' then ImagesBlock.new
        end