diff options
Diffstat (limited to 'lib/data_entry.rb')
-rw-r--r-- | lib/data_entry.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/data_entry.rb b/lib/data_entry.rb new file mode 100644 index 0000000..9f6e786 --- /dev/null +++ b/lib/data_entry.rb @@ -0,0 +1,36 @@ +module OpenTox + + class DataEntry + #field :feature_id, type: BSON::ObjectId + #field :compound_id, type: BSON::ObjectId + # Kludge because csv import removes type information + field :feature_id, type: String + field :compound_id, type: String + field :value + field :warnings, type: String + field :unit, type: String + store_in collection: "data_entries" + + # preferred method for the insertion of data entries + # @example DataEntry.find_or_create compound,feature,value + # @param compound [OpenTox::Compound] + # @param feature [OpenTox::Feature] + # @param value + def self.find_or_create compound, feature, value + self.find_or_create_by( + :compound_id => compound.id, + :feature_id => feature.id, + :value => value + ) + end + + # preferred method for accessing values + # @example DataEntry[compound,feature] + # @param compound [OpenTox::Compound] + # @param feature [OpenTox::Feature] + # @return value + def self.[](compound,feature) + self.where(:compound_id => compound.id.to_s, :feature_id => feature.id.to_s).distinct(:value).first + end + end +end |