taverna-player 0.1.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.
Files changed (192) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +18 -0
  3. data/LICENCE.rdoc +29 -0
  4. data/README.rdoc +663 -0
  5. data/Rakefile +65 -0
  6. data/app/assets/javascripts/taverna_player/application.js +14 -0
  7. data/app/assets/javascripts/taverna_player/runs.js +42 -0
  8. data/app/assets/stylesheets/scaffold.css +56 -0
  9. data/app/assets/stylesheets/taverna_player/application.css +13 -0
  10. data/app/assets/stylesheets/taverna_player/coderay.css +120 -0
  11. data/app/controllers/taverna_player/application_controller.rb +16 -0
  12. data/app/controllers/taverna_player/runs_controller.rb +18 -0
  13. data/app/controllers/taverna_player/service_credentials_controller.rb +18 -0
  14. data/app/helpers/taverna_player/application_helper.rb +55 -0
  15. data/app/helpers/taverna_player/runs_helper.rb +84 -0
  16. data/app/models/taverna_player/interaction.rb +25 -0
  17. data/app/models/taverna_player/run.rb +117 -0
  18. data/app/models/taverna_player/run_port.rb +148 -0
  19. data/app/models/taverna_player/service_credential.rb +56 -0
  20. data/app/views/layouts/taverna_player/embedded.html.erb +27 -0
  21. data/app/views/taverna_player/runs/_button.html.erb +19 -0
  22. data/app/views/taverna_player/runs/_info.html.erb +56 -0
  23. data/app/views/taverna_player/runs/_info.json.jbuilder +2 -0
  24. data/app/views/taverna_player/runs/_inputs.html.erb +34 -0
  25. data/app/views/taverna_player/runs/_inputs.json.jbuilder +8 -0
  26. data/app/views/taverna_player/runs/_interaction.html.erb +68 -0
  27. data/app/views/taverna_player/runs/_outputs.html.erb +41 -0
  28. data/app/views/taverna_player/runs/_poll.html.erb +27 -0
  29. data/app/views/taverna_player/runs/create.json.jbuilder +3 -0
  30. data/app/views/taverna_player/runs/embedded/_button.html.erb +19 -0
  31. data/app/views/taverna_player/runs/embedded/_info.html.erb +25 -0
  32. data/app/views/taverna_player/runs/embedded/_inputs.html.erb +32 -0
  33. data/app/views/taverna_player/runs/embedded/_outputs.html.erb +32 -0
  34. data/app/views/taverna_player/runs/embedded/new.html.erb +58 -0
  35. data/app/views/taverna_player/runs/embedded/show.html.erb +39 -0
  36. data/app/views/taverna_player/runs/embedded/show.js.erb +35 -0
  37. data/app/views/taverna_player/runs/index.html.erb +40 -0
  38. data/app/views/taverna_player/runs/index.json.jbuilder +1 -0
  39. data/app/views/taverna_player/runs/new.html.erb +56 -0
  40. data/app/views/taverna_player/runs/new.json.jbuilder +1 -0
  41. data/app/views/taverna_player/runs/show.html.erb +29 -0
  42. data/app/views/taverna_player/runs/show.js.erb +25 -0
  43. data/app/views/taverna_player/runs/show.json.jbuilder +25 -0
  44. data/app/views/taverna_player/service_credentials/_form.html.erb +53 -0
  45. data/app/views/taverna_player/service_credentials/edit.html.erb +18 -0
  46. data/app/views/taverna_player/service_credentials/index.html.erb +41 -0
  47. data/app/views/taverna_player/service_credentials/new.html.erb +17 -0
  48. data/app/views/taverna_player/service_credentials/show.html.erb +36 -0
  49. data/config/routes.rb +34 -0
  50. data/db/migrate/20130313105546_create_taverna_player_runs.rb +16 -0
  51. data/db/migrate/20130315163019_create_taverna_player_run_ports.rb +15 -0
  52. data/db/migrate/20130318170744_add_attachment_file_to_taverna_player_run_ports.rb +6 -0
  53. data/db/migrate/20130319183634_create_delayed_jobs.rb +22 -0
  54. data/db/migrate/20130320102600_add_status_message_to_taverna_player_runs.rb +5 -0
  55. data/db/migrate/20130321100110_add_depth_and_metadata_to_taverna_player_run_ports.rb +6 -0
  56. data/db/migrate/20130704095504_add_attachment_results_to_taverna_player_runs.rb +5 -0
  57. data/db/migrate/20130705142704_add_embedded_to_taverna_player_runs.rb +5 -0
  58. data/db/migrate/20130714140911_create_taverna_player_interactions.rb +13 -0
  59. data/db/migrate/20130717083653_add_proxy_to_taverna_player_runs.rb +6 -0
  60. data/db/migrate/20130717155415_add_stop_to_taverna_player_runs.rb +5 -0
  61. data/db/migrate/20130811152840_add_attachment_log_to_taverna_player_runs.rb +5 -0
  62. data/db/migrate/20130811211725_change_taverna_player_runs_state_column.rb +5 -0
  63. data/db/migrate/20130812155839_add_name_to_taverna_player_runs.rb +5 -0
  64. data/db/migrate/20130918135348_create_taverna_player_service_credentials.rb +15 -0
  65. data/db/migrate/20130919154200_add_displayed_to_taverna_player_interactions.rb +5 -0
  66. data/db/migrate/20131007153209_add_job_ref_to_taverna_player_runs.rb +13 -0
  67. data/db/migrate/20131010094537_add_reply_caching_to_taverna_player_interactions.rb +19 -0
  68. data/db/migrate/20131017141514_add_failure_message_to_taverna_player_run.rb +5 -0
  69. data/db/migrate/20131018152940_add_serial_number_to_taverna_player_interactions.rb +5 -0
  70. data/db/migrate/20131018160715_add_parent_run_id_to_taverna_player_runs.rb +5 -0
  71. data/db/migrate/20131102113933_add_page_uri_to_taverna_player_interaction.rb +5 -0
  72. data/db/migrate/20131105115218_remove_proxy_from_taverna_player_runs.rb +11 -0
  73. data/db/migrate/20131105141934_change_taverna_player_interactions_output_value_column_name.rb +5 -0
  74. data/db/migrate/20131112165520_add_user_to_taverna_player_run.rb +5 -0
  75. data/lib/generators/taverna_player/callbacks_generator.rb +25 -0
  76. data/lib/generators/taverna_player/controllers_generator.rb +30 -0
  77. data/lib/generators/taverna_player/install_generator.rb +30 -0
  78. data/lib/generators/taverna_player/job_generator.rb +26 -0
  79. data/lib/generators/taverna_player/models_generator.rb +27 -0
  80. data/lib/generators/taverna_player/renderers_generator.rb +26 -0
  81. data/lib/generators/taverna_player/views_generator.rb +27 -0
  82. data/lib/generators/templates/ReadMe.txt +118 -0
  83. data/lib/generators/templates/callbacks/render_callbacks.rb +56 -0
  84. data/lib/generators/templates/callbacks/worker_callbacks.rb +31 -0
  85. data/lib/generators/templates/controllers/runs_controller.rb +20 -0
  86. data/lib/generators/templates/controllers/service_credentials_controller.rb +20 -0
  87. data/lib/generators/templates/initializer.rb +154 -0
  88. data/lib/generators/templates/models/run.rb +20 -0
  89. data/lib/tasks/delete-cancelled-runs.rake +26 -0
  90. data/lib/tasks/delete-old-embedded-runs.rake +26 -0
  91. data/lib/taverna-player.rb +139 -0
  92. data/lib/taverna_player/concerns/controllers/runs_controller.rb +281 -0
  93. data/lib/taverna_player/concerns/controllers/service_credentials_controller.rb +89 -0
  94. data/lib/taverna_player/concerns/models/run.rb +205 -0
  95. data/lib/taverna_player/engine.rb +23 -0
  96. data/lib/taverna_player/model_proxy.rb +51 -0
  97. data/lib/taverna_player/output_renderer.rb +96 -0
  98. data/lib/taverna_player/render_callbacks.rb +41 -0
  99. data/lib/taverna_player/version.rb +15 -0
  100. data/lib/taverna_player/worker.rb +325 -0
  101. data/script/delayed_job +5 -0
  102. data/script/rails +8 -0
  103. data/taverna_player.gemspec +46 -0
  104. data/test/dummy/Rakefile +7 -0
  105. data/test/dummy/app/assets/javascripts/application.js +16 -0
  106. data/test/dummy/app/assets/stylesheets/application.css +14 -0
  107. data/test/dummy/app/controllers/application_controller.rb +15 -0
  108. data/test/dummy/app/controllers/home_controller.rb +16 -0
  109. data/test/dummy/app/controllers/taverna_player/runs_controller.rb +25 -0
  110. data/test/dummy/app/controllers/taverna_player/service_credentials_controller.rb +25 -0
  111. data/test/dummy/app/controllers/workflows_controller.rb +17 -0
  112. data/test/dummy/app/models/user.rb +15 -0
  113. data/test/dummy/app/models/workflow.rb +32 -0
  114. data/test/dummy/app/views/home/index.html.erb +18 -0
  115. data/test/dummy/app/views/layouts/application.html.erb +43 -0
  116. data/test/dummy/app/views/workflows/index.html.erb +35 -0
  117. data/test/dummy/config.ru +4 -0
  118. data/test/dummy/config/application.rb +58 -0
  119. data/test/dummy/config/boot.rb +10 -0
  120. data/test/dummy/config/database.yml +25 -0
  121. data/test/dummy/config/environment.rb +5 -0
  122. data/test/dummy/config/environments/development.rb +37 -0
  123. data/test/dummy/config/environments/production.rb +67 -0
  124. data/test/dummy/config/environments/test.rb +37 -0
  125. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  126. data/test/dummy/config/initializers/inflections.rb +15 -0
  127. data/test/dummy/config/initializers/mime_types.rb +5 -0
  128. data/test/dummy/config/initializers/secret_token.rb +7 -0
  129. data/test/dummy/config/initializers/session_store.rb +8 -0
  130. data/test/dummy/config/initializers/taverna_player.example.rb +40 -0
  131. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  132. data/test/dummy/config/locales/en.yml +5 -0
  133. data/test/dummy/config/routes.rb +22 -0
  134. data/test/dummy/db/migrate/20130314103555_create_workflows.rb +12 -0
  135. data/test/dummy/db/migrate/20130318141557_create_taverna_player_runs.taverna_player.rb +17 -0
  136. data/test/dummy/db/migrate/20130318141558_create_taverna_player_run_ports.taverna_player.rb +16 -0
  137. data/test/dummy/db/migrate/20130318173013_add_attachment_file_to_taverna_player_run_ports.taverna_player.rb +7 -0
  138. data/test/dummy/db/migrate/20130319183816_create_delayed_jobs.taverna_player.rb +23 -0
  139. data/test/dummy/db/migrate/20130320102635_add_status_message_to_taverna_player_runs.taverna_player.rb +6 -0
  140. data/test/dummy/db/migrate/20130321161859_add_depth_and_metadata_to_taverna_player_run_ports.taverna_player.rb +7 -0
  141. data/test/dummy/db/migrate/20130704100146_add_attachment_results_to_taverna_player_runs.taverna_player.rb +6 -0
  142. data/test/dummy/db/migrate/20130705142816_add_embedded_to_taverna_player_runs.taverna_player.rb +6 -0
  143. data/test/dummy/db/migrate/20130714142144_create_taverna_player_interactions.taverna_player.rb +14 -0
  144. data/test/dummy/db/migrate/20130717084809_add_proxy_to_taverna_player_runs.taverna_player.rb +7 -0
  145. data/test/dummy/db/migrate/20130718102707_add_stop_to_taverna_player_runs.taverna_player.rb +6 -0
  146. data/test/dummy/db/migrate/20130811204449_add_attachment_log_to_taverna_player_runs.taverna_player.rb +6 -0
  147. data/test/dummy/db/migrate/20130811212709_change_taverna_player_runs_state_column.taverna_player.rb +6 -0
  148. data/test/dummy/db/migrate/20130812161152_add_name_to_taverna_player_runs.taverna_player.rb +6 -0
  149. data/test/dummy/db/migrate/20130918155525_create_taverna_player_service_credentials.taverna_player.rb +16 -0
  150. data/test/dummy/db/migrate/20130919155202_add_displayed_to_taverna_player_interactions.taverna_player.rb +6 -0
  151. data/test/dummy/db/migrate/20131007153659_add_job_ref_to_taverna_player_runs.taverna_player.rb +14 -0
  152. data/test/dummy/db/migrate/20131016123941_add_reply_caching_to_taverna_player_interactions.taverna_player.rb +20 -0
  153. data/test/dummy/db/migrate/20131017141614_add_failure_message_to_taverna_player_run.taverna_player.rb +6 -0
  154. data/test/dummy/db/migrate/20131018153316_add_serial_number_to_taverna_player_interactions.taverna_player.rb +6 -0
  155. data/test/dummy/db/migrate/20131018164614_add_parent_run_id_to_taverna_player_runs.taverna_player.rb +6 -0
  156. data/test/dummy/db/migrate/20131102114343_add_page_uri_to_taverna_player_interaction.taverna_player.rb +6 -0
  157. data/test/dummy/db/migrate/20131105115724_remove_proxy_from_taverna_player_runs.taverna_player.rb +12 -0
  158. data/test/dummy/db/migrate/20131105142417_change_taverna_player_interactions_output_value_column_name.taverna_player.rb +6 -0
  159. data/test/dummy/db/migrate/20131112165815_add_user_to_taverna_player_run.taverna_player.rb +6 -0
  160. data/test/dummy/db/migrate/20131114130937_create_users.rb +10 -0
  161. data/test/dummy/db/schema.rb +123 -0
  162. data/test/dummy/lib/callbacks.rb +35 -0
  163. data/test/dummy/log/.gitkeep +0 -0
  164. data/test/dummy/public/404.html +26 -0
  165. data/test/dummy/public/422.html +26 -0
  166. data/test/dummy/public/500.html +25 -0
  167. data/test/dummy/public/favicon.ico +0 -0
  168. data/test/dummy/script/delayed_job +5 -0
  169. data/test/dummy/script/rails +6 -0
  170. data/test/dummy/test/functional/home_controller_test.rb +28 -0
  171. data/test/dummy/test/functional/workflows_controller_test.rb +21 -0
  172. data/test/fixtures/files/crassostrea_gigas.csv +737 -0
  173. data/test/fixtures/taverna_player/interactions.yml +32 -0
  174. data/test/fixtures/taverna_player/run_ports.yml +54 -0
  175. data/test/fixtures/taverna_player/runs.yml +69 -0
  176. data/test/fixtures/taverna_player/service_credentials.yml +25 -0
  177. data/test/fixtures/users.yml +16 -0
  178. data/test/fixtures/workflows.yml +32 -0
  179. data/test/functional/taverna_player/runs_controller_test.rb +316 -0
  180. data/test/functional/taverna_player/service_credentials_controller_test.rb +99 -0
  181. data/test/taverna_player_test.rb +25 -0
  182. data/test/test_helper.rb +33 -0
  183. data/test/unit/helpers/taverna_player/application_helper_test.rb +70 -0
  184. data/test/unit/helpers/taverna_player/runs_helper_test.rb +45 -0
  185. data/test/unit/taverna_player/interaction_test.rb +47 -0
  186. data/test/unit/taverna_player/run_port_test.rb +309 -0
  187. data/test/unit/taverna_player/run_test.rb +196 -0
  188. data/test/unit/taverna_player/service_credential_test.rb +64 -0
  189. data/test/workflows/hello.t2flow +164 -0
  190. data/test/workflows/list_with_errors.t2flow +107 -0
  191. data/test/workflows/pass_through.t2flow +12 -0
  192. metadata +539 -0
@@ -0,0 +1,25 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2013 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
+ module TavernaPlayer
14
+ class Interaction < ActiveRecord::Base
15
+ attr_accessible :displayed, :feed_reply, :page, :replied, :unique_id
16
+
17
+ belongs_to :run, :class_name => "TavernaPlayer::Run"
18
+
19
+ validates_presence_of :unique_id
20
+ validates_uniqueness_of :unique_id
21
+ validates_presence_of :serial
22
+ validates_uniqueness_of :serial, :scope => :run_id,
23
+ :message => "Interaction serial number should be unique for a run"
24
+ end
25
+ end
@@ -0,0 +1,117 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2013 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
+ module TavernaPlayer
14
+
15
+ # This class represents a workflow run. It may be yet to run, running or
16
+ # finished. All inputs and outputs can be accessed via this class.
17
+ class Run < ActiveRecord::Base
18
+ include TavernaPlayer::Concerns::Models::Run
19
+
20
+ ##
21
+ # :method: create_time
22
+ # :call-seq:
23
+ # create_time -> datetime
24
+ #
25
+ # The time this run was created on the Taverna Server.
26
+
27
+ ##
28
+ # :method: cancelled?
29
+ # :call-seq:
30
+ # cancelled? -> boolean
31
+ #
32
+ # Has this run been cancelled?
33
+
34
+ ##
35
+ # :method: complete?
36
+ # :call-seq:
37
+ # complete? -> boolean
38
+ #
39
+ # Is this run complete? If a run is finished or cancelled or failed then
40
+ # it is complete.
41
+
42
+ ##
43
+ # :method: embedded?
44
+ # :call-seq:
45
+ # embedded? -> boolean
46
+ #
47
+ # Is this run an embedded run? This helps determine if a run should be
48
+ # treated differently, e.g. in the views, if it is running embedded within
49
+ # another location or website.
50
+
51
+ ##
52
+ # :method: failed?
53
+ # :call-seq:
54
+ # failed? -> boolean
55
+ #
56
+ # Did this run finish abnormally or with an error?
57
+
58
+ ##
59
+ # :method: finish_time
60
+ # :call-seq:
61
+ # finish_time -> datetime
62
+ #
63
+ # The time this run finished running on Taverna Server.
64
+
65
+ ##
66
+ # :method: finished?
67
+ # :call-seq:
68
+ # finished? -> boolean
69
+ #
70
+ # Has this run finished normally?
71
+
72
+ ##
73
+ # :method: has_parent?
74
+ # :call-seq:
75
+ # has_parent? -> boolean
76
+ #
77
+ # A run will have a parent if it is a child run as part of a sweep.
78
+
79
+ ##
80
+ # :method: name
81
+ # :call-seq:
82
+ # name -> string
83
+ #
84
+ # The name (mnemonic) of this run.
85
+
86
+ ##
87
+ # :method: root_ancestor
88
+ # :call-seq:
89
+ # root_ancestor -> run
90
+ #
91
+ # Gets the ultimate ancestor of this run, which may not be its immediate
92
+ # parent.
93
+
94
+ ##
95
+ # :method: running?
96
+ # :call-seq:
97
+ # running? -> boolean
98
+ #
99
+ # Is this run still running on Taverna Server?
100
+
101
+ ##
102
+ # :method: start_time
103
+ # :call-seq:
104
+ # start_time -> datetime
105
+ #
106
+ # The time this run started running on the Taverna Server.
107
+
108
+ ##
109
+ # :method: state
110
+ # :call-seq:
111
+ # state -> symbol
112
+ #
113
+ # The state of this run. Possible states are :pending, :initialized,
114
+ # :running, :finished, :cancelled or :failed.
115
+
116
+ end
117
+ end
@@ -0,0 +1,148 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2013 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
+ module TavernaPlayer
14
+
15
+ # This class is the superclass of the input and output port types
16
+ # RunPort::Input and RunPort::Output, respectively. It holds much common
17
+ # functionality.
18
+ #
19
+ # A port can hold either a text value or a file.
20
+ class RunPort < ActiveRecord::Base
21
+
22
+ MAXIMUM_DATABASE_VALUE_SIZE = 255 # :nodoc:
23
+
24
+ self.inheritance_column = "port_type"
25
+
26
+ belongs_to :run, :class_name => "TavernaPlayer::Run"
27
+
28
+ validates_presence_of :name
29
+ validates_uniqueness_of :name, :scope => [:run_id, :port_type]
30
+
31
+ attr_accessible :depth, :file, :name, :value
32
+
33
+ has_attached_file :file,
34
+ :path => File.join(TavernaPlayer.file_store, ":class/:attachment/:id/:filename"),
35
+ :url => :file_url_via_run,
36
+ :default_url => ""
37
+
38
+ default_scope order("lower(name) ASC")
39
+
40
+ # If there is both a value and a file, then prefer the file. If the file
41
+ # is changed, delete the value. This must be run before "process_value"!
42
+ before_save :delete_value, :if => :file_file_name_changed?
43
+
44
+ # Overflow the value into a file if it is too big. Don't try to process
45
+ # the value if the file has changed. This must run after "delete_value"!
46
+ before_save :process_value, :if => :value_changed?, :unless => :file_file_name_changed?
47
+
48
+ # :call-seq:
49
+ # display_name -> string
50
+ #
51
+ # Convert this port's name to a more presentable form. In practice this
52
+ # means converting underscores (_) to spaces, while preserving case.
53
+ def display_name
54
+ name.gsub('_', ' ')
55
+ end
56
+
57
+ # :call-seq:
58
+ # value_preview -> string
59
+ #
60
+ # Show up to the first 256 characters of the port's value. This returns
61
+ # nil if the port has a file instead of a value.
62
+ def value_preview
63
+ self[:value]
64
+ end
65
+
66
+ # :call-seq:
67
+ # value -> string
68
+ #
69
+ # Return the value held in this port if there is one.
70
+ def value
71
+ v = self[:value]
72
+ if !v.blank? && !file.path.blank?
73
+ File.read(file.path)
74
+ else
75
+ v
76
+ end
77
+ end
78
+
79
+ private
80
+
81
+ def delete_value
82
+ self[:value] = nil
83
+ end
84
+
85
+ # If the value is too big to fit in the database then overflow it into a
86
+ # file.
87
+ def process_value
88
+ v = self[:value]
89
+
90
+ if !v.blank? && v.size > MAXIMUM_DATABASE_VALUE_SIZE
91
+ self[:value] = v[0...MAXIMUM_DATABASE_VALUE_SIZE]
92
+ save_value_to_file(v)
93
+ else
94
+ self.file = nil unless file.path.blank?
95
+ end
96
+ end
97
+
98
+ def save_value_to_file(v)
99
+ Dir.mktmpdir("#{id}", Rails.root.join("tmp")) do |tmp_dir|
100
+ tmp_file_name = File.join(tmp_dir, "#{name}.txt")
101
+
102
+ File.write(tmp_file_name, v.force_encoding("UTF-8"))
103
+
104
+ self.file = File.new(tmp_file_name)
105
+ end
106
+ end
107
+ end
108
+
109
+ # This class represents a workflow input port.
110
+ class RunPort::Input < RunPort
111
+
112
+ private
113
+
114
+ def file_url_via_run
115
+ "/runs/#{run_id}/input/#{name}"
116
+ end
117
+ end
118
+
119
+ # This class represents a workflow output port.
120
+ class RunPort::Output < RunPort
121
+
122
+ attr_accessible :metadata
123
+
124
+ serialize :metadata
125
+
126
+ private
127
+
128
+ def file_url_via_run
129
+ "/runs/#{run_id}/output/#{name}"
130
+ end
131
+
132
+ public
133
+
134
+ ##
135
+ # :method: metadata
136
+ # :call-seq:
137
+ # metadata -> hash
138
+ #
139
+ # Get the size and type metadata for this output port in a Hash. For a
140
+ # list output it might look like this:
141
+ #
142
+ # {
143
+ # :size => [12, 36509],
144
+ # :type => ["text/plain", "image/png"]
145
+ # }
146
+
147
+ end
148
+ end
@@ -0,0 +1,56 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2013 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
+ module TavernaPlayer
14
+
15
+ # This class represents a credential for authentication to a service during
16
+ # a workflow run.
17
+ class ServiceCredential < ActiveRecord::Base
18
+ attr_accessible :description, :login, :name, :password,
19
+ :password_confirmation, :uri
20
+
21
+ validates :uri, :presence => true
22
+ validates :login, :presence => true
23
+ validates :password, :presence => true
24
+ validates :password_confirmation, :presence => true
25
+ validates :password, :confirmation => true
26
+
27
+ ##
28
+ # :method: description
29
+ # :call-seq:
30
+ # description -> string
31
+ #
32
+ # The description of the service or credential.
33
+
34
+ ##
35
+ # :method: login
36
+ # :call-seq:
37
+ # login -> string
38
+ #
39
+ # The login name (or user name) used to log in to the service.
40
+
41
+ ##
42
+ # :method: name
43
+ # :call-seq:
44
+ # name -> string
45
+ #
46
+ # The name of the service.
47
+
48
+ ##
49
+ # :method: uri
50
+ # :call-seq:
51
+ # uri -> string
52
+ #
53
+ # The URI of the service, returned as a string.
54
+
55
+ end
56
+ end
@@ -0,0 +1,27 @@
1
+ <%
2
+ # Copyright (c) 2013 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
+ <!DOCTYPE html>
14
+
15
+ <html>
16
+ <head>
17
+ <title>Taverna Player</title>
18
+ <%= stylesheet_link_tag "application", :media => "all" %>
19
+ <%= javascript_include_tag "application" %>
20
+ <%= csrf_meta_tags %>
21
+ </head>
22
+ <body>
23
+
24
+ <%= yield %>
25
+
26
+ </body>
27
+ </html>
@@ -0,0 +1,19 @@
1
+ <%
2
+ # Copyright (c) 2013 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
+ <div id="run-button">
14
+ <% if run.complete? %>
15
+ <%= link_to 'Delete', run, :method => :delete, :data => { confirm: 'Are you sure?' } -%>
16
+ <% else %>
17
+ <%= link_to "Cancel", cancel_run_path(run.id), :method => :put, :data => { confirm: "Are you sure?" } -%>
18
+ <% end %>
19
+ </div>
@@ -0,0 +1,56 @@
1
+ <%
2
+ # Copyright (c) 2013 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
+ <div id="run-info">
14
+ <p>
15
+ <b>Run:</b>
16
+ <%= run.run_id %>
17
+ </p>
18
+
19
+ <p>
20
+ <b>Name:</b>
21
+ <%= form_for run, :html => {:multipart => true} do |f| %>
22
+ <%= f.text_field :name %>
23
+ <%= f.submit "Update" %>
24
+ <% end %>
25
+ </p>
26
+
27
+ <p>
28
+ <b>State:</b>
29
+ <%= run.state %>
30
+ </p>
31
+
32
+ <p>
33
+ <b>Status message:</b>
34
+ <%= run.status_message %>
35
+ </p>
36
+
37
+ <p>
38
+ <b>Create time:</b>
39
+ <%= run.create_time %>
40
+ </p>
41
+
42
+ <p>
43
+ <b>Start time:</b>
44
+ <%= run.start_time %>
45
+ </p>
46
+
47
+ <p>
48
+ <b>Finish time:</b>
49
+ <%= run.finish_time %>
50
+ </p>
51
+
52
+ <p>
53
+ <b>Embedded:</b>
54
+ <%= run.embedded %>
55
+ </p>
56
+ </div>