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 +4 -4
- data/.travis.yml +6 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +28 -0
- data/lib/ndfrt.rb +1 -1
- data/lib/ndfrt/concept.rb +38 -0
- data/lib/ndfrt/interaction.rb +24 -0
- data/lib/ndfrt/version.rb +3 -0
- data/ndfrt.gemspec +27 -0
- metadata +13 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fd7cff6e15bc8187df7f38539bdc8ea075d6c83
|
4
|
+
data.tar.gz: 4c2f3751cde4f07f972d87bf0266df5b4210469d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cbd2f3fe7d1a9c9660619b8f4124a44382a9180f08bef0764449f358d96f64d41879cea87ccd218f468fd88ce804d053a1c2d495c213526d678b936521ccc1b
|
7
|
+
data.tar.gz: 7cb75fcd6cef67c5477d945eb9392217215d207d724fe8e96354a57e550e58ae2bbd7dd286a3314533ce3d087c29070d54ca7a890a9b8e7271e21441934ad3c2
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -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
|
data/lib/ndfrt.rb
CHANGED
@@ -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
|
data/ndfrt.gemspec
ADDED
@@ -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.
|
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-
|
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
|
-
|
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
|