strain-code 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef54441ed7eb018a37e99b16ec58a9c9ef16e0f1338f1f785f3ebe2db1a432cf
4
- data.tar.gz: d4c653cc8d490150ce4b892c44062dbc718d45f39ad05c9a5ba212ce4a6e7e03
3
+ metadata.gz: d36277fb9a7a63f76c5c9e87d3f4ab24673621d7c74d6706cf3af1c7ccd5f0c5
4
+ data.tar.gz: f2dc0c7dcb3f2e2a9d2088730502c89b3a72f9fb89b8a80aea70834bce1f188e
5
5
  SHA512:
6
- metadata.gz: 95bd9c3ea251c15da59776692dddfa4ae4a14fb56c122a8e166f825fadc9fc373e4d33f66eac8bde94c6eb8748f045137ed87072cf5d752c157447ddaa4ff897
7
- data.tar.gz: '08008703c1d9e02afd544901365d4bee620d1f78c3772257b36ad8d3885e1610929fc91c958038f4d1bc11a09983312ef08425778aeb5c9e7e5902ac20ad8847'
6
+ metadata.gz: 2cfeddbabda09ed12be7d3fab202941615831fd98268be0bf9642cc1475977c25319d10fa662c8f74d316f7f53ab21b419df0930e17e055e3bea2f98787e6116
7
+ data.tar.gz: 8c994a080414c9f077649f347298ce138b3f027e872c8726a5c034d503083d16c311c75d1a452a0f245705411c55ae8138f579903b4ed73c0232ad5ce3f9863f
@@ -13,22 +13,22 @@ class StrainCode::Catalogue
13
13
  end
14
14
 
15
15
  def catalogue_hash(code)
16
- hsh = catalogues_source['catalogues'].find do |i|
16
+ catalogues_source['catalogues'].find do |i|
17
17
  i['codes'].include? code.to_s.upcase
18
18
  end
19
19
  end
20
20
 
21
21
  def catalogue(code)
22
22
  hsh = catalogue_hash(code)
23
- new(hsh) if hsh
23
+ @catalogue ||= {}
24
+ @catalogue[hsh] ||= new(hsh) if hsh
24
25
  end
25
26
  end
26
27
 
27
28
  attr_accessor :codes, :country_code, :name, :name_en, :organization
28
29
  attr_accessor :url, :url_pattern
29
30
 
30
- def initialize(code)
31
- code = self.class.catalogue_hash(code) unless code.is_a?(Hash)
32
- code.each { |k, v| self.send("#{k}=", v) unless k =~ /^_/ } if code
31
+ def initialize(hash)
32
+ hash.each { |k, v| self.send("#{k}=", v) unless k =~ /^_/ }
33
33
  end
34
34
  end
@@ -21,12 +21,12 @@ class StrainCode
21
21
  end
22
22
 
23
23
  def number(number)
24
- StrainCode::StrainNumber.new(StrainCode::Parser.clean(number))
24
+ StrainCode::StrainNumber.strain_number(number)
25
25
  end
26
26
 
27
27
  def catalogue(code)
28
- c = StrainCode::Catalogue.new(code)
29
- c.codes ? c : nil
28
+ c = StrainCode::Catalogue.catalogue(code)
29
+ c if c&.codes
30
30
  end
31
31
  end
32
32
  end
@@ -1,6 +1,12 @@
1
1
  class StrainCode::StrainNumber
2
2
  attr_accessor :ori_number, :code, :accession
3
3
 
4
+ class << self
5
+ def strain_number(number)
6
+ new(StrainCode::Parser.clean(number))
7
+ end
8
+ end
9
+
4
10
  def initialize(number)
5
11
  @ori_number = number.to_s.strip
6
12
  @code, @accession = ori_number.split(/[ :_]+/, 2)
@@ -1,5 +1,5 @@
1
1
  class StrainCode
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
4
4
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
5
5
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strain-code
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis M. Rodriguez-R