mizlab 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +20 -0
  3. data/lib/mizlab/version.rb +1 -1
  4. data/lib/mizlab.rb +46 -5
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66e83019b3716a3b8bdb55bd6d14df9764821fe394547f3d54e34f26ca5bab06
4
- data.tar.gz: 794444eaeff6a46f8e3cddc1e6173b746df7eab24a7b1fd1454dac8c4e4bc79d
3
+ metadata.gz: 4407f6c76b786fe0c6bdc8a70ef04bbbd721bf247cf9d96de66be8300e137dbe
4
+ data.tar.gz: f404ba612019c0f19f28f7da7d660c31c7eb2a53bba962f1e495be25a19fe52e
5
5
  SHA512:
6
- metadata.gz: 9bd7ab8e6be7264a6ba6a392685a271755320c555a459b1554797577f57ab387ce5e45762cd20341fa6749dc9117f4ac216d1a62d388d8386e2fd7b17a526761
7
- data.tar.gz: fa475f06c3d361eff8bd3c19787e26ec973daca6a73e66f6bdccb414e4ddba5abe10a544ca2eb002f9c26eee6c532b4dbb964ea6eac6a66fa9f28a4ef69a2514
6
+ metadata.gz: adbe76a35b85afff62667f50be8913936486ad9928edb51d9ded44ab20b4c9c30ecb3a106f8b92474c998d55630d85aeebe40aa678a2c4ec0ef81c887480c181
7
+ data.tar.gz: dee0b71988bb5b80103984d9f81b8cba8156d3ebce89728a423ee9e3517011444e4ac1ef13cd692ebb88caa3f1f2d8e6f44e839e5a812100211ba5326014d801
data/Rakefile CHANGED
@@ -16,4 +16,24 @@ YARD::Rake::YardocTask.new do |t|
16
16
  t.stats_options = ["--list-undoc"]
17
17
  end
18
18
 
19
+ desc "Version up"
20
+ task :versionup do
21
+ version = ""
22
+ File.open("./lib/mizlab/version.rb") do |f|
23
+ version = f.read[(/(\d+\.\d+\.\d+)/)]
24
+ end
25
+ ver, minor_ver, hotfix = version.split(".")
26
+ hotfix = hotfix.to_i + 1
27
+ new_version = "#{ver}.#{minor_ver}.#{hotfix}"
28
+ cmd = "sed -E -i 's/[0-9]+\\.[0-9]+\\.[0-9]+/#{new_version}/' ./lib/mizlab/version.rb"
29
+ puts(cmd)
30
+ system(cmd)
31
+ cmd = "git add ./lib/mizlab/version.rb && git commit -m ':rocket: Version up'"
32
+ puts(cmd)
33
+ system(cmd)
34
+ cmd = "git tag v#{new_version}"
35
+ puts(cmd)
36
+ system(cmd)
37
+ end
38
+
19
39
  task default: :test
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mizlab
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
data/lib/mizlab.rb CHANGED
@@ -7,22 +7,63 @@ require "stringio"
7
7
 
8
8
  module Mizlab
9
9
  class << self
10
+ # Get entry as String. You can also give a block.
11
+ # @param [String/Array] accessions Accession numbers like ["NC_012920", ...].
12
+ # @return [String] Entry as string.
13
+ # @yield [String] Entry as string.
14
+ def getent(accessions, is_protein = false)
15
+ accessions = accessions.is_a?(String) ? [accessions] : accessions
16
+ accessions.each do |acc|
17
+ ret = is_protein ? fetch_protein(acc) : fetch_nucleotide(acc)
18
+ if block_given?
19
+ yield ret
20
+ else
21
+ return ret
22
+ end
23
+ sleep(0.37) # Using 0.333... seconds, sometimes hit the NCBI rate limit
24
+ end
25
+ end
26
+
10
27
  # Fetch data via genbank. You can also give a block.
11
28
  # @param [String/Array] accessions Accession numbers Like ["NC_012920", ...].
12
29
  # @param [Bool] is_protein wheather the accession is protein. Default to true.
13
30
  # @return [Bio::GenBank] GenBank object.
31
+ # @yield [Bio::GenBank] GenBank object.
14
32
  def getobj(accessions, is_protein = false)
15
- accessions = accessions.is_a?(String) ? [accessions] : accessions
16
- accessions.each do |acc|
17
- ret = is_protein ? fetch_protein(acc) : fetch_nucleotide(acc)
18
- parse(ret) do |o|
33
+ getent(accessions, is_protein) do |entry|
34
+ parse(entry) do |o|
19
35
  if block_given?
20
36
  yield o
21
37
  else
22
38
  return o
23
39
  end
24
40
  end
25
- sleep(0.37) # Using 0.333... seconds, sometimes hit the NCBI rate limit
41
+ end
42
+ end
43
+
44
+ # Save object.
45
+ # @param [String] filename Filepath from executed source.
46
+ # @param [Bio::DB] obj Object which inherits from `Bio::DB`.
47
+ # @return [nil]
48
+ def savefile(filename, obj)
49
+ if File.exists?(filename)
50
+ yes = Set.new(["N", "n", "no"])
51
+ no = Set.new(["Y", "y", "yes"])
52
+ loop do
53
+ print("#{filename} exists already. Overwrite? [y/n] ")
54
+ inputed = gets.rstrip
55
+ if yes.include?(inputed)
56
+ return
57
+ elsif no.include?(inputed)
58
+ break
59
+ end
60
+ puts("You should input 'y' or 'n'")
61
+ end
62
+ end
63
+ File.open(filename, "w") do |f|
64
+ obj.tags.each do |t|
65
+ f.puts(obj.get(t))
66
+ end
26
67
  end
27
68
  end
28
69
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mizlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Omochice