ndfrt 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f83510323baec54e499e676d6fd287d68d7d59a4
4
- data.tar.gz: 40d26c69554f2c923b64c097ef3ad6e8e0b7a0a3
3
+ metadata.gz: 7fd7cff6e15bc8187df7f38539bdc8ea075d6c83
4
+ data.tar.gz: 4c2f3751cde4f07f972d87bf0266df5b4210469d
5
5
  SHA512:
6
- metadata.gz: 2dbe4c29dec6d77b66e0e55a78e181b2cf2ade21f6076083a41597de8a718796d4bc3ebf141b89479f3728947c1d2bb7c16d18c4309f3a71dab9febad7283c1c
7
- data.tar.gz: 733e811672c5a2372aea9529e1d085e0aadf0070c0f38355ed08b162aff9a738144c2d2bb3418600340f55e9591326c217599e050f46a2440053594d2ceea0ab
6
+ metadata.gz: 0cbd2f3fe7d1a9c9660619b8f4124a44382a9180f08bef0764449f358d96f64d41879cea87ccd218f468fd88ce804d053a1c2d495c213526d678b936521ccc1b
7
+ data.tar.gz: 7cb75fcd6cef67c5477d945eb9392217215d207d724fe8e96354a57e550e58ae2bbd7dd286a3314533ce3d087c29070d54ca7a890a9b8e7271e21441934ad3c2
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ notifications:
6
+ email: false
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'nori'
4
+ gem 'nokogiri'
5
+ gem 'titleize'
6
+
7
+ group :test do
8
+ gem 'rake'
9
+ gem 'rspec'
10
+ end
@@ -0,0 +1,28 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.2.4)
5
+ mini_portile (0.5.2)
6
+ nokogiri (1.6.0)
7
+ mini_portile (~> 0.5.0)
8
+ nori (2.3.0)
9
+ rake (10.1.0)
10
+ rspec (2.14.1)
11
+ rspec-core (~> 2.14.0)
12
+ rspec-expectations (~> 2.14.0)
13
+ rspec-mocks (~> 2.14.0)
14
+ rspec-core (2.14.7)
15
+ rspec-expectations (2.14.3)
16
+ diff-lcs (>= 1.1.3, < 2.0)
17
+ rspec-mocks (2.14.4)
18
+ titleize (1.3.0)
19
+
20
+ PLATFORMS
21
+ ruby
22
+
23
+ DEPENDENCIES
24
+ nokogiri
25
+ nori
26
+ rake
27
+ rspec
28
+ titleize
@@ -29,7 +29,7 @@ class NDFRT
29
29
  end
30
30
 
31
31
  def possible_kinds
32
- get_options "kind"
32
+ get_options("kind").map { |k| k.split('_')[0...-1].join('_').downcase }
33
33
  end
34
34
 
35
35
  def possible_properties
@@ -0,0 +1,38 @@
1
+ class NDFRT
2
+ class Concept
3
+ attr_accessor :name, :nui, :kind
4
+
5
+ def initialize concept_hash
6
+ unless [:concept_name, :concept_nui, :concept_kind].all? { |k| concept_hash.has_key? k }
7
+ raise ArgumentError, "You must supply a hash with the conecept's name, nui and kind"
8
+ end
9
+ @name = concept_hash[:concept_name].capitalize
10
+ @nui = concept_hash[:concept_nui]
11
+ @kind = titleize_kind concept_hash[:concept_kind]
12
+ end
13
+
14
+ def to_s
15
+ name
16
+ end
17
+
18
+ def == concept
19
+ self.instance_variables.each do |i|
20
+ equal = (self.instance_variable_get(i) == concept.instance_variable_get(i))
21
+ return equal if !equal
22
+ end
23
+ true
24
+ end
25
+
26
+ def extended_information
27
+ NDFRT.new.get_info self.nui
28
+ end
29
+ alias_method :extended_info, :extended_information
30
+
31
+ private
32
+
33
+ def titleize_kind str
34
+ str.split("_")[0...-1].map(&:capitalize).join(" ") if str.is_a? String
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,24 @@
1
+ class NDFRT
2
+ class Interaction
3
+ attr_accessor :drugs, :nui, :severity
4
+
5
+ def initialize interaction_hash
6
+ concepts = interaction_hash[:group_concepts][:concept]
7
+
8
+ @drugs = extract_drugs concepts
9
+ @nui = extract_interaction_id concepts
10
+ @severity = interaction_hash[:severity]
11
+ end
12
+
13
+ private
14
+
15
+ def extract_drugs concepts
16
+ concepts.select { |c| c[:concept_kind] != 'DRUG_INTERACTION_KIND' }.map{ |c| NDFRT::Concept.new(c) }
17
+ end
18
+
19
+ def extract_interaction_id concepts
20
+ concepts.select { |c| c[:concept_kind] == 'DRUG_INTERACTION_KIND' }.first[:concept_nui]
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,3 @@
1
+ class NDFRT
2
+ VERSION = '0.0.2'
3
+ end
@@ -0,0 +1,27 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'ndfrt/version'
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = 'ndfrt'
7
+ gem.version = NDFRT::VERSION
8
+
9
+ gem.summary = "A ruby wrapper to the NDF-RT RESTful API"
10
+ gem.description = "A ruby-based way of interacting with the NDF-RT RESTful API (http://rxnav.nlm.nih.gov/NdfrtAPIREST.html)"
11
+ gem.license = 'MIT'
12
+
13
+ gem.authors = ['Jonathan Bender']
14
+ gem.email = 'jlbender@gmail.com'
15
+ gem.homepage = 'http://github.com/jbender/ndfrt_ruby'
16
+
17
+ gem.add_dependency('nori')
18
+ gem.add_dependency('nokogiri')
19
+ gem.add_dependency('rake')
20
+
21
+ gem.add_development_dependency('rspec', [">= 2.0.0"])
22
+
23
+ gem.files = `git ls-files`.split($/)
24
+ gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
26
+ gem.require_paths = ["lib"]
27
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndfrt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Bender
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nori
@@ -72,11 +72,18 @@ executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
+ - .travis.yml
76
+ - Gemfile
77
+ - Gemfile.lock
78
+ - README.md
75
79
  - Rakefile
76
80
  - lib/ndfrt.rb
81
+ - lib/ndfrt/concept.rb
82
+ - lib/ndfrt/interaction.rb
83
+ - lib/ndfrt/version.rb
84
+ - ndfrt.gemspec
77
85
  - spec/ndfrt_spec.rb
78
- - README.md
79
- homepage: http://github.com/jbender/ndfrt_rails
86
+ homepage: http://github.com/jbender/ndfrt_ruby
80
87
  licenses:
81
88
  - MIT
82
89
  metadata: {}
@@ -100,4 +107,5 @@ rubygems_version: 2.1.10
100
107
  signing_key:
101
108
  specification_version: 4
102
109
  summary: A ruby wrapper to the NDF-RT RESTful API
103
- test_files: []
110
+ test_files:
111
+ - spec/ndfrt_spec.rb