taverna-player 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
 - data/.ruby-gemset +1 -0
 - data/.ruby-version +1 -0
 - data/CHANGES.rdoc +19 -0
 - data/README.rdoc +24 -8
 - data/app/views/taverna_player/runs/_info.json.jbuilder +1 -2
 - data/app/views/taverna_player/runs/_port.json.jbuilder +1 -0
 - data/app/views/taverna_player/runs/create.json.jbuilder +3 -1
 - data/app/views/taverna_player/runs/new.json.jbuilder +15 -1
 - data/app/views/taverna_player/runs/show.json.jbuilder +11 -9
 - data/lib/taverna_player/concerns/controllers/runs_controller.rb +10 -3
 - data/lib/taverna_player/extras/paperclip-spoofing-fix.rb +25 -0
 - data/lib/taverna_player/version.rb +2 -2
 - data/lib/taverna_player/worker.rb +30 -7
 - data/taverna_player.gemspec +2 -2
 - data/test/dummy/app/views/layouts/application.html.erb +2 -1
 - data/test/fixtures/files/plain-text.bad-extension +1 -0
 - data/test/functional/taverna_player/runs_controller_test.rb +11 -2
 - data/test/unit/taverna_player/run_port_test.rb +18 -0
 - data/test/unit/taverna_player/worker_test.rb +39 -2
 - metadata +14 -47
 - data/app/views/taverna_player/runs/_inputs.json.jbuilder +0 -8
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            !binary "U0hBMQ==":
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 4 
     | 
    
         
            +
                NDIzMTk5MTVmNTA4MWMzNDUyYWExMjFjMThiZTcxY2IzNDdmNTM1NA==
         
     | 
| 
      
 5 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 6 
     | 
    
         
            +
                YzNjZTVjNzBhN2JkYmQxNjBkZWM3NTAwMGU0NmViMDBhYjRiZjc4Ng==
         
     | 
| 
      
 7 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 8 
     | 
    
         
            +
              metadata.gz: !binary |-
         
     | 
| 
      
 9 
     | 
    
         
            +
                MDNmNGNkMTI4MWI5NDJjYTQ5NGFlZWQ4NDYxMmQ2YjBkMjIwY2MyZDhmZGQw
         
     | 
| 
      
 10 
     | 
    
         
            +
                MTI5NzExNzE1MzRmMGMzM2UxYjNkYWVmNDcwZTJiYWY4Y2Y5NGU0YzFmZDRi
         
     | 
| 
      
 11 
     | 
    
         
            +
                MDRkMmQ4ZmMxYzk2MzIzNmM4MDgxOTY4ZGI0ZDI2ZjI1OTRkYzI=
         
     | 
| 
      
 12 
     | 
    
         
            +
              data.tar.gz: !binary |-
         
     | 
| 
      
 13 
     | 
    
         
            +
                MGVlM2MzNTk5ZDMyNDliYzY2YWJlOTM4YzM1NjAxYzE1Y2VhOWI1NGNjMzZk
         
     | 
| 
      
 14 
     | 
    
         
            +
                N2EwMDkxNmQ1YmFlYTYxMmZiMDZhZWY2YzEyMTU0MjFhNzYxNDllNmI5OTA2
         
     | 
| 
      
 15 
     | 
    
         
            +
                Y2U3N2RkYWUzZWNiMjA5ZDhkNDI2ZWQ3M2VjYzM5NWI5ODg5OGQ=
         
     | 
    
        data/.ruby-gemset
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            taverna-player
         
     | 
    
        data/.ruby-version
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ruby-1.9.3-p484
         
     | 
    
        data/CHANGES.rdoc
    CHANGED
    
    | 
         @@ -1,5 +1,24 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = Changes log for Taverna Player
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            == Version 0.7.0
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * Refactor full run JSON output.
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Improve the runs/new JSON output.
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Add more interaction fields to the JSON output.
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Fix non-ASCII character in gemspec info.
         
     | 
| 
      
 9 
     | 
    
         
            +
            * Fix non-ASCII character in README.
         
     | 
| 
      
 10 
     | 
    
         
            +
            * [TAV-508] Allow workers to run against different servers.
         
     | 
| 
      
 11 
     | 
    
         
            +
            * [TAV-511] Don't save run log if it's an empty file.
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Add note about JSON interface to the Readme.
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Add a note about the API Docs to the Readme.
         
     | 
| 
      
 14 
     | 
    
         
            +
            * Rework the testing of an empty log file for better testing.
         
     | 
| 
      
 15 
     | 
    
         
            +
            * Add tests for taverna credentials in env variable.
         
     | 
| 
      
 16 
     | 
    
         
            +
            * [TAV-512] Fix overzealous file extension restrictions for inputs.
         
     | 
| 
      
 17 
     | 
    
         
            +
            * Add an alert flash to the test layout.
         
     | 
| 
      
 18 
     | 
    
         
            +
            * Use flash[:alert] not flash[:error].
         
     | 
| 
      
 19 
     | 
    
         
            +
            * Recover from failed run creation more gracefully.
         
     | 
| 
      
 20 
     | 
    
         
            +
            * Bump version of t2-server gem we are using.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       3 
22 
     | 
    
         
             
            == Version 0.6.0
         
     | 
| 
       4 
23 
     | 
    
         | 
| 
       5 
24 
     | 
    
         
             
            * [TAV-485] Set up separate worker integration test.
         
     | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -6,9 +6,9 @@ URL::         http://www.taverna.org.uk 
     | 
|
| 
       6 
6 
     | 
    
         
             
            Licence::     BSD (See LICENCE or http://www.opensource.org/licenses/bsd-license.php)
         
     | 
| 
       7 
7 
     | 
    
         
             
            Copyright::   (c) 2013, 2014 The University of Manchester, UK
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            {<img src="https://badge.fury.io/rb/taverna-player. 
     | 
| 
      
 9 
     | 
    
         
            +
            {<img src="https://badge.fury.io/rb/taverna-player.svg" alt="Gem Version" />}[http://badge.fury.io/rb/taverna-player]
         
     | 
| 
       10 
10 
     | 
    
         
             
            {<img src="https://codeclimate.com/github/myGrid/taverna-player.png" />}[https://codeclimate.com/github/myGrid/taverna-player]
         
     | 
| 
       11 
     | 
    
         
            -
            {<img src="https://travis-ci.org/myGrid/taverna-player. 
     | 
| 
      
 11 
     | 
    
         
            +
            {<img src="https://travis-ci.org/myGrid/taverna-player.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/myGrid/taverna-player]
         
     | 
| 
       12 
12 
     | 
    
         
             
            {<img src="https://coveralls.io/repos/myGrid/taverna-player/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/myGrid/taverna-player?branch=master]
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            == Synopsis
         
     | 
| 
         @@ -154,8 +154,8 @@ And everything should be found by the asset pipeline automatically. 
     | 
|
| 
       154 
154 
     | 
    
         
             
            Make sure you have flash messages in your main layout
         
     | 
| 
       155 
155 
     | 
    
         
             
            (usually <tt>app/views/layouts/application.html.erb</tt>). For example:
         
     | 
| 
       156 
156 
     | 
    
         | 
| 
       157 
     | 
    
         
            -
              <p  
     | 
| 
       158 
     | 
    
         
            -
              <p  
     | 
| 
      
 157 
     | 
    
         
            +
              <p id="notice"><%= notice %></p>
         
     | 
| 
      
 158 
     | 
    
         
            +
              <p id="alert"><%= alert %></p>
         
     | 
| 
       159 
159 
     | 
    
         | 
| 
       160 
160 
     | 
    
         
             
            Taverna Player uses delayed_job to run workflows on a Taverna Server. If your
         
     | 
| 
       161 
161 
     | 
    
         
             
            application is not already using delayed_job then you can install the
         
     | 
| 
         @@ -687,7 +687,7 @@ running: 
     | 
|
| 
       687 
687 
     | 
    
         
             
              https://example.com:8443/
         
     | 
| 
       688 
688 
     | 
    
         | 
| 
       689 
689 
     | 
    
         
             
            The above example shows a https server running on port 8443. If the service is
         
     | 
| 
       690 
     | 
    
         
            -
            on port 80 for http or port 443 for https then you don 
     | 
| 
      
 690 
     | 
    
         
            +
            on port 80 for http or port 443 for https then you don't need to specify the
         
     | 
| 
       691 
691 
     | 
    
         
             
            port.
         
     | 
| 
       692 
692 
     | 
    
         | 
| 
       693 
693 
     | 
    
         
             
            If there are services on the same host that require different credentials then
         
     | 
| 
         @@ -712,6 +712,25 @@ it is rserve: 
     | 
|
| 
       712 
712 
     | 
    
         | 
| 
       713 
713 
     | 
    
         
             
              rserve://example.com:6311
         
     | 
| 
       714 
714 
     | 
    
         | 
| 
      
 715 
     | 
    
         
            +
            == The Taverna Player API
         
     | 
| 
      
 716 
     | 
    
         
            +
             
     | 
| 
      
 717 
     | 
    
         
            +
            There is more information about how you can more closely integrate Taverna
         
     | 
| 
      
 718 
     | 
    
         
            +
            Player into your host application in the
         
     | 
| 
      
 719 
     | 
    
         
            +
            {API Documentation}[http://mygrid.github.io/taverna-player].
         
     | 
| 
      
 720 
     | 
    
         
            +
             
     | 
| 
      
 721 
     | 
    
         
            +
            == Embedding a workflow into another Web site
         
     | 
| 
      
 722 
     | 
    
         
            +
             
     | 
| 
      
 723 
     | 
    
         
            +
            Workflow runs handled by Taverna Player can be embedded in other Web sites in
         
     | 
| 
      
 724 
     | 
    
         
            +
            much the same way that media like YouTube videos can be. Documentation on how
         
     | 
| 
      
 725 
     | 
    
         
            +
            to achieve this
         
     | 
| 
      
 726 
     | 
    
         
            +
            {is available separately[https://github.com/myGrid/taverna-player/wiki/Embedding].
         
     | 
| 
      
 727 
     | 
    
         
            +
             
     | 
| 
      
 728 
     | 
    
         
            +
            == Using Taverna Player as a Web Service
         
     | 
| 
      
 729 
     | 
    
         
            +
             
     | 
| 
      
 730 
     | 
    
         
            +
            As well as providing HTML views to the host application, Taverna Player also
         
     | 
| 
      
 731 
     | 
    
         
            +
            provides a RESTful Web Service interface. Documentation for this interface
         
     | 
| 
      
 732 
     | 
    
         
            +
            {is available separately}[https://github.com/myGrid/taverna-player/wiki/JSON-API-Documentation].
         
     | 
| 
      
 733 
     | 
    
         
            +
             
     | 
| 
       715 
734 
     | 
    
         
             
            == Limitations and to-do list
         
     | 
| 
       716 
735 
     | 
    
         | 
| 
       717 
736 
     | 
    
         
             
            The most serious limitation is with the Service Credentials. Because Taverna
         
     | 
| 
         @@ -731,13 +750,10 @@ moment. 
     | 
|
| 
       731 
750 
     | 
    
         | 
| 
       732 
751 
     | 
    
         
             
            In no particular order:
         
     | 
| 
       733 
752 
     | 
    
         | 
| 
       734 
     | 
    
         
            -
            * Taverna Player as a service. Allow usage of Taverna Player via a fully
         
     | 
| 
       735 
     | 
    
         
            -
              RESTful interface with JSON and XML support (in progress).
         
     | 
| 
       736 
753 
     | 
    
         
             
            * User specific (and therefore private) credentials wallet for secure services.
         
     | 
| 
       737 
754 
     | 
    
         
             
            * Comprehensive Taverna Server administration panel. This would allow admin
         
     | 
| 
       738 
755 
     | 
    
         
             
              users to view and manage runs directly on the Taverna Server along with
         
     | 
| 
       739 
756 
     | 
    
         
             
              other such admin tasks.
         
     | 
| 
       740 
     | 
    
         
            -
            * I18n support.
         
     | 
| 
       741 
757 
     | 
    
         
             
            * oEmbed support (see http://oembed.com/ for more details).
         
     | 
| 
       742 
758 
     | 
    
         | 
| 
       743 
759 
     | 
    
         
             
            == Support
         
     | 
| 
         @@ -1,2 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            json.extract! run, :id, :name, :workflow_id, : 
     | 
| 
       2 
     | 
    
         
            -
              :start_time, :finish_time
         
     | 
| 
      
 1 
     | 
    
         
            +
            json.extract! run, :id, :name, :workflow_id, :state, :start_time, :finish_time
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            json.extract! port, :name, :depth, :value_type, :value_size, :path
         
     | 
| 
         @@ -1 +1,15 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            workflow_title = TavernaPlayer.workflow_proxy.title(@workflow) || "None"
         
     | 
| 
      
 2 
     | 
    
         
            +
            workflow_inputs = TavernaPlayer.workflow_proxy.inputs(@workflow)
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            json.run do
         
     | 
| 
      
 5 
     | 
    
         
            +
              json.workflow_id @run.workflow_id
         
     | 
| 
      
 6 
     | 
    
         
            +
              json.name workflow_title
         
     | 
| 
      
 7 
     | 
    
         
            +
              unless workflow_inputs.empty?
         
     | 
| 
      
 8 
     | 
    
         
            +
                json.inputs_attributes do
         
     | 
| 
      
 9 
     | 
    
         
            +
                  json.array! workflow_inputs do |input|
         
     | 
| 
      
 10 
     | 
    
         
            +
                    json.name input[:name]
         
     | 
| 
      
 11 
     | 
    
         
            +
                    json.value input[:example]
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,16 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            json.partial! "info", :run => @run
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            json. 
     | 
| 
      
 3 
     | 
    
         
            +
            json.status_message @run.status_message
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              json. 
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                json.depth output.depth
         
     | 
| 
       9 
     | 
    
         
            -
                json.type output.metadata[:type]
         
     | 
| 
       10 
     | 
    
         
            -
                json.size output.metadata[:size]
         
     | 
| 
       11 
     | 
    
         
            -
                json.uri run_path(@run) + "/output/#{output.name}"
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
      
 5 
     | 
    
         
            +
            json.inputs @run.inputs do |input|
         
     | 
| 
      
 6 
     | 
    
         
            +
              json.partial! "port", :port => input
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
       13 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            json.outputs @run.outputs do |output|
         
     | 
| 
      
 10 
     | 
    
         
            +
              json.partial! "port", :port => output
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            if @run.outputs.size > 0
         
     | 
| 
       14 
14 
     | 
    
         
             
              json.outputs_zip @run.results.url
         
     | 
| 
       15 
15 
     | 
    
         
             
            end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -22,5 +22,7 @@ unless @interaction.nil? 
     | 
|
| 
       22 
22 
     | 
    
         
             
              json.interaction do
         
     | 
| 
       23 
23 
     | 
    
         
             
                json.serial @interaction.serial
         
     | 
| 
       24 
24 
     | 
    
         
             
                json.uri interaction_redirect(@interaction)
         
     | 
| 
      
 25 
     | 
    
         
            +
                json.data @interaction.data
         
     | 
| 
      
 26 
     | 
    
         
            +
                json.reply_uri "#{run_url(@run)}/interaction/#{@interaction.serial}"
         
     | 
| 
       25 
27 
     | 
    
         
             
              end
         
     | 
| 
       26 
28 
     | 
    
         
             
            end
         
     | 
| 
         @@ -126,11 +126,18 @@ module TavernaPlayer 
     | 
|
| 
       126 
126 
     | 
    
         
             
                    # POST /runs
         
     | 
| 
       127 
127 
     | 
    
         
             
                    def create
         
     | 
| 
       128 
128 
     | 
    
         
             
                      @run = Run.new(params[:run])
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                      # Set workflow, just in case the create fails and needs to redirect
         
     | 
| 
      
 131 
     | 
    
         
            +
                      # back to the form
         
     | 
| 
      
 132 
     | 
    
         
            +
                      @workflow = @run.workflow
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
       129 
134 
     | 
    
         
             
                      if @run.save
         
     | 
| 
       130 
135 
     | 
    
         
             
                        flash[:notice] = "Run was successfully created."
         
     | 
| 
      
 136 
     | 
    
         
            +
                        respond_with(@run, :status => :created, :location => @run)
         
     | 
| 
      
 137 
     | 
    
         
            +
                      else
         
     | 
| 
      
 138 
     | 
    
         
            +
                        flash[:alert] = "Run was not successfully created."
         
     | 
| 
      
 139 
     | 
    
         
            +
                        respond_with(@run)
         
     | 
| 
       131 
140 
     | 
    
         
             
                      end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                      respond_with(@run, :status => :created, :location => @run)
         
     | 
| 
       134 
141 
     | 
    
         
             
                    end
         
     | 
| 
       135 
142 
     | 
    
         | 
| 
       136 
143 
     | 
    
         
             
                    # PUT /runs/1
         
     | 
| 
         @@ -146,7 +153,7 @@ module TavernaPlayer 
     | 
|
| 
       146 
153 
     | 
    
         
             
                        flash[:notice] = "Run was deleted."
         
     | 
| 
       147 
154 
     | 
    
         
             
                        respond_with(@run)
         
     | 
| 
       148 
155 
     | 
    
         
             
                      else
         
     | 
| 
       149 
     | 
    
         
            -
                        flash[: 
     | 
| 
      
 156 
     | 
    
         
            +
                        flash[:alert] = "Run must be cancelled before deletion."
         
     | 
| 
       150 
157 
     | 
    
         
             
                        respond_with(@run, :nothing => true, :status => :forbidden) do |format|
         
     | 
| 
       151 
158 
     | 
    
         
             
                          format.html { redirect_to :back }
         
     | 
| 
       152 
159 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #------------------------------------------------------------------------------
         
     | 
| 
      
 2 
     | 
    
         
            +
            # Copyright (c) 2014 The University of Manchester, UK.
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            # BSD Licenced. See LICENCE.rdoc for details.
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            # Taverna Player was developed in the BioVeL project, funded by the European
         
     | 
| 
      
 7 
     | 
    
         
            +
            # Commission 7th Framework Programme (FP7), through grant agreement
         
     | 
| 
      
 8 
     | 
    
         
            +
            # number 283359.
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            # Author: Robert Haines
         
     | 
| 
      
 11 
     | 
    
         
            +
            #------------------------------------------------------------------------------
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # We need to override the default Paperclip spoofing detector because it does
         
     | 
| 
      
 14 
     | 
    
         
            +
            # not allow us to have arbitrary file extensions on files.
         
     | 
| 
      
 15 
     | 
    
         
            +
            #
         
     | 
| 
      
 16 
     | 
    
         
            +
            # See https://github.com/thoughtbot/paperclip/issues/1470 and many others.
         
     | 
| 
      
 17 
     | 
    
         
            +
            module Paperclip
         
     | 
| 
      
 18 
     | 
    
         
            +
              class MediaTypeSpoofDetector
         
     | 
| 
      
 19 
     | 
    
         
            +
                alias :original_spoofed? :spoofed?
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def spoofed?
         
     | 
| 
      
 22 
     | 
    
         
            +
                  original_spoofed? ? !(calculated_content_type == "text/plain") : false
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #------------------------------------------------------------------------------
         
     | 
| 
       2 
     | 
    
         
            -
            # Copyright (c) 2013 The University of Manchester, UK.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # Copyright (c) 2013, 2014 The University of Manchester, UK.
         
     | 
| 
       3 
3 
     | 
    
         
             
            #
         
     | 
| 
       4 
4 
     | 
    
         
             
            # BSD Licenced. See LICENCE.rdoc for details.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
         @@ -11,5 +11,5 @@ 
     | 
|
| 
       11 
11 
     | 
    
         
             
            #------------------------------------------------------------------------------
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            module TavernaPlayer
         
     | 
| 
       14 
     | 
    
         
            -
              VERSION = "0. 
     | 
| 
      
 14 
     | 
    
         
            +
              VERSION = "0.7.0"
         
     | 
| 
       15 
15 
     | 
    
         
             
            end
         
     | 
| 
         @@ -25,6 +25,13 @@ module TavernaPlayer 
     | 
|
| 
       25 
25 
     | 
    
         
             
                def initialize(run, workflow_file = nil)
         
     | 
| 
       26 
26 
     | 
    
         
             
                  @run = run
         
     | 
| 
       27 
27 
     | 
    
         
             
                  @workflow = workflow_file || TavernaPlayer.workflow_proxy.file(@run.workflow)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  @server = "Run not yet initialized"
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                # Return the server address that this worker is using. Used mainly for
         
     | 
| 
      
 32 
     | 
    
         
            +
                # testing.
         
     | 
| 
      
 33 
     | 
    
         
            +
                def server
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @server.to_s
         
     | 
| 
       28 
35 
     | 
    
         
             
                end
         
     | 
| 
       29 
36 
     | 
    
         | 
| 
       30 
37 
     | 
    
         
             
                # This tells delayed_job to only try and complete each run once.
         
     | 
| 
         @@ -37,13 +44,12 @@ module TavernaPlayer 
     | 
|
| 
       37 
44 
     | 
    
         | 
| 
       38 
45 
     | 
    
         
             
                  status_message("connect")
         
     | 
| 
       39 
46 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                  credentials =  
     | 
| 
       42 
     | 
    
         
            -
                    TavernaPlayer.server_password)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  @server = URI.parse(ENV["TAVERNA_URI"] || TavernaPlayer.server_address)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  credentials = server_credentials
         
     | 
| 
       43 
49 
     | 
    
         
             
                  conn_params = TavernaPlayer.server_connection
         
     | 
| 
       44 
50 
     | 
    
         | 
| 
       45 
51 
     | 
    
         
             
                  begin
         
     | 
| 
       46 
     | 
    
         
            -
                    server = T2Server::Server.new( 
     | 
| 
      
 52 
     | 
    
         
            +
                    server = T2Server::Server.new(@server, conn_params)
         
     | 
| 
       47 
53 
     | 
    
         
             
                    wkf = File.read(@workflow)
         
     | 
| 
       48 
54 
     | 
    
         | 
| 
       49 
55 
     | 
    
         
             
                    # Try and create the run bearing in mind that the server might be at
         
     | 
| 
         @@ -199,6 +205,20 @@ module TavernaPlayer 
     | 
|
| 
       199 
205 
     | 
    
         | 
| 
       200 
206 
     | 
    
         
             
                private
         
     | 
| 
       201 
207 
     | 
    
         | 
| 
      
 208 
     | 
    
         
            +
                # Get the credentials for the server
         
     | 
| 
      
 209 
     | 
    
         
            +
                def server_credentials
         
     | 
| 
      
 210 
     | 
    
         
            +
                  creds = ENV["TAVERNA_CREDENTIALS"]
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
                  if creds.nil?
         
     | 
| 
      
 213 
     | 
    
         
            +
                    user = TavernaPlayer.server_username
         
     | 
| 
      
 214 
     | 
    
         
            +
                    pass = TavernaPlayer.server_password
         
     | 
| 
      
 215 
     | 
    
         
            +
                  else
         
     | 
| 
      
 216 
     | 
    
         
            +
                    user, pass = creds.split(':')
         
     | 
| 
      
 217 
     | 
    
         
            +
                  end
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
                  T2Server::HttpBasic.new(user, pass)
         
     | 
| 
      
 220 
     | 
    
         
            +
                end
         
     | 
| 
      
 221 
     | 
    
         
            +
             
     | 
| 
       202 
222 
     | 
    
         
             
                # Run the specified callback and return false on error so that we know to
         
     | 
| 
       203 
223 
     | 
    
         
             
                # return out of the worker code completely.
         
     | 
| 
       204 
224 
     | 
    
         
             
                def run_callback(cb, message)
         
     | 
| 
         @@ -220,9 +240,12 @@ module TavernaPlayer 
     | 
|
| 
       220 
240 
     | 
    
         
             
                  Dir.mktmpdir(run.id, Rails.root.join("tmp")) do |tmp_dir|
         
     | 
| 
       221 
241 
     | 
    
         
             
                    tmp_file_name = File.join(tmp_dir, "log.txt")
         
     | 
| 
       222 
242 
     | 
    
         
             
                    begin
         
     | 
| 
       223 
     | 
    
         
            -
                       
     | 
| 
       224 
     | 
    
         
            -
                       
     | 
| 
       225 
     | 
    
         
            -
                       
     | 
| 
      
 243 
     | 
    
         
            +
                      # Only save the log file if it's not empty so as not to confuse
         
     | 
| 
      
 244 
     | 
    
         
            +
                      # Paperclip
         
     | 
| 
      
 245 
     | 
    
         
            +
                      unless run.log(tmp_file_name) == 0
         
     | 
| 
      
 246 
     | 
    
         
            +
                        @run.log = File.new(tmp_file_name)
         
     | 
| 
      
 247 
     | 
    
         
            +
                        @run.save
         
     | 
| 
      
 248 
     | 
    
         
            +
                      end
         
     | 
| 
       226 
249 
     | 
    
         
             
                    rescue T2Server::AttributeNotFoundError
         
     | 
| 
       227 
250 
     | 
    
         
             
                      # We don't care if there's no log but we do want to catch the error!
         
     | 
| 
       228 
251 
     | 
    
         
             
                    end
         
     | 
    
        data/taverna_player.gemspec
    CHANGED
    
    | 
         @@ -25,7 +25,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       25 
25 
     | 
    
         
             
                "Workflows using Taverna Server. Taverna Player surfaces a workflow in "\
         
     | 
| 
       26 
26 
     | 
    
         
             
                "three ways: As a Web interface in the browser; As an embeddable widget "\
         
     | 
| 
       27 
27 
     | 
    
         
             
                "to be included in any other Web page; As a REST-based Web Service. All "\
         
     | 
| 
       28 
     | 
    
         
            -
                "three modes provide functionality to fully configure a workflow 
     | 
| 
      
 28 
     | 
    
         
            +
                "three modes provide functionality to fully configure a workflow's "\
         
     | 
| 
       29 
29 
     | 
    
         
             
                "inputs; run the workflow on a Taverna Server; collect workflow outputs, "\
         
     | 
| 
       30 
30 
     | 
    
         
             
                "logs and messages; and present the results in an appropriate manner."
         
     | 
| 
       31 
31 
     | 
    
         
             
              s.license     = "BSD"
         
     | 
| 
         @@ -36,7 +36,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       36 
36 
     | 
    
         
             
              s.add_dependency "rails", "~> 3.2.12"
         
     | 
| 
       37 
37 
     | 
    
         
             
              s.add_dependency "jquery-rails", "~> 3.0"
         
     | 
| 
       38 
38 
     | 
    
         
             
              s.add_dependency "paperclip", "~> 4.1"
         
     | 
| 
       39 
     | 
    
         
            -
              s.add_dependency "t2-server", "~> 1. 
     | 
| 
      
 39 
     | 
    
         
            +
              s.add_dependency "t2-server", "~> 1.1"
         
     | 
| 
       40 
40 
     | 
    
         
             
              s.add_dependency "delayed_job_active_record", "~> 4.0"
         
     | 
| 
       41 
41 
     | 
    
         
             
              s.add_dependency "daemons", "~> 1.1.9"
         
     | 
| 
       42 
42 
     | 
    
         
             
              s.add_dependency "rubyzip", "~> 0.9.9"
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <%
         
     | 
| 
       2 
     | 
    
         
            -
              # Copyright (c) 2013 The University of Manchester, UK.
         
     | 
| 
      
 2 
     | 
    
         
            +
              # Copyright (c) 2013, 2014 The University of Manchester, UK.
         
     | 
| 
       3 
3 
     | 
    
         
             
              #
         
     | 
| 
       4 
4 
     | 
    
         
             
              # BSD Licenced. See LICENCE.rdoc for details.
         
     | 
| 
       5 
5 
     | 
    
         
             
              #
         
     | 
| 
         @@ -33,6 +33,7 @@ 
     | 
|
| 
       33 
33 
     | 
    
         
             
            	</p>
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
            	<p id="notice"><%= notice %></p>
         
     | 
| 
      
 36 
     | 
    
         
            +
            	<p id="alert"><%= alert %></p>
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
       37 
38 
     | 
    
         
             
            	<%= yield %>
         
     | 
| 
       38 
39 
     | 
    
         | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            This is a plain text file with a non-standard extension!
         
     | 
| 
         @@ -161,6 +161,15 @@ module TavernaPlayer 
     | 
|
| 
       161 
161 
     | 
    
         
             
                    "Did not render with the correct layout"
         
     | 
| 
       162 
162 
     | 
    
         
             
                end
         
     | 
| 
       163 
163 
     | 
    
         | 
| 
      
 164 
     | 
    
         
            +
                test "should fail to create run via browser" do
         
     | 
| 
      
 165 
     | 
    
         
            +
                  assert_no_difference("Run.count") do
         
     | 
| 
      
 166 
     | 
    
         
            +
                    post :create, :run => { :workflow_id => @workflow.id, :name => nil }
         
     | 
| 
      
 167 
     | 
    
         
            +
                  end
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                  assert_equal "Run was not successfully created.", flash[:alert],
         
     | 
| 
      
 170 
     | 
    
         
            +
                    "Incorrect or missing flash notice"
         
     | 
| 
      
 171 
     | 
    
         
            +
                end
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
       164 
173 
     | 
    
         
             
                test "should create run via browser" do
         
     | 
| 
       165 
174 
     | 
    
         
             
                  assert_difference("Run.count") do
         
     | 
| 
       166 
175 
     | 
    
         
             
                    post :create, :run => { :workflow_id => @workflow.id }
         
     | 
| 
         @@ -244,7 +253,7 @@ module TavernaPlayer 
     | 
|
| 
       244 
253 
     | 
    
         
             
                      delete :destroy, :id => @run1, :use_route => :taverna_player
         
     | 
| 
       245 
254 
     | 
    
         
             
                  end
         
     | 
| 
       246 
255 
     | 
    
         | 
| 
       247 
     | 
    
         
            -
                  assert_equal "Run must be cancelled before deletion.", flash[: 
     | 
| 
      
 256 
     | 
    
         
            +
                  assert_equal "Run must be cancelled before deletion.", flash[:alert],
         
     | 
| 
       248 
257 
     | 
    
         
             
                    "Incorrect or missing flash notice"
         
     | 
| 
       249 
258 
     | 
    
         
             
                  assert_response :redirect, "Response was not a redirect"
         
     | 
| 
       250 
259 
     | 
    
         
             
                  assert_redirected_to runs_path, "Did not redirect correctly"
         
     | 
| 
         @@ -256,7 +265,7 @@ module TavernaPlayer 
     | 
|
| 
       256 
265 
     | 
    
         
             
                      delete :destroy, :id => @run1, :format => :json
         
     | 
| 
       257 
266 
     | 
    
         
             
                  end
         
     | 
| 
       258 
267 
     | 
    
         | 
| 
       259 
     | 
    
         
            -
                  assert_equal "Run must be cancelled before deletion.", flash[: 
     | 
| 
      
 268 
     | 
    
         
            +
                  assert_equal "Run must be cancelled before deletion.", flash[:alert],
         
     | 
| 
       260 
269 
     | 
    
         
             
                    "Incorrect or missing flash notice"
         
     | 
| 
       261 
270 
     | 
    
         
             
                  assert_response :forbidden, "Response was not forbidden"
         
     | 
| 
       262 
271 
     | 
    
         
             
                end
         
     | 
| 
         @@ -478,5 +478,23 @@ module TavernaPlayer 
     | 
|
| 
       478 
478 
     | 
    
         
             
                    "Incorrect filename generated"
         
     | 
| 
       479 
479 
     | 
    
         
             
                  refute @port7.filename.ends_with?(".zip"), "Filename has 'zip' suffix"
         
     | 
| 
       480 
480 
     | 
    
         
             
                end
         
     | 
| 
      
 481 
     | 
    
         
            +
             
     | 
| 
      
 482 
     | 
    
         
            +
                test "non-standard extensions for plain text files on input ports" do
         
     | 
| 
      
 483 
     | 
    
         
            +
                  file = fixture_file_upload "/files/plain-text.bad-extension"
         
     | 
| 
      
 484 
     | 
    
         
            +
                  assert_difference("RunPort::Input.count", 1, "Port was not created") do
         
     | 
| 
      
 485 
     | 
    
         
            +
                    port = RunPort::Input.create(:name => "test_port", :file => file)
         
     | 
| 
      
 486 
     | 
    
         
            +
                    assert port.valid?, "Port is invalid"
         
     | 
| 
      
 487 
     | 
    
         
            +
                    refute port.file.blank?, "File should be present"
         
     | 
| 
      
 488 
     | 
    
         
            +
                  end
         
     | 
| 
      
 489 
     | 
    
         
            +
                end
         
     | 
| 
      
 490 
     | 
    
         
            +
             
     | 
| 
      
 491 
     | 
    
         
            +
                test "non-standard extensions for plain text files on output ports" do
         
     | 
| 
      
 492 
     | 
    
         
            +
                  file = fixture_file_upload "/files/plain-text.bad-extension"
         
     | 
| 
      
 493 
     | 
    
         
            +
                  assert_difference("RunPort::Output.count", 1, "Port was not created") do
         
     | 
| 
      
 494 
     | 
    
         
            +
                    port = RunPort::Output.create(:name => "test_port", :file => file)
         
     | 
| 
      
 495 
     | 
    
         
            +
                    assert port.valid?, "Port is invalid"
         
     | 
| 
      
 496 
     | 
    
         
            +
                    refute port.file.blank?, "File should be present"
         
     | 
| 
      
 497 
     | 
    
         
            +
                  end
         
     | 
| 
      
 498 
     | 
    
         
            +
                end
         
     | 
| 
       481 
499 
     | 
    
         
             
              end
         
     | 
| 
       482 
500 
     | 
    
         
             
            end
         
     | 
| 
         @@ -16,12 +16,14 @@ require 'test_helper' 
     | 
|
| 
       16 
16 
     | 
    
         
             
            class WorkerTest < ActiveSupport::TestCase
         
     | 
| 
       17 
17 
     | 
    
         
             
              include FlexMock::TestCase
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              SERVER_ADDRESS = "http://localhost:1111/taverna"
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
       19 
21 
     | 
    
         
             
              setup do
         
     | 
| 
       20 
22 
     | 
    
         
             
                @noop_callback = Proc.new { }
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
       22 
24 
     | 
    
         
             
                # Taverna Server config that we need to set here for Travis, etc.
         
     | 
| 
       23 
25 
     | 
    
         
             
                TavernaPlayer.setup do |config|
         
     | 
| 
       24 
     | 
    
         
            -
                  config.server_address =  
     | 
| 
      
 26 
     | 
    
         
            +
                  config.server_address = SERVER_ADDRESS
         
     | 
| 
       25 
27 
     | 
    
         
             
                  config.server_username = "taverna"
         
     | 
| 
       26 
28 
     | 
    
         
             
                  config.server_password = "taverna"
         
     | 
| 
       27 
29 
     | 
    
         
             
                  config.server_poll_interval = 0
         
     | 
| 
         @@ -35,7 +37,6 @@ class WorkerTest < ActiveSupport::TestCase 
     | 
|
| 
       35 
37 
     | 
    
         
             
                # Stuff we can't test yet in TavernaPlayer::Worker.
         
     | 
| 
       36 
38 
     | 
    
         
             
                flexmock(TavernaPlayer::Worker).new_instances do |w|
         
     | 
| 
       37 
39 
     | 
    
         
             
                  w.should_receive(:download_outputs).and_return_undefined
         
     | 
| 
       38 
     | 
    
         
            -
                  w.should_receive(:download_log).and_return_undefined
         
     | 
| 
       39 
40 
     | 
    
         
             
                  w.should_receive(:process_outputs).and_return([])
         
     | 
| 
       40 
41 
     | 
    
         
             
                end
         
     | 
| 
       41 
42 
     | 
    
         | 
| 
         @@ -47,6 +48,41 @@ class WorkerTest < ActiveSupport::TestCase 
     | 
|
| 
       47 
48 
     | 
    
         
             
                assert_equal 1, @worker.max_attempts, "Max attempts was not 1."
         
     | 
| 
       48 
49 
     | 
    
         
             
              end
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
      
 51 
     | 
    
         
            +
              test "server address not set to a uri initially" do
         
     | 
| 
      
 52 
     | 
    
         
            +
                assert_raise(URI::InvalidURIError) do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  URI.parse(@worker.server)
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              test "server address and creds from config" do
         
     | 
| 
      
 58 
     | 
    
         
            +
                # Stub the creation of a run on a Taverna Server so it fails.
         
     | 
| 
      
 59 
     | 
    
         
            +
                flexmock(T2Server::Server).new_instances do |s|
         
     | 
| 
      
 60 
     | 
    
         
            +
                  s.should_receive(:initialize_run).once.
         
     | 
| 
      
 61 
     | 
    
         
            +
                    and_raise(RuntimeError)
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                @worker.perform
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                assert_equal SERVER_ADDRESS, @worker.server.to_s,
         
     | 
| 
      
 67 
     | 
    
         
            +
                  "Server address not read from config."
         
     | 
| 
      
 68 
     | 
    
         
            +
              end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
              test "server address and creds from env" do
         
     | 
| 
      
 71 
     | 
    
         
            +
                ENV["TAVERNA_URI"] = "https://localhost:8080/taverna"
         
     | 
| 
      
 72 
     | 
    
         
            +
                ENV["TAVERNA_CREDENTIALS"] = "taverna:taverna"
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                # Stub the creation of a run on a Taverna Server so it fails.
         
     | 
| 
      
 75 
     | 
    
         
            +
                flexmock(T2Server::Server).new_instances do |s|
         
     | 
| 
      
 76 
     | 
    
         
            +
                  s.should_receive(:initialize_run).once.
         
     | 
| 
      
 77 
     | 
    
         
            +
                    and_raise(RuntimeError)
         
     | 
| 
      
 78 
     | 
    
         
            +
                end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                @worker.perform
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                assert_equal ENV["TAVERNA_URI"], @worker.server.to_s,
         
     | 
| 
      
 83 
     | 
    
         
            +
                  "Server address not read from env."
         
     | 
| 
      
 84 
     | 
    
         
            +
              end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
       50 
86 
     | 
    
         
             
              test "run a workflow" do
         
     | 
| 
       51 
87 
     | 
    
         
             
                # Stub the creation of a run on a Taverna Server with a failure first.
         
     | 
| 
       52 
88 
     | 
    
         
             
                flexmock(T2Server::Server).new_instances do |s|
         
     | 
| 
         @@ -65,6 +101,7 @@ class WorkerTest < ActiveSupport::TestCase 
     | 
|
| 
       65 
101 
     | 
    
         
             
                  r.should_receive(:start_time).and_return(Time.now)
         
     | 
| 
       66 
102 
     | 
    
         
             
                  r.should_receive(:notifications).and_return([])
         
     | 
| 
       67 
103 
     | 
    
         
             
                  r.should_receive(:finish_time).and_return(Time.now)
         
     | 
| 
      
 104 
     | 
    
         
            +
                  r.should_receive(:log).once.and_return(0)
         
     | 
| 
       68 
105 
     | 
    
         
             
                  r.should_receive(:delete).and_return_undefined
         
     | 
| 
       69 
106 
     | 
    
         
             
                end
         
     | 
| 
       70 
107 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,20 +1,18 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: taverna-player
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
       5 
     | 
    
         
            -
              prerelease: 
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.7.0
         
     | 
| 
       6 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       8 
7 
     | 
    
         
             
            - Robert Haines
         
     | 
| 
       9 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-04-28 00:00:00.000000000 Z
         
     | 
| 
       13 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
14 
     | 
    
         
             
              name: rails
         
     | 
| 
       16 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       17 
     | 
    
         
            -
                none: false
         
     | 
| 
       18 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
17 
     | 
    
         
             
                - - ~>
         
     | 
| 
       20 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -22,7 +20,6 @@ dependencies: 
     | 
|
| 
       22 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       25 
     | 
    
         
            -
                none: false
         
     | 
| 
       26 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       27 
24 
     | 
    
         
             
                - - ~>
         
     | 
| 
       28 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -30,7 +27,6 @@ dependencies: 
     | 
|
| 
       30 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       31 
28 
     | 
    
         
             
              name: jquery-rails
         
     | 
| 
       32 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       33 
     | 
    
         
            -
                none: false
         
     | 
| 
       34 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       35 
31 
     | 
    
         
             
                - - ~>
         
     | 
| 
       36 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -38,7 +34,6 @@ dependencies: 
     | 
|
| 
       38 
34 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       39 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       40 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       41 
     | 
    
         
            -
                none: false
         
     | 
| 
       42 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       43 
38 
     | 
    
         
             
                - - ~>
         
     | 
| 
       44 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -46,7 +41,6 @@ dependencies: 
     | 
|
| 
       46 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       47 
42 
     | 
    
         
             
              name: paperclip
         
     | 
| 
       48 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       49 
     | 
    
         
            -
                none: false
         
     | 
| 
       50 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       51 
45 
     | 
    
         
             
                - - ~>
         
     | 
| 
       52 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -54,7 +48,6 @@ dependencies: 
     | 
|
| 
       54 
48 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       55 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       56 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       57 
     | 
    
         
            -
                none: false
         
     | 
| 
       58 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
52 
     | 
    
         
             
                - - ~>
         
     | 
| 
       60 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -62,23 +55,20 @@ dependencies: 
     | 
|
| 
       62 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       63 
56 
     | 
    
         
             
              name: t2-server
         
     | 
| 
       64 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
     | 
    
         
            -
                none: false
         
     | 
| 
       66 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       67 
59 
     | 
    
         
             
                - - ~>
         
     | 
| 
       68 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       69 
     | 
    
         
            -
                    version: 1. 
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
       70 
62 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       71 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       72 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       73 
     | 
    
         
            -
                none: false
         
     | 
| 
       74 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       75 
66 
     | 
    
         
             
                - - ~>
         
     | 
| 
       76 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       77 
     | 
    
         
            -
                    version: 1. 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
       78 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       79 
70 
     | 
    
         
             
              name: delayed_job_active_record
         
     | 
| 
       80 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       81 
     | 
    
         
            -
                none: false
         
     | 
| 
       82 
72 
     | 
    
         
             
                requirements:
         
     | 
| 
       83 
73 
     | 
    
         
             
                - - ~>
         
     | 
| 
       84 
74 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -86,7 +76,6 @@ dependencies: 
     | 
|
| 
       86 
76 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       87 
77 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       88 
78 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       89 
     | 
    
         
            -
                none: false
         
     | 
| 
       90 
79 
     | 
    
         
             
                requirements:
         
     | 
| 
       91 
80 
     | 
    
         
             
                - - ~>
         
     | 
| 
       92 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -94,7 +83,6 @@ dependencies: 
     | 
|
| 
       94 
83 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       95 
84 
     | 
    
         
             
              name: daemons
         
     | 
| 
       96 
85 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       97 
     | 
    
         
            -
                none: false
         
     | 
| 
       98 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       99 
87 
     | 
    
         
             
                - - ~>
         
     | 
| 
       100 
88 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -102,7 +90,6 @@ dependencies: 
     | 
|
| 
       102 
90 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       103 
91 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       104 
92 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       105 
     | 
    
         
            -
                none: false
         
     | 
| 
       106 
93 
     | 
    
         
             
                requirements:
         
     | 
| 
       107 
94 
     | 
    
         
             
                - - ~>
         
     | 
| 
       108 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -110,7 +97,6 @@ dependencies: 
     | 
|
| 
       110 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       111 
98 
     | 
    
         
             
              name: rubyzip
         
     | 
| 
       112 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       113 
     | 
    
         
            -
                none: false
         
     | 
| 
       114 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
101 
     | 
    
         
             
                - - ~>
         
     | 
| 
       116 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -118,7 +104,6 @@ dependencies: 
     | 
|
| 
       118 
104 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       119 
105 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       120 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
     | 
    
         
            -
                none: false
         
     | 
| 
       122 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       123 
108 
     | 
    
         
             
                - - ~>
         
     | 
| 
       124 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -126,7 +111,6 @@ dependencies: 
     | 
|
| 
       126 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       127 
112 
     | 
    
         
             
              name: coderay
         
     | 
| 
       128 
113 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       129 
     | 
    
         
            -
                none: false
         
     | 
| 
       130 
114 
     | 
    
         
             
                requirements:
         
     | 
| 
       131 
115 
     | 
    
         
             
                - - ~>
         
     | 
| 
       132 
116 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -134,7 +118,6 @@ dependencies: 
     | 
|
| 
       134 
118 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       135 
119 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       136 
120 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       137 
     | 
    
         
            -
                none: false
         
     | 
| 
       138 
121 
     | 
    
         
             
                requirements:
         
     | 
| 
       139 
122 
     | 
    
         
             
                - - ~>
         
     | 
| 
       140 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -142,7 +125,6 @@ dependencies: 
     | 
|
| 
       142 
125 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       143 
126 
     | 
    
         
             
              name: rails_autolink
         
     | 
| 
       144 
127 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       145 
     | 
    
         
            -
                none: false
         
     | 
| 
       146 
128 
     | 
    
         
             
                requirements:
         
     | 
| 
       147 
129 
     | 
    
         
             
                - - ~>
         
     | 
| 
       148 
130 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -150,7 +132,6 @@ dependencies: 
     | 
|
| 
       150 
132 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       151 
133 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       152 
134 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       153 
     | 
    
         
            -
                none: false
         
     | 
| 
       154 
135 
     | 
    
         
             
                requirements:
         
     | 
| 
       155 
136 
     | 
    
         
             
                - - ~>
         
     | 
| 
       156 
137 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -158,7 +139,6 @@ dependencies: 
     | 
|
| 
       158 
139 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       159 
140 
     | 
    
         
             
              name: require_all
         
     | 
| 
       160 
141 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       161 
     | 
    
         
            -
                none: false
         
     | 
| 
       162 
142 
     | 
    
         
             
                requirements:
         
     | 
| 
       163 
143 
     | 
    
         
             
                - - ~>
         
     | 
| 
       164 
144 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -166,7 +146,6 @@ dependencies: 
     | 
|
| 
       166 
146 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       167 
147 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       168 
148 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       169 
     | 
    
         
            -
                none: false
         
     | 
| 
       170 
149 
     | 
    
         
             
                requirements:
         
     | 
| 
       171 
150 
     | 
    
         
             
                - - ~>
         
     | 
| 
       172 
151 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -174,7 +153,6 @@ dependencies: 
     | 
|
| 
       174 
153 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       175 
154 
     | 
    
         
             
              name: jbuilder
         
     | 
| 
       176 
155 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       177 
     | 
    
         
            -
                none: false
         
     | 
| 
       178 
156 
     | 
    
         
             
                requirements:
         
     | 
| 
       179 
157 
     | 
    
         
             
                - - ~>
         
     | 
| 
       180 
158 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -182,7 +160,6 @@ dependencies: 
     | 
|
| 
       182 
160 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       183 
161 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       184 
162 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       185 
     | 
    
         
            -
                none: false
         
     | 
| 
       186 
163 
     | 
    
         
             
                requirements:
         
     | 
| 
       187 
164 
     | 
    
         
             
                - - ~>
         
     | 
| 
       188 
165 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -190,7 +167,6 @@ dependencies: 
     | 
|
| 
       190 
167 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       191 
168 
     | 
    
         
             
              name: pmrpc-rails
         
     | 
| 
       192 
169 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       193 
     | 
    
         
            -
                none: false
         
     | 
| 
       194 
170 
     | 
    
         
             
                requirements:
         
     | 
| 
       195 
171 
     | 
    
         
             
                - - ~>
         
     | 
| 
       196 
172 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -198,7 +174,6 @@ dependencies: 
     | 
|
| 
       198 
174 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       199 
175 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       200 
176 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       201 
     | 
    
         
            -
                none: false
         
     | 
| 
       202 
177 
     | 
    
         
             
                requirements:
         
     | 
| 
       203 
178 
     | 
    
         
             
                - - ~>
         
     | 
| 
       204 
179 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -206,7 +181,6 @@ dependencies: 
     | 
|
| 
       206 
181 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       207 
182 
     | 
    
         
             
              name: sqlite3
         
     | 
| 
       208 
183 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       209 
     | 
    
         
            -
                none: false
         
     | 
| 
       210 
184 
     | 
    
         
             
                requirements:
         
     | 
| 
       211 
185 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       212 
186 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -214,7 +188,6 @@ dependencies: 
     | 
|
| 
       214 
188 
     | 
    
         
             
              type: :development
         
     | 
| 
       215 
189 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       216 
190 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       217 
     | 
    
         
            -
                none: false
         
     | 
| 
       218 
191 
     | 
    
         
             
                requirements:
         
     | 
| 
       219 
192 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       220 
193 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -222,7 +195,6 @@ dependencies: 
     | 
|
| 
       222 
195 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       223 
196 
     | 
    
         
             
              name: coveralls
         
     | 
| 
       224 
197 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       225 
     | 
    
         
            -
                none: false
         
     | 
| 
       226 
198 
     | 
    
         
             
                requirements:
         
     | 
| 
       227 
199 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       228 
200 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -230,7 +202,6 @@ dependencies: 
     | 
|
| 
       230 
202 
     | 
    
         
             
              type: :development
         
     | 
| 
       231 
203 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       232 
204 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       233 
     | 
    
         
            -
                none: false
         
     | 
| 
       234 
205 
     | 
    
         
             
                requirements:
         
     | 
| 
       235 
206 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
       236 
207 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -238,7 +209,6 @@ dependencies: 
     | 
|
| 
       238 
209 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       239 
210 
     | 
    
         
             
              name: flexmock
         
     | 
| 
       240 
211 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       241 
     | 
    
         
            -
                none: false
         
     | 
| 
       242 
212 
     | 
    
         
             
                requirements:
         
     | 
| 
       243 
213 
     | 
    
         
             
                - - ~>
         
     | 
| 
       244 
214 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -246,7 +216,6 @@ dependencies: 
     | 
|
| 
       246 
216 
     | 
    
         
             
              type: :development
         
     | 
| 
       247 
217 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       248 
218 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       249 
     | 
    
         
            -
                none: false
         
     | 
| 
       250 
219 
     | 
    
         
             
                requirements:
         
     | 
| 
       251 
220 
     | 
    
         
             
                - - ~>
         
     | 
| 
       252 
221 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
         @@ -255,7 +224,7 @@ description: ! 'Taverna Player is a Ruby on Rails plugin to run Taverna Workflow 
     | 
|
| 
       255 
224 
     | 
    
         
             
              using Taverna Server. Taverna Player surfaces a workflow in three ways: As a Web
         
     | 
| 
       256 
225 
     | 
    
         
             
              interface in the browser; As an embeddable widget to be included in any other Web
         
     | 
| 
       257 
226 
     | 
    
         
             
              page; As a REST-based Web Service. All three modes provide functionality to fully
         
     | 
| 
       258 
     | 
    
         
            -
              configure a workflow 
     | 
| 
      
 227 
     | 
    
         
            +
              configure a workflow''s inputs; run the workflow on a Taverna Server; collect workflow
         
     | 
| 
       259 
228 
     | 
    
         
             
              outputs, logs and messages; and present the results in an appropriate manner.'
         
     | 
| 
       260 
229 
     | 
    
         
             
            email:
         
     | 
| 
       261 
230 
     | 
    
         
             
            - support@mygrid.org.uk
         
     | 
| 
         @@ -264,6 +233,8 @@ extensions: [] 
     | 
|
| 
       264 
233 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       265 
234 
     | 
    
         
             
            files:
         
     | 
| 
       266 
235 
     | 
    
         
             
            - .gitignore
         
     | 
| 
      
 236 
     | 
    
         
            +
            - .ruby-gemset
         
     | 
| 
      
 237 
     | 
    
         
            +
            - .ruby-version
         
     | 
| 
       267 
238 
     | 
    
         
             
            - .travis.yml
         
     | 
| 
       268 
239 
     | 
    
         
             
            - CHANGES.rdoc
         
     | 
| 
       269 
240 
     | 
    
         
             
            - Gemfile
         
     | 
| 
         @@ -291,10 +262,10 @@ files: 
     | 
|
| 
       291 
262 
     | 
    
         
             
            - app/views/taverna_player/runs/_info.html.erb
         
     | 
| 
       292 
263 
     | 
    
         
             
            - app/views/taverna_player/runs/_info.json.jbuilder
         
     | 
| 
       293 
264 
     | 
    
         
             
            - app/views/taverna_player/runs/_inputs.html.erb
         
     | 
| 
       294 
     | 
    
         
            -
            - app/views/taverna_player/runs/_inputs.json.jbuilder
         
     | 
| 
       295 
265 
     | 
    
         
             
            - app/views/taverna_player/runs/_interaction.html.erb
         
     | 
| 
       296 
266 
     | 
    
         
             
            - app/views/taverna_player/runs/_outputs.html.erb
         
     | 
| 
       297 
267 
     | 
    
         
             
            - app/views/taverna_player/runs/_poll.html.erb
         
     | 
| 
      
 268 
     | 
    
         
            +
            - app/views/taverna_player/runs/_port.json.jbuilder
         
     | 
| 
       298 
269 
     | 
    
         
             
            - app/views/taverna_player/runs/create.json.jbuilder
         
     | 
| 
       299 
270 
     | 
    
         
             
            - app/views/taverna_player/runs/embedded/_button.html.erb
         
     | 
| 
       300 
271 
     | 
    
         
             
            - app/views/taverna_player/runs/embedded/_info.html.erb
         
     | 
| 
         @@ -378,6 +349,7 @@ files: 
     | 
|
| 
       378 
349 
     | 
    
         
             
            - lib/taverna_player/concerns/utils.rb
         
     | 
| 
       379 
350 
     | 
    
         
             
            - lib/taverna_player/concerns/zip.rb
         
     | 
| 
       380 
351 
     | 
    
         
             
            - lib/taverna_player/engine.rb
         
     | 
| 
      
 352 
     | 
    
         
            +
            - lib/taverna_player/extras/paperclip-spoofing-fix.rb
         
     | 
| 
       381 
353 
     | 
    
         
             
            - lib/taverna_player/model_proxy.rb
         
     | 
| 
       382 
354 
     | 
    
         
             
            - lib/taverna_player/port_renderer.rb
         
     | 
| 
       383 
355 
     | 
    
         
             
            - lib/taverna_player/render_callbacks.rb
         
     | 
| 
         @@ -463,6 +435,7 @@ files: 
     | 
|
| 
       463 
435 
     | 
    
         
             
            - test/dummy/test/functional/workflows_controller_test.rb
         
     | 
| 
       464 
436 
     | 
    
         
             
            - test/dummy/tmp/.gitkeep
         
     | 
| 
       465 
437 
     | 
    
         
             
            - test/fixtures/files/non-ascii.csv
         
     | 
| 
      
 438 
     | 
    
         
            +
            - test/fixtures/files/plain-text.bad-extension
         
     | 
| 
       466 
439 
     | 
    
         
             
            - test/fixtures/taverna_player/interactions.yml
         
     | 
| 
       467 
440 
     | 
    
         
             
            - test/fixtures/taverna_player/run_ports.yml
         
     | 
| 
       468 
441 
     | 
    
         
             
            - test/fixtures/taverna_player/runs.yml
         
     | 
| 
         @@ -488,33 +461,26 @@ files: 
     | 
|
| 
       488 
461 
     | 
    
         
             
            homepage: http://www.taverna.org.uk
         
     | 
| 
       489 
462 
     | 
    
         
             
            licenses:
         
     | 
| 
       490 
463 
     | 
    
         
             
            - BSD
         
     | 
| 
      
 464 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
       491 
465 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       492 
466 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       493 
467 
     | 
    
         
             
            require_paths:
         
     | 
| 
       494 
468 
     | 
    
         
             
            - lib
         
     | 
| 
       495 
469 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       496 
     | 
    
         
            -
              none: false
         
     | 
| 
       497 
470 
     | 
    
         
             
              requirements:
         
     | 
| 
       498 
471 
     | 
    
         
             
              - - ! '>='
         
     | 
| 
       499 
472 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       500 
473 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       501 
     | 
    
         
            -
                  segments:
         
     | 
| 
       502 
     | 
    
         
            -
                  - 0
         
     | 
| 
       503 
     | 
    
         
            -
                  hash: 94152040374779137
         
     | 
| 
       504 
474 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       505 
     | 
    
         
            -
              none: false
         
     | 
| 
       506 
475 
     | 
    
         
             
              requirements:
         
     | 
| 
       507 
476 
     | 
    
         
             
              - - ! '>='
         
     | 
| 
       508 
477 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       509 
478 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       510 
     | 
    
         
            -
                  segments:
         
     | 
| 
       511 
     | 
    
         
            -
                  - 0
         
     | 
| 
       512 
     | 
    
         
            -
                  hash: 94152040374779137
         
     | 
| 
       513 
479 
     | 
    
         
             
            requirements: []
         
     | 
| 
       514 
480 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       515 
     | 
    
         
            -
            rubygems_version:  
     | 
| 
      
 481 
     | 
    
         
            +
            rubygems_version: 2.2.2
         
     | 
| 
       516 
482 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       517 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 483 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
       518 
484 
     | 
    
         
             
            summary: Taverna Player is a rails plugin to run Taverna Workflows.
         
     | 
| 
       519 
485 
     | 
    
         
             
            test_files:
         
     | 
| 
       520 
486 
     | 
    
         
             
            - test/dummy/Rakefile
         
     | 
| 
         @@ -594,6 +560,7 @@ test_files: 
     | 
|
| 
       594 
560 
     | 
    
         
             
            - test/dummy/test/functional/workflows_controller_test.rb
         
     | 
| 
       595 
561 
     | 
    
         
             
            - test/dummy/tmp/.gitkeep
         
     | 
| 
       596 
562 
     | 
    
         
             
            - test/fixtures/files/non-ascii.csv
         
     | 
| 
      
 563 
     | 
    
         
            +
            - test/fixtures/files/plain-text.bad-extension
         
     | 
| 
       597 
564 
     | 
    
         
             
            - test/fixtures/taverna_player/interactions.yml
         
     | 
| 
       598 
565 
     | 
    
         
             
            - test/fixtures/taverna_player/run_ports.yml
         
     | 
| 
       599 
566 
     | 
    
         
             
            - test/fixtures/taverna_player/runs.yml
         
     |