bio-gem 1.3.4 → 1.3.5
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 +7 -0
- data/.travis.yml +1 -1
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/Tutorial.rdoc +14 -5
- data/VERSION +1 -1
- data/bin/biogem +33 -26
- data/bio-gem.gemspec +5 -6
- data/lib/bio-gem/application.rb +48 -37
- data/lib/bio-gem/generator/render.rb +8 -3
- data/lib/bio-gem/mod/jeweler.rb +19 -13
- data/lib/bio-gem/mod/jeweler/options.rb +5 -0
- data/lib/bio-gem/templates/README.md +3 -3
- data/lib/bio-gem/templates/bin/bio-plugin +10 -1
- data/lib/bio-gem/templates/lib/plugin.rb +17 -1
- data/lib/bio-gem/templates/travis.yml +2 -1
- data/test/test_bio-gem.rb +25 -5
- metadata +38 -30
- data/Gemfile.lock +0 -29
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: d51d946c9198261b369526a545153ea8f4806e55
|
|
4
|
+
data.tar.gz: 2f5aca2b0c51a7a7c512be9bcd253d705c9f7295
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 381baf735d2b2f95b1291ec3f867f50c7d9f9c8c1fc172ed55245339650fcef80e988066651e8b319b9f6b43159654e4a82a0f29eff31339df20af7de0c75469
|
|
7
|
+
data.tar.gz: 1c8d0e431d34e6e14f3ea3e93c610aba48ebdd2f9e1769cdc7b0bf03a6faa36b900a4d5aa96293288e1fd685b5b0393dc4024efacc1af0403cc9ac62ddc53215
|
data/.travis.yml
CHANGED
|
@@ -3,7 +3,7 @@ rvm:
|
|
|
3
3
|
- 1.9.2
|
|
4
4
|
- 1.9.3
|
|
5
5
|
- jruby-19mode # JRuby in 1.9 mode
|
|
6
|
-
- rbx-19mode # rvm install rbx -- --enable-version=1.9,1.8 --default-version=1.9
|
|
6
|
+
# - rbx-19mode # rvm install rbx -- --enable-version=1.9,1.8 --default-version=1.9
|
|
7
7
|
# - 1.8.7
|
|
8
8
|
# - jruby-18mode # JRuby in 1.8 mode
|
|
9
9
|
# - rbx-18mode
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
|
@@ -24,7 +24,7 @@ Jeweler::Tasks.new do |gem|
|
|
|
24
24
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
|
25
25
|
#gem.version='0.0.1'
|
|
26
26
|
gem.rdoc_options << '--main' << 'README' << '--line-numbers'
|
|
27
|
-
gem.required_ruby_version = "
|
|
27
|
+
gem.required_ruby_version = ">= 1.9"
|
|
28
28
|
gem.extra_rdoc_files = ['LICENSE.txt', 'README.rdoc','Tutorial.rdoc']
|
|
29
29
|
end
|
|
30
30
|
|
data/Tutorial.rdoc
CHANGED
|
@@ -204,20 +204,29 @@ In bioinformatics is very common to presents data using a web application, and o
|
|
|
204
204
|
To example this Biogem's features we want to create a Rails application which provides a form to users. Data are submitted to TogoWS http://togows.dbcls.jp/ and the result is returned in a web page. In the mean time we want to store suers queries and return them in the page of TogoWS' result. We'll create a Rails application and a separated Biogem to store queries and provide connection to TogoWS, following "man in the middle" pattern.
|
|
205
205
|
|
|
206
206
|
$ biogem --with-engine Foo foo
|
|
207
|
+
$ cd bioruby-foo
|
|
208
|
+
$ rake version:write
|
|
209
|
+
$ bundle install
|
|
207
210
|
|
|
208
211
|
Note: a database is automatically configure for the newly created gem
|
|
209
212
|
|
|
210
|
-
|
|
213
|
+
Create a completely new Rails web application NOT inside the newly create biogem, so rememner to
|
|
211
214
|
|
|
212
|
-
|
|
215
|
+
$ cd ..
|
|
213
216
|
|
|
214
|
-
|
|
217
|
+
and then create a new web app
|
|
218
|
+
|
|
219
|
+
$ rails new Webfoo
|
|
215
220
|
|
|
216
221
|
update the installation running:
|
|
217
222
|
|
|
218
223
|
cd Webfoo
|
|
219
224
|
bundle install
|
|
220
225
|
|
|
226
|
+
You can test your application just inserting into Rails application Gemfile the newly created gem:
|
|
227
|
+
|
|
228
|
+
gem 'bio-foo', :path=>'path_gem_dir'
|
|
229
|
+
|
|
221
230
|
Enable the route for the added gem (in biouby-foo/config/routes.rb) uncomment:
|
|
222
231
|
|
|
223
232
|
yourPathToTheControllerFiles = 'foopath'
|
|
@@ -291,8 +300,8 @@ This is Gemfile's content
|
|
|
291
300
|
# Include everything needed to run rake, tests, features, etc.
|
|
292
301
|
group :development do
|
|
293
302
|
gem "shoulda", ">= 0"
|
|
294
|
-
gem "bundler", "
|
|
295
|
-
gem "jeweler", "
|
|
303
|
+
gem "bundler", "> 1.0.0"
|
|
304
|
+
gem "jeweler", "> 1.6.4"
|
|
296
305
|
gem "rcov", ">= 0"
|
|
297
306
|
gem "bio", ">= 1.4.2"
|
|
298
307
|
end
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.5
|
data/bin/biogem
CHANGED
|
@@ -10,33 +10,40 @@ require 'rake'
|
|
|
10
10
|
|
|
11
11
|
orig_argv = ARGV.clone
|
|
12
12
|
# application_exit[:exit] exists, application_exit[:options] it depends.
|
|
13
|
-
|
|
14
|
-
options = application_exit[:options]
|
|
13
|
+
exit Bio::Gem::Generator::Application.run!(*ARGV)
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
#run
|
|
16
|
+
## bundle install
|
|
17
|
+
## rake version:write
|
|
18
|
+
## rake gemspec
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
# application_exit = Bio::Gem::Generator::Application.run!(*ARGV)
|
|
21
|
+
# options = application_exit[:options]
|
|
22
|
+
|
|
23
|
+
# if (application_exit[:exit]==0)
|
|
24
|
+
# pwd = FileUtils.pwd
|
|
25
|
+
# FileUtils.cd "bioruby-#{application_exit[:options][:project_name]}"
|
|
26
|
+
# ARGV.clear << "install"
|
|
27
|
+
|
|
28
|
+
# Bundler::CLI.start
|
|
29
|
+
# #TODO: call rake directly not from shell
|
|
23
30
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
else
|
|
40
|
-
|
|
41
|
-
end
|
|
31
|
+
# if options[:testing_framework] == :rspec
|
|
32
|
+
# # Don't remove the following warning, as it may be encountered by anyone running
|
|
33
|
+
# # biogem from source (especially with the --with-rspec switch)!
|
|
34
|
+
# print "
|
|
35
|
+
# WARNING: if rake gives an (rspec) error try running biogem from a directly
|
|
36
|
+
# installed gem instead:
|
|
37
|
+
# bundle exec rake install
|
|
38
|
+
# biogem [options]
|
|
39
|
+
# "
|
|
40
|
+
# end
|
|
41
|
+
# print "\trake version:write\n"
|
|
42
|
+
# sh "rake version:write"
|
|
43
|
+
# print "\trake gemspec\n"
|
|
44
|
+
# sh "rake gemspec"
|
|
45
|
+
# print "Done!\n"
|
|
46
|
+
# else
|
|
47
|
+
# $stderr.print "\nERROR: Biogem failed!\n"
|
|
48
|
+
# end
|
|
42
49
|
|
data/bio-gem.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "bio-gem"
|
|
8
|
-
s.version = "1.3.
|
|
8
|
+
s.version = "1.3.5"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Raoul J.P. Bonnal", "Pjotr Prins"]
|
|
12
|
-
s.date = "
|
|
12
|
+
s.date = "2013-07-24"
|
|
13
13
|
s.description = "Biogem is a software generator for those bioinformaticans who want to start coding an application or a library for using/extending BioRuby core library and sharing it through rubygems.org .\n The basic idea is to simplify and promote a modular approach to bioinformatics software development"
|
|
14
14
|
s.email = "ilpuccio.febo@gmail.com"
|
|
15
15
|
s.executables = ["biogem"]
|
|
@@ -23,7 +23,6 @@ Gem::Specification.new do |s|
|
|
|
23
23
|
".travis.yml",
|
|
24
24
|
".yardopts",
|
|
25
25
|
"Gemfile",
|
|
26
|
-
"Gemfile.lock",
|
|
27
26
|
"LICENSE.txt",
|
|
28
27
|
"README.rdoc",
|
|
29
28
|
"Rakefile",
|
|
@@ -71,12 +70,12 @@ Gem::Specification.new do |s|
|
|
|
71
70
|
s.licenses = ["MIT"]
|
|
72
71
|
s.rdoc_options = ["--main", "README", "--line-numbers"]
|
|
73
72
|
s.require_paths = ["lib"]
|
|
74
|
-
s.required_ruby_version = Gem::Requirement.new("
|
|
75
|
-
s.rubygems_version = "
|
|
73
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9")
|
|
74
|
+
s.rubygems_version = "2.0.0"
|
|
76
75
|
s.summary = "Biogem is a software generator for Ruby in bioinformatics"
|
|
77
76
|
|
|
78
77
|
if s.respond_to? :specification_version then
|
|
79
|
-
s.specification_version =
|
|
78
|
+
s.specification_version = 4
|
|
80
79
|
|
|
81
80
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
82
81
|
s.add_runtime_dependency(%q<bundler>, [">= 1.0.21"])
|
data/lib/bio-gem/application.rb
CHANGED
|
@@ -4,52 +4,63 @@ module Bio
|
|
|
4
4
|
class Generator
|
|
5
5
|
class Application
|
|
6
6
|
class << self
|
|
7
|
-
|
|
8
|
-
# This function has been stolen from Jeweler and mdified with the return hash, the original class returns just 0|1
|
|
9
|
-
# the problem is that I need to identify the name of the project_name from outside to use bundler.
|
|
7
|
+
include Shellwords
|
|
10
8
|
def run!(*arguments)
|
|
11
|
-
env_opts = if ENV['JEWELER_OPTS']
|
|
12
|
-
Jeweler::Generator::Options.new(ENV['JEWELER_OPTS'].split(' '))
|
|
13
|
-
end
|
|
14
|
-
options = Jeweler::Generator::Options.new(arguments)
|
|
15
|
-
options = options.merge(env_opts) if env_opts
|
|
16
9
|
|
|
17
|
-
|
|
18
|
-
$stderr.puts options[:invalid_argument]
|
|
19
|
-
options[:show_help] = true
|
|
20
|
-
end
|
|
10
|
+
options = build_options(arguments)
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
if options[:invalid_argument]
|
|
13
|
+
$stderr.puts options[:invalid_argument]
|
|
14
|
+
options[:show_help] = true
|
|
15
|
+
end
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
if options[:show_version]
|
|
18
|
+
$stderr.puts "Version: #{Jeweler::Version::STRING}"
|
|
19
|
+
return 1
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
if options[:show_help]
|
|
23
|
+
$stderr.puts options.opts
|
|
24
|
+
return 1
|
|
25
|
+
end
|
|
31
26
|
|
|
32
|
-
|
|
27
|
+
if options[:project_name].nil? || options[:project_name].squeeze.strip == ""
|
|
28
|
+
$stderr.puts options.opts
|
|
29
|
+
return 1
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
begin
|
|
33
|
+
if options[:directory]!='.'
|
|
34
|
+
FileUtils.mkdir_p options[:directory]
|
|
35
|
+
end
|
|
36
|
+
FileUtils.cd options[:directory] do
|
|
33
37
|
generator = Jeweler::Generator.new(options)
|
|
34
38
|
generator.run
|
|
35
|
-
return
|
|
36
|
-
rescue Jeweler::NoGitUserName
|
|
37
|
-
$stderr.puts %Q{No user.name found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.name "mad voo"}
|
|
38
|
-
return {:exit=>1}
|
|
39
|
-
rescue Jeweler::NoGitUserEmail
|
|
40
|
-
$stderr.puts %Q{No user.email found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.email mad.vooo@gmail.com}
|
|
41
|
-
return {:exit=>1}
|
|
42
|
-
rescue Jeweler::NoGitHubUser
|
|
43
|
-
$stderr.puts %Q{No github.user found in ~/.gitconfig. Please tell git about your GitHub account (see http://github.com/blog/180-local-github-config for details). For example: git config --global github.user defunkt}
|
|
44
|
-
return {:exit=>1}
|
|
45
|
-
rescue Jeweler::NoGitHubToken
|
|
46
|
-
$stderr.puts %Q{No github.token found in ~/.gitconfig. Please tell git about your GitHub account (see http://github.com/blog/180-local-github-config for details). For example: git config --global github.token 6ef8395fecf207165f1a82178ae1b984}
|
|
47
|
-
return {:exit=>1}
|
|
48
|
-
rescue Jeweler::FileInTheWay
|
|
49
|
-
$stderr.puts "The directory for #{options[:project_name]} already exists. Maybe move it out of the way before continuing?"
|
|
50
|
-
return {:exit=>1}
|
|
39
|
+
return 0
|
|
51
40
|
end
|
|
41
|
+
rescue Jeweler::NoGitUserName
|
|
42
|
+
$stderr.puts %Q{No user.name found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.name "mad voo"}
|
|
43
|
+
return 1
|
|
44
|
+
rescue Jeweler::NoGitUserEmail
|
|
45
|
+
$stderr.puts %Q{No user.email found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.email mad.vooo@gmail.com}
|
|
46
|
+
return 1
|
|
47
|
+
rescue Jeweler::NoGitHubUser
|
|
48
|
+
$stderr.puts %Q{Please specify --github-username or set github.user in ~/.gitconfig (see http://github.com/blog/180-local-github-config for details). For example: git config --global github.user defunkt}
|
|
49
|
+
return 1
|
|
50
|
+
rescue Jeweler::FileInTheWay
|
|
51
|
+
$stderr.puts "The directory #{options[:project_name]} already exists. Maybe move it out of the way before continuing?"
|
|
52
|
+
return 1
|
|
53
|
+
end
|
|
52
54
|
end #run!
|
|
55
|
+
|
|
56
|
+
def build_options(arguments)
|
|
57
|
+
env_opts_string = ENV['JEWELER_OPTS'] || ""
|
|
58
|
+
env_opts = Jeweler::Generator::Options.new(shellwords(env_opts_string))
|
|
59
|
+
argument_opts = Jeweler::Generator::Options.new(arguments)
|
|
60
|
+
|
|
61
|
+
env_opts.merge(argument_opts)
|
|
62
|
+
end
|
|
63
|
+
|
|
53
64
|
end #self
|
|
54
65
|
end #Application
|
|
55
66
|
end #Generator
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
module Biogem
|
|
5
5
|
module Render
|
|
6
|
-
# new hook for removing stuff
|
|
6
|
+
# new hook for removing stuff (FIXME: could use a test!!)
|
|
7
7
|
def after_render_template(source,buf)
|
|
8
8
|
if source == 'other_tasks.erb'
|
|
9
9
|
$stdout.puts "\tremove jeweler rcov lines"
|
|
@@ -92,12 +92,17 @@ module Biogem
|
|
|
92
92
|
mkdir_in_target bin_dir
|
|
93
93
|
output_template_in_target_generic path('bin/bio-plugin'), path(bin_dir, bin_name)
|
|
94
94
|
# TODO: set the file as executable (Windows?)
|
|
95
|
-
File.chmod
|
|
95
|
+
File.chmod 0755, path(target_dir, bin_dir, bin_name)
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
def create_test_data
|
|
99
99
|
mkdir_in_target("test") unless File.exists? "#{target_dir}/test"
|
|
100
|
-
|
|
100
|
+
#TODO use and iterator ...
|
|
101
|
+
mkdir_in_target test_data_dir
|
|
102
|
+
mkdir_in_target 'test/data/input'
|
|
103
|
+
mkdir_in_target 'test/data/regression'
|
|
104
|
+
mkdir_in_target 'test/data/rspec'
|
|
105
|
+
mkdir_in_target 'test/data/cucumber'
|
|
101
106
|
end
|
|
102
107
|
|
|
103
108
|
def create_ffi_structure
|
data/lib/bio-gem/mod/jeweler.rb
CHANGED
|
@@ -19,6 +19,11 @@ class Jeweler
|
|
|
19
19
|
original_initialize(options)
|
|
20
20
|
# RCov is not properly supported in Ruby 1.9.2, so we remove it
|
|
21
21
|
development_dependencies.delete_if { |k,v| k == "rcov" }
|
|
22
|
+
# Jeweler has a bug for bundler
|
|
23
|
+
development_dependencies.delete_if { |k,v| k == "bundler" }
|
|
24
|
+
development_dependencies.delete_if { |k,v| k == "jeweler" }
|
|
25
|
+
development_dependencies << ["jeweler",'~> 1.8.4", :git => "https://github.com/technicalpickles/jeweler.git']
|
|
26
|
+
development_dependencies << ["bundler", ">= 1.0.21"]
|
|
22
27
|
# development_dependencies << ["bio-logger"]
|
|
23
28
|
development_dependencies << ["bio", ">= 1.4.2"]
|
|
24
29
|
# we add rdoc because of an upgrade of rake RDocTask causing errors
|
|
@@ -28,6 +33,7 @@ class Jeweler
|
|
|
28
33
|
development_dependencies << ["activesupport", ">= 3.0.7"]
|
|
29
34
|
development_dependencies << ["sqlite3", ">= 1.3.3"]
|
|
30
35
|
end
|
|
36
|
+
development_dependencies << ['systemu', '>=2.5.2'] if options[:wrapper]
|
|
31
37
|
end
|
|
32
38
|
|
|
33
39
|
alias original_project_name project_name
|
|
@@ -69,20 +75,20 @@ class Jeweler
|
|
|
69
75
|
end
|
|
70
76
|
|
|
71
77
|
def create_and_push_repo
|
|
72
|
-
|
|
73
|
-
begin
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
rescue SocketError => se
|
|
84
|
-
puts_template_message("Seems you are not connected to Internet, can't create a remote repository. Do not forget to create it by hand, from GitHub, and sync it with this project.")
|
|
78
|
+
puts "Please provide your Github password to create the Github repository"
|
|
79
|
+
begin
|
|
80
|
+
login = github_username
|
|
81
|
+
password = ask("Password: ") { |q| q.echo = false }
|
|
82
|
+
github = Github.new(:login => login.strip, :password => password.strip)
|
|
83
|
+
github.repos.create(:name => github_repo_name, :description => summary)
|
|
84
|
+
rescue Github::Error::Unauthorized
|
|
85
|
+
puts "Wrong login/password! Please try again"
|
|
86
|
+
retry
|
|
87
|
+
rescue Github::Error::UnprocessableEntity
|
|
88
|
+
raise GitRepoCreationFailed, "Can't create that repo. Does it already exist?"
|
|
85
89
|
end
|
|
90
|
+
# TODO do a HEAD request to see when it's ready?
|
|
91
|
+
@repo.push('origin')
|
|
86
92
|
end
|
|
87
93
|
end #Generator
|
|
88
94
|
end #Jeweler
|
|
@@ -24,6 +24,7 @@ class Jeweler
|
|
|
24
24
|
|
|
25
25
|
require 'optparse'
|
|
26
26
|
@opts = OptionParser.new do |o|
|
|
27
|
+
self[:directory]='.'
|
|
27
28
|
o.banner = "Usage: #{File.basename($0)} [options] reponame\ne.g. #{File.basename($0)} the-perfect-gem"
|
|
28
29
|
|
|
29
30
|
o.on('--directory [DIRECTORY]', 'specify the directory to generate into') do |directory|
|
|
@@ -62,6 +63,10 @@ class Jeweler
|
|
|
62
63
|
self[:biogem_db] = true
|
|
63
64
|
end
|
|
64
65
|
|
|
66
|
+
o.on('--with-wrapper', 'setup the biogem to be a wrapper around a command line application') do
|
|
67
|
+
self[:wrapper] = true
|
|
68
|
+
end
|
|
69
|
+
|
|
65
70
|
o.separator ""
|
|
66
71
|
|
|
67
72
|
o.separator "These options are for Jeweler"
|
|
@@ -9,13 +9,13 @@ Note: this software is under active development!
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
|
|
12
|
+
gem install <%= project_name %>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```ruby
|
|
18
|
-
|
|
18
|
+
require '<%= project_name %>'
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
The API doc is online. For more code examples see the test files in
|
|
@@ -39,7 +39,7 @@ If you use this software, please cite one of
|
|
|
39
39
|
|
|
40
40
|
## Biogems.info
|
|
41
41
|
|
|
42
|
-
This Biogem is published at
|
|
42
|
+
This Biogem is published at (http://biogems.info/index.html#<%= project_name %>)
|
|
43
43
|
|
|
44
44
|
## Copyright
|
|
45
45
|
|
|
@@ -4,7 +4,16 @@
|
|
|
4
4
|
# Author:: <%= user_name %>
|
|
5
5
|
# Copyright:: <%= Time.now.year %>
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
USAGE = "Describe <%= bin_name %>"
|
|
8
|
+
|
|
9
|
+
gempath = File.dirname(File.dirname(__FILE__))
|
|
10
|
+
$: << File.join(gempath,'lib')
|
|
11
|
+
|
|
12
|
+
VERSION_FILENAME=File.join(gempath,'VERSION')
|
|
13
|
+
version = File.new(VERSION_FILENAME).read.chomp
|
|
14
|
+
|
|
15
|
+
# print banner
|
|
16
|
+
print "<%= bin_name %> #{version} by <%= user_name %> <%= Time.now.year %>\n"
|
|
8
17
|
|
|
9
18
|
if ARGV.size == 0
|
|
10
19
|
print USAGE
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
<% if options[:wrapper] %>require 'systemu'
|
|
2
|
+
<% end %>
|
|
2
3
|
|
|
4
|
+
module <%= constant_name %>
|
|
5
|
+
<% if options[:wrapper] %>
|
|
6
|
+
class Wrapper
|
|
7
|
+
def run
|
|
8
|
+
command = "some_application arguments"
|
|
9
|
+
status, stdout, stderr = systemu command, 0 => 'dummy stdin'
|
|
10
|
+
if status.exitstatus != 0
|
|
11
|
+
$stderr.puts "Failed to run wrapping command correctly, as non-zero exit status "+
|
|
12
|
+
"#{status.exitstatus} detected. Command run was `#{command}'"
|
|
13
|
+
else
|
|
14
|
+
# All good. Now to something useful with the stdout..
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
<% end %>
|
|
3
19
|
end
|
data/test/test_bio-gem.rb
CHANGED
|
@@ -5,10 +5,18 @@ $UNITTEST=true # prevents github push
|
|
|
5
5
|
|
|
6
6
|
class TestBiorubyGem < Test::Unit::TestCase
|
|
7
7
|
TEST_DIR = 'test/bioruby-biogem-test'
|
|
8
|
+
def basic_generated_files(project_name)
|
|
9
|
+
%W(Gemfile lib lib/bio-#{project_name}.rb LICENSE.txt Rakefile README.rdoc test test/helper.rb test/test_bio-#{project_name}.rb).map do |file_name_to_test|
|
|
10
|
+
File.join("bioruby-#{project_name}",file_name_to_test)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
8
14
|
def setup
|
|
9
15
|
# check and create test directory
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
`git config --global user.email "git@example.com"` if `git config user.email`.empty?
|
|
17
|
+
`git config --global user.name "GitExample"` if `git config user.name`.empty?
|
|
18
|
+
FileUtils.rm_rf(TEST_DIR) if Dir.exist?(TEST_DIR)
|
|
19
|
+
Dir.mkdir TEST_DIR
|
|
12
20
|
end
|
|
13
21
|
|
|
14
22
|
def teardown
|
|
@@ -21,11 +29,23 @@ class TestBiorubyGem < Test::Unit::TestCase
|
|
|
21
29
|
project_name = "biogem-test"
|
|
22
30
|
Dir.chdir(TEST_DIR) do
|
|
23
31
|
application_exit = Bio::Gem::Generator::Application.run!("--no-create-repo", "--user-name=\"fake_name\"", "--user-email=\"fake_email\"", "--github-username=\"fake_github_user\"","#{project_name}")
|
|
24
|
-
|
|
25
|
-
File.exist?(
|
|
32
|
+
basic_generated_files(project_name).each do |path|
|
|
33
|
+
assert File.exist?(path), path
|
|
26
34
|
end
|
|
27
|
-
assert_equal [true, true, true, true, true, true, true, true, true], files_tested
|
|
28
35
|
end
|
|
29
36
|
|
|
30
37
|
end
|
|
38
|
+
|
|
39
|
+
def test_create_wrapper_project
|
|
40
|
+
project_name = "biogem-test2"
|
|
41
|
+
Dir.chdir(TEST_DIR) do
|
|
42
|
+
application_exit = Bio::Gem::Generator::Application.run!('--with-wrapper',"--no-create-repo", "--user-name=\"fake_name\"", "--user-email=\"fake_email\"", "--github-username=\"fake_github_user\"","#{project_name}")
|
|
43
|
+
basic_generated_files(project_name).each do |path|
|
|
44
|
+
assert File.exist?(path), path
|
|
45
|
+
end
|
|
46
|
+
assert File.read(File.join("bioruby-#{project_name}",'lib',"bio-#{project_name}","#{project_name}.rb")).match(/require 'systemu'/)
|
|
47
|
+
assert File.read(File.join("bioruby-#{project_name}",'lib',"bio-#{project_name}","#{project_name}.rb")).match(/systemu command/)
|
|
48
|
+
assert File.read(File.join("bioruby-#{project_name}",'Gemfile')).match(/gem "systemu"/)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
31
51
|
end
|
metadata
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bio-gem
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.3.5
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Raoul J.P. Bonnal
|
|
@@ -10,56 +9,67 @@ authors:
|
|
|
10
9
|
autorequire:
|
|
11
10
|
bindir: bin
|
|
12
11
|
cert_chain: []
|
|
13
|
-
date:
|
|
12
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
|
14
13
|
dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: bundler
|
|
17
|
-
requirement:
|
|
18
|
-
none: false
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
19
17
|
requirements:
|
|
20
|
-
- -
|
|
18
|
+
- - '>='
|
|
21
19
|
- !ruby/object:Gem::Version
|
|
22
20
|
version: 1.0.21
|
|
23
21
|
type: :runtime
|
|
24
22
|
prerelease: false
|
|
25
|
-
version_requirements:
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - '>='
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: 1.0.21
|
|
26
28
|
- !ruby/object:Gem::Dependency
|
|
27
29
|
name: jeweler
|
|
28
|
-
requirement:
|
|
29
|
-
none: false
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
|
-
- -
|
|
32
|
+
- - '>='
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
34
|
version: '0'
|
|
34
35
|
type: :runtime
|
|
35
36
|
prerelease: false
|
|
36
|
-
version_requirements:
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - '>='
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '0'
|
|
37
42
|
- !ruby/object:Gem::Dependency
|
|
38
43
|
name: rdoc
|
|
39
|
-
requirement:
|
|
40
|
-
none: false
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
41
45
|
requirements:
|
|
42
|
-
- -
|
|
46
|
+
- - '>='
|
|
43
47
|
- !ruby/object:Gem::Version
|
|
44
48
|
version: '0'
|
|
45
49
|
type: :runtime
|
|
46
50
|
prerelease: false
|
|
47
|
-
version_requirements:
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - '>='
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
48
56
|
- !ruby/object:Gem::Dependency
|
|
49
57
|
name: shoulda
|
|
50
|
-
requirement:
|
|
51
|
-
none: false
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
52
59
|
requirements:
|
|
53
|
-
- -
|
|
60
|
+
- - '>='
|
|
54
61
|
- !ruby/object:Gem::Version
|
|
55
62
|
version: '0'
|
|
56
63
|
type: :development
|
|
57
64
|
prerelease: false
|
|
58
|
-
version_requirements:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
70
|
+
description: |-
|
|
71
|
+
Biogem is a software generator for those bioinformaticans who want to start coding an application or a library for using/extending BioRuby core library and sharing it through rubygems.org .
|
|
72
|
+
The basic idea is to simplify and promote a modular approach to bioinformatics software development
|
|
63
73
|
email: ilpuccio.febo@gmail.com
|
|
64
74
|
executables:
|
|
65
75
|
- biogem
|
|
@@ -73,7 +83,6 @@ files:
|
|
|
73
83
|
- .travis.yml
|
|
74
84
|
- .yardopts
|
|
75
85
|
- Gemfile
|
|
76
|
-
- Gemfile.lock
|
|
77
86
|
- LICENSE.txt
|
|
78
87
|
- README.rdoc
|
|
79
88
|
- Rakefile
|
|
@@ -119,6 +128,7 @@ files:
|
|
|
119
128
|
homepage: http://github.com/helios/bioruby-gem
|
|
120
129
|
licenses:
|
|
121
130
|
- MIT
|
|
131
|
+
metadata: {}
|
|
122
132
|
post_install_message:
|
|
123
133
|
rdoc_options:
|
|
124
134
|
- --main
|
|
@@ -127,21 +137,19 @@ rdoc_options:
|
|
|
127
137
|
require_paths:
|
|
128
138
|
- lib
|
|
129
139
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
|
-
none: false
|
|
131
140
|
requirements:
|
|
132
|
-
- -
|
|
141
|
+
- - '>='
|
|
133
142
|
- !ruby/object:Gem::Version
|
|
134
143
|
version: '1.9'
|
|
135
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
|
-
none: false
|
|
137
145
|
requirements:
|
|
138
|
-
- -
|
|
146
|
+
- - '>='
|
|
139
147
|
- !ruby/object:Gem::Version
|
|
140
148
|
version: '0'
|
|
141
149
|
requirements: []
|
|
142
150
|
rubyforge_project:
|
|
143
|
-
rubygems_version:
|
|
151
|
+
rubygems_version: 2.0.0
|
|
144
152
|
signing_key:
|
|
145
|
-
specification_version:
|
|
153
|
+
specification_version: 4
|
|
146
154
|
summary: Biogem is a software generator for Ruby in bioinformatics
|
|
147
155
|
test_files: []
|
data/Gemfile.lock
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
GEM
|
|
2
|
-
remote: http://rubygems.org/
|
|
3
|
-
specs:
|
|
4
|
-
git (1.2.5)
|
|
5
|
-
jeweler (1.8.3)
|
|
6
|
-
bundler (~> 1.0)
|
|
7
|
-
git (>= 1.2.5)
|
|
8
|
-
rake
|
|
9
|
-
rdoc
|
|
10
|
-
json (1.6.5)
|
|
11
|
-
json (1.6.5-java)
|
|
12
|
-
rake (0.9.2.2)
|
|
13
|
-
rdoc (3.12)
|
|
14
|
-
json (~> 1.4)
|
|
15
|
-
shoulda (3.0.1)
|
|
16
|
-
shoulda-context (~> 1.0.0)
|
|
17
|
-
shoulda-matchers (~> 1.0.0)
|
|
18
|
-
shoulda-context (1.0.0)
|
|
19
|
-
shoulda-matchers (1.0.0)
|
|
20
|
-
|
|
21
|
-
PLATFORMS
|
|
22
|
-
java
|
|
23
|
-
ruby
|
|
24
|
-
|
|
25
|
-
DEPENDENCIES
|
|
26
|
-
bundler (>= 1.0.21)
|
|
27
|
-
jeweler
|
|
28
|
-
rdoc
|
|
29
|
-
shoulda
|