unidom-stapar 0.4 → 0.5

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: 2a0e9dacdb2f6ac07c4f3dfd2c1ea51be5e0d5dabc8bba539c8c9dcacce49aae
4
- data.tar.gz: e779aa108d78407a7a20f0a9912f9aa5282246b4f77c15708738f4717575a44b
3
+ metadata.gz: dbfcbda29d967437d90d3d8578b33a801600a050ccb72f32ef81e801c2e101ce
4
+ data.tar.gz: e93dd8faf4d27b239fd6f4b1d3af472428875aab451b871ff0fd038831a31bc4
5
5
  SHA512:
6
- metadata.gz: 1aa287850f774552ab4b96306da2fce852970e00126332f0aa8be9b05e24fd0aaa72508ef98cbc2bb16058c15060955d23dfead5aea0fdc60b048992d5183aea
7
- data.tar.gz: ec65474ff75be570d78d892ebd595f1fb0024da6a90e75fd3ed7ef3537ab160b0894faf8a62f42245b08b1f1df179f0baa986016535979671359877ac00f743a
6
+ metadata.gz: 323b9e86fe4c642f7e3c4a58b5582bb772a546116b6f071fa3b6e69b920807e6d8c6b1f11257e3edff3f5d43d101ed426848a4811266558a9a5bc8dd859a5dcc
7
+ data.tar.gz: 80d4fd85e3f7a682b423a01d9da92b0814540f0d1d01aafca504c7e1ba35bea5951462ca5819b7be4441cc6011ebdf7956e1d272512fc7f28c477a55611e440b
@@ -14,7 +14,7 @@ module Unidom::Stapar
14
14
  validates :data_format_version, presence: true, numericality: { greater_than: 0, less_than_or_equal_to: Unidom::Common::MAXIMUM_AMOUNT, only_integer: true }
15
15
  validates :applied_species, presence: true, length: { in: 2..self.columns_hash['applied_species'].limit }
16
16
 
17
- #has_many :features
17
+ has_many :features, class_name: 'Unidom::Stapar::Feature'
18
18
 
19
19
  code :applied_field, Unidom::Stapar::AppliedField
20
20
 
@@ -1,27 +1,30 @@
1
1
  ##
2
2
  # As Feature 是特征的领域逻辑关注点。
3
3
 
4
- module Unidom::Stapar::Concerns::AsFeature
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsFeature
5
7
 
6
- extend ActiveSupport::Concern
8
+ extend ActiveSupport::Concern
7
9
 
8
- included do |includer|
10
+ included do |includer|
9
11
 
10
- validates :extracted_link, allow_blank: true, length: { in: 4..self.class.columns_hash[:extracted_link].limit }
11
- validates :feature_link, presence: true, length: { in: 4..self.class.columns_hash[:feature_link].limit }
12
+ belongs_to :sample, class_name: 'Unidom::Stapar::Sample'
13
+ belongs_to :classifier, class_name: 'Unidom::Stapar::Classifier'
12
14
 
13
- belongs_to :classifier, class_name: 'Unidom::Stapar::Classifier'
14
- belongs_to :sample, polymorphic: true
15
+ scope :classified_by, -> (classifier) { where classifier_id: to_id(classifier) }
16
+ scope :extracted_from, -> (sample) { where sample: sample }
15
17
 
16
- scope :classified_by, -> (classifier) { where classifier_id: to_id(classifier) }
17
- scope :extracted_from, -> (sample) { where sample: sample }
18
- scope :extracted_link_is, -> (extracted_link) { where extracted_link: extracted_link }
19
- scope :feature_link_is, -> (feature_link) { where feature_link: feature_link }
18
+ #def is_classified!(into: nil, per: nil, by: nil, at: Time.now)
19
+ # create! sample: self, classifier: by, extracted_link: per, feature_link: into, opened_at: at
20
+ #end
20
21
 
21
- end
22
+ end
22
23
 
23
- module ClassMethods
24
+ module ClassMethods
24
25
 
25
- end
26
+ end
26
27
 
28
+ end
29
+ end
27
30
  end
@@ -0,0 +1,23 @@
1
+ ##
2
+ # As Input Feature 是模式匹配中输入模式的逻辑关注点。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsInputFeature
7
+
8
+ extend ActiveSupport::Concern
9
+
10
+ included do |includer|
11
+
12
+ has_many :matched_pattern_matchings, class_name: 'Unidom::Stapar::PatternMatching', as: :input
13
+ has_many :matched_patterns, through: :matched_pattern_matchings, source: :matched, source_type: 'Unidom::Stapar::Feature'
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ ##
2
+ # As Input Sample 是模式匹配中输入样本的逻辑关注点。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsInputSample
7
+
8
+ extend ActiveSupport::Concern
9
+ extend AsSample
10
+
11
+ included do |includer|
12
+
13
+ #includer.class_eval do
14
+ # include AsSample
15
+ #end
16
+
17
+ has_many :matched_pattern_matchings, through: :features, as: :input #, class_name: 'Unidom::Stapar::PatternMatching'
18
+ has_many :matched_patterns, through: :matched_pattern_matchings, source: :matched, source_type: 'Unidom::Stapar::Feature'
19
+ has_many :matched_samples, through: :matched_patterns, source: :sample
20
+
21
+ end
22
+
23
+ module ClassMethods
24
+
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ ##
2
+ # As Matched Feature 是模式匹配中匹配模式的逻辑关注点。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsMatchedFeature
7
+
8
+ extend ActiveSupport::Concern
9
+
10
+ included do |includer|
11
+
12
+ has_many :input_pattern_matchings, class_name: 'Unidom::Stapar::PatternMatching', as: :matched
13
+ has_many :input_patterns, through: :matched_pattern_matchings, source: :input, source_type: 'Unidom::Stapar::Feature'
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ ##
2
+ # As Matched Sample 是模式匹配中匹配样本的逻辑关注点。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsMatchedSample
7
+
8
+ extend ActiveSupport::Concern
9
+ extend AsSample
10
+
11
+ included do |includer|
12
+
13
+ #includer.class_eval do
14
+ # include AsSample
15
+ #end
16
+
17
+ has_many :input_pattern_matchings, through: :features, as: :matched #, class_name: 'Unidom::Stapar::PatternMatching'
18
+ has_many :input_patterns, through: :input_pattern_matchings, source: :input, source_type: 'Unidom::Stapar::Feature'
19
+ has_many :input_samples, through: :input_patterns, source: :sample
20
+
21
+ end
22
+
23
+ module ClassMethods
24
+
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ ##
2
+ # As Pattern 是模式的领域逻辑关注点,主要与模式库交互。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsPattern
7
+
8
+ extend ActiveSupport::Concern
9
+
10
+ included do |includer|
11
+
12
+ has_many :pattern_library_inclusions, class_name: 'Unidom::Stapar::PatternLibraryInclusion'
13
+ has_many :pattern_libraries, through: :pattern_library_inclusions
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -1,27 +1,24 @@
1
1
  ##
2
2
  # As Sample 是采样的领域逻辑关注点。
3
3
 
4
- module Unidom::Stapar::Concerns::AsSample
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsSample
5
7
 
6
- extend ActiveSupport::Concern
8
+ extend ActiveSupport::Concern
7
9
 
8
- included do |includer|
10
+ included do |includer|
9
11
 
10
- validates :raw_data_link, presence: true, length: { in: 4..self.class.columns_hash[:raw_data_link].limit }
11
- validates :sampled_at, presence: true
12
+ belongs_to :substance, polymorphic: true
13
+ has_many :features, class_name: 'Unidom::Stapar::Feature'
14
+ #has_many :pattern_library_inclusions, through: :features
15
+ #has_many :pattern_libraries, through: :pattern_library_inclusions
12
16
 
13
- has_many :features, polymorphic: true
17
+ end
14
18
 
15
- scope :raw_data_link_is, -> (raw_data_link) { where raw_data_link: raw_data_link }
19
+ module ClassMethods
20
+ end
16
21
 
17
- def is_classified!(into: nil, per: nil, by: nil, at: Time.now)
18
- create! sample: self, classifier: by, extracted_link: per, feature_link: into, opened_at: at
19
22
  end
20
-
21
23
  end
22
-
23
- module ClassMethods
24
-
25
- end
26
-
27
24
  end
@@ -0,0 +1,24 @@
1
+ ##
2
+ # As Substance 是被取样的客体的领域逻辑关注点。
3
+
4
+ module Unidom::Stapar
5
+ module Concerns
6
+ module AsSubstance
7
+
8
+ extend ActiveSupport::Concern
9
+
10
+ included do |includer|
11
+
12
+ has_many :samples, class_name: 'Unidom::Stapar::Sample'
13
+ # has_many :features, through: :samples
14
+ # has_many :classifiers, through: :features, distinct: true
15
+
16
+ end
17
+
18
+ module ClassMethods
19
+
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ # Feature 表示特征记录。
2
+
3
+ module Unidom::Stapar
4
+ class Feature < ApplicationRecord
5
+
6
+ self.table_name = 'unidom_features'
7
+
8
+ include Unidom::Common::Concerns::ModelExtension
9
+ include ProgneTapera::EnumCode
10
+ include Unidom::Stapar::Concerns::AsFeature
11
+ include Unidom::Stapar::Concerns::AsPattern
12
+ include Unidom::Stapar::Concerns::AsInputFeature
13
+ include Unidom::Stapar::Concerns::AsMatchedFeature
14
+
15
+ validates :extracted_link, presence: true, length: { in: 4..self.columns_hash['extracted_link'].limit }
16
+ validates :extracted_mime_type, presence: true, length: { in: 4..self.columns_hash['extracted_mime_type'].limit }
17
+ validates :extracted_file_size, presence: true, numericality: { greater_than_or_equal_to: -1, less_than_or_equal_to: Unidom::Common::MAXIMUM_AMOUNT, only_integer: true }
18
+
19
+ validates :feature_link, presence: true, length: { in: 4..self.columns_hash['feature_link'].limit }
20
+ validates :feature_mime_type, presence: true, length: { in: 4..self.columns_hash['feature_mime_type'].limit }
21
+ validates :feature_file_size, presence: true, numericality: { greater_than_or_equal_to: -1, less_than_or_equal_to: Unidom::Common::MAXIMUM_AMOUNT, only_integer: true }
22
+
23
+ scope :extracted_link_is, -> (extracted_link) { where extracted_link: extracted_link }
24
+ scope :feature_link_is, -> (feature_link) { where feature_link: feature_link }
25
+
26
+ end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Feature'
27
+ end
@@ -0,0 +1,23 @@
1
+ # Sample 表示采样记录。
2
+
3
+ module Unidom::Stapar
4
+ class Sample < ApplicationRecord
5
+
6
+ self.table_name = 'unidom_samples'
7
+
8
+ include Unidom::Common::Concerns::ModelExtension
9
+ include ProgneTapera::EnumCode
10
+ #include Unidom::Stapar::Concerns::AsSample
11
+ include Unidom::Stapar::Concerns::AsInputSample
12
+ include Unidom::Stapar::Concerns::AsMatchedSample
13
+
14
+ validates :raw_data_link, presence: true, length: { in: 4..self.columns_hash['raw_data_link'].limit }
15
+ validates :raw_data_mime_type, presence: true, length: { in: 4..self.columns_hash['raw_data_mime_type'].limit }
16
+ validates :raw_data_file_size, presence: true, numericality: { greater_than_or_equal_to: -1, less_than_or_equal_to: Unidom::Common::MAXIMUM_AMOUNT, only_integer: true }
17
+
18
+ validates :sampled_at, presence: true
19
+
20
+ scope :raw_data_link_is, -> (raw_data_link) { where raw_data_link: raw_data_link }
21
+
22
+ end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Sample'
23
+ end
@@ -11,6 +11,7 @@ class CreateUnidomPatternMatchings < ActiveRecord::Migration[6.0]
11
11
 
12
12
  t.decimal :similarity_percentage, null: false, default: 0.0, precision: 12, scale: 2
13
13
  t.integer :valve_percentage, null: false, default: 0
14
+ t.integer :priority, null: false, default: 0
14
15
 
15
16
  t.text :instruction
16
17
  t.text :description
@@ -0,0 +1,32 @@
1
+ class CreateUnidomSamples < ActiveRecord::Migration[6.0]
2
+
3
+ def change
4
+
5
+ create_table :unidom_samples, id: :uuid do |t|
6
+
7
+ t.references :substance, type: :uuid, null: false,
8
+ polymorphic: { null: false, default: '', limit: 200 }, index: false
9
+
10
+ t.string :raw_data_link, null: false, default: '', limit: 200
11
+ t.string :raw_data_mime_type, null: false, default: '', limit: 200
12
+ t.integer :raw_data_file_size, null: false, default: 0
13
+ t.datetime :sampled_at, null: false, default: Unidom::Common::CLOSED_AT
14
+
15
+ t.text :instruction
16
+ t.text :description
17
+
18
+ t.column :state, 'char(1)', null: false, default: Unidom::Common::STATE
19
+ t.datetime :opened_at, null: false, default: Unidom::Common::OPENED_AT
20
+ t.datetime :closed_at, null: false, default: Unidom::Common::CLOSED_AT
21
+ t.boolean :defunct, null: false, default: false
22
+ t.jsonb :notation, null: false, default: {}
23
+
24
+ t.timestamps null: false
25
+
26
+ end
27
+
28
+ add_index :unidom_samples, :substance_id
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,35 @@
1
+ class CreateUnidomFeatures < ActiveRecord::Migration[6.0]
2
+
3
+ def change
4
+
5
+ create_table :unidom_features, id: :uuid do |t|
6
+
7
+ t.references :sample, type: :uuid, null: false
8
+ t.references :classifier, type: :uuid, null: false
9
+
10
+ t.string :extracted_link, null: false, default: '', limit: 200
11
+ t.string :extracted_mime_type, null: false, default: '', limit: 200
12
+ t.integer :extracted_file_size, null: false, default: 0
13
+
14
+ t.string :feature_link, null: false, default: '', limit: 200
15
+ t.string :feature_mime_type, null: false, default: '', limit: 200
16
+ t.integer :feature_file_size, null: false, default: 0
17
+
18
+ t.integer :grade, null: false, default: 0
19
+
20
+ t.text :instruction
21
+ t.text :description
22
+
23
+ t.column :state, 'char(1)', null: false, default: Unidom::Common::STATE
24
+ t.datetime :opened_at, null: false, default: Unidom::Common::OPENED_AT
25
+ t.datetime :closed_at, null: false, default: Unidom::Common::CLOSED_AT
26
+ t.boolean :defunct, null: false, default: false
27
+ t.jsonb :notation, null: false, default: {}
28
+
29
+ t.timestamps null: false
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -8,6 +8,8 @@ class CreateUnidomPatternLibraryInclusions < ActiveRecord::Migration[6.0]
8
8
  t.references :pattern, type: :uuid, null: false,
9
9
  polymorphic: { null: false, default: '', limit: 200 }, index: false
10
10
 
11
+ t.integer :priority, null: false, default: 0
12
+
11
13
  t.text :instruction
12
14
  t.text :description
13
15
 
@@ -0,0 +1,60 @@
1
+ require 'rails_helper'
2
+
3
+ describe Unidom::Stapar::Feature, type: :model do
4
+
5
+ before :each do
6
+ end
7
+
8
+ after :each do
9
+ end
10
+
11
+ context do
12
+
13
+ classifier = Unidom::Stapar::Classifier.first_or_create! supplier_name: 'Intelligent Works',
14
+ algorithm_name: 'FR Pro',
15
+ data_format_version: 1,
16
+ applied_species: 'Homo sapiens',
17
+ applied_field_code: 'FACE'
18
+ substance = classifier
19
+
20
+ sample = Unidom::Stapar::Sample.first_or_create! substance_id: substance.id,
21
+ substance_type: substance.class.name,
22
+ raw_data_link: 'https://objectstore/{id}.jpg',
23
+ raw_data_mime_type: 'image/jpeg',
24
+ raw_data_file_size: 1.megabytes,
25
+ sampled_at: Time.now
26
+
27
+ model_attributes = {
28
+ sample_id: sample.id,
29
+ classifier_id: classifier.id,
30
+ extracted_link: 'https://objectstore/{id}/extracted/{sequence}.jpg',
31
+ extracted_mime_type: 'image/jpeg',
32
+ extracted_file_size: 64.kilobytes,
33
+ feature_link: 'https://objectstore/{id}/feature/{sequence}.bin',
34
+ feature_mime_type: 'application/octet-stream',
35
+ feature_file_size: 2.kilobytes,
36
+ grade: 60
37
+ }
38
+
39
+ it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
40
+
41
+ it_behaves_like 'validates text', model_attributes, :extracted_link,
42
+ length: 4..described_class.columns_hash['extracted_link'].limit
43
+ it_behaves_like 'validates text', model_attributes, :extracted_mime_type,
44
+ length: 4..described_class.columns_hash['extracted_mime_type'].limit
45
+ it_behaves_like 'validates numericality', model_attributes, :extracted_file_size,
46
+ range: -1..Unidom::Common::MAXIMUM_AMOUNT, minimum_inclusive: true, maximum_inclusive: true, only_integer: true
47
+
48
+ it_behaves_like 'validates text', model_attributes, :feature_link,
49
+ length: 4..described_class.columns_hash['feature_link'].limit
50
+ it_behaves_like 'validates text', model_attributes, :feature_mime_type,
51
+ length: 4..described_class.columns_hash['feature_mime_type'].limit
52
+ it_behaves_like 'validates numericality', model_attributes, :feature_file_size,
53
+ range: -1..Unidom::Common::MAXIMUM_AMOUNT, minimum_inclusive: true, maximum_inclusive: true, only_integer: true
54
+
55
+ #it_behaves_like 'validates numericality', model_attributes, :grade,
56
+ # range: 0..Unidom::Common::MAXIMUM_AMOUNT, minimum_inclusive: true, maximum_inclusive: true, only_integer: true
57
+
58
+ end
59
+
60
+ end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Feature'
@@ -31,6 +31,8 @@ describe Unidom::Stapar::PatternMatching, type: :model do
31
31
  range: 0..100, minimum_inclusive: false, maximum_inclusive: true, only_integer: false
32
32
  it_behaves_like 'validates numericality', model_attributes, :valve_percentage,
33
33
  range: 0..100, minimum_inclusive: false, maximum_inclusive: true, only_integer: true
34
+ #it_behaves_like 'validates numericality', model_attributes, :priority,
35
+ # range: 0..100, minimum_inclusive: false, maximum_inclusive: true, only_integer: true
34
36
 
35
37
  end
36
38
 
@@ -0,0 +1,40 @@
1
+ require 'rails_helper'
2
+
3
+ describe Unidom::Stapar::Sample, type: :model do
4
+
5
+ before :each do
6
+ end
7
+
8
+ after :each do
9
+ end
10
+
11
+ context do
12
+
13
+ classifier = Unidom::Stapar::Classifier.first_or_create! supplier_name: 'Intelligent Works',
14
+ algorithm_name: 'FR Pro',
15
+ data_format_version: 1,
16
+ applied_species: 'Homo sapiens',
17
+ applied_field_code: 'FACE'
18
+ substance = classifier
19
+
20
+ model_attributes = {
21
+ substance_id: substance.id,
22
+ substance_type: substance.class.name,
23
+ raw_data_link: 'https://objectstore/{id}.jpg',
24
+ raw_data_mime_type: 'image/jpeg',
25
+ raw_data_file_size: 1.megabytes,
26
+ sampled_at: Time.now,
27
+ }
28
+
29
+ it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
30
+
31
+ it_behaves_like 'validates text', model_attributes, :raw_data_link,
32
+ length: 4..described_class.columns_hash['raw_data_link'].limit
33
+ it_behaves_like 'validates text', model_attributes, :raw_data_mime_type,
34
+ length: 4..described_class.columns_hash['raw_data_mime_type'].limit
35
+ it_behaves_like 'validates numericality', model_attributes, :raw_data_file_size,
36
+ range: -1..Unidom::Common::MAXIMUM_AMOUNT, minimum_inclusive: true, maximum_inclusive: true, only_integer: true
37
+
38
+ end
39
+
40
+ end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Sample'
@@ -1,4 +1,6 @@
1
1
  require 'rspec/models/unidom/stapar/classifier_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Classifier'
2
2
  require 'rspec/models/unidom/stapar/pattern_matching_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::PatternMatching'
3
+ require 'rspec/models/unidom/stapar/sample_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Sample'
4
+ require 'rspec/models/unidom/stapar/feature_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::Feature'
3
5
  require 'rspec/models/unidom/stapar/pattern_library_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::PatternLibrary'
4
6
  require 'rspec/models/unidom/stapar/pattern_library_inclusion_spec' unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Stapar::PatternLibraryInclusion'
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Stapar
3
- VERSION = '0.4'
3
+ VERSION = '0.5'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-stapar
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-03 00:00:00.000000000 Z
11
+ date: 2020-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -45,11 +45,19 @@ files:
45
45
  - app/models/unidom/stapar/application_record.rb
46
46
  - app/models/unidom/stapar/classifier.rb
47
47
  - app/models/unidom/stapar/concerns/as_feature.rb
48
+ - app/models/unidom/stapar/concerns/as_input_feature.rb
49
+ - app/models/unidom/stapar/concerns/as_input_sample.rb
50
+ - app/models/unidom/stapar/concerns/as_matched_feature.rb
48
51
  - app/models/unidom/stapar/concerns/as_matched_processor.rb
52
+ - app/models/unidom/stapar/concerns/as_matched_sample.rb
53
+ - app/models/unidom/stapar/concerns/as_pattern.rb
49
54
  - app/models/unidom/stapar/concerns/as_sample.rb
55
+ - app/models/unidom/stapar/concerns/as_substance.rb
56
+ - app/models/unidom/stapar/feature.rb
50
57
  - app/models/unidom/stapar/pattern_library.rb
51
58
  - app/models/unidom/stapar/pattern_library_inclusion.rb
52
59
  - app/models/unidom/stapar/pattern_matching.rb
60
+ - app/models/unidom/stapar/sample.rb
53
61
  - app/types/unidom/stapar/applied_field.rb
54
62
  - app/views/layouts/unidom/stapar/application.html.erb
55
63
  - config/enum.yml
@@ -57,14 +65,18 @@ files:
57
65
  - config/routes.rb
58
66
  - db/migrate/20060101000000_create_unidom_classifiers.rb
59
67
  - db/migrate/20060102000000_create_unidom_pattern_matchings.rb
68
+ - db/migrate/20060103000000_create_unidom_samples.rb
69
+ - db/migrate/20060104000000_create_unidom_features.rb
60
70
  - db/migrate/20060111000000_create_unidom_pattern_libraries.rb
61
71
  - db/migrate/20060112000000_create_unidom_pattern_library_inclusions.rb
62
72
  - lib/rspec/models/unidom/stapar/classifier_spec.rb
63
73
  - lib/rspec/models/unidom/stapar/concerns/as_feature_shared_examples.rb
64
74
  - lib/rspec/models/unidom/stapar/concerns/as_sample_shared_examples.rb
75
+ - lib/rspec/models/unidom/stapar/feature_spec.rb
65
76
  - lib/rspec/models/unidom/stapar/pattern_library_inclusion_spec.rb
66
77
  - lib/rspec/models/unidom/stapar/pattern_library_spec.rb
67
78
  - lib/rspec/models/unidom/stapar/pattern_matching_spec.rb
79
+ - lib/rspec/models/unidom/stapar/sample_spec.rb
68
80
  - lib/rspec/types/unidom/stapar/applied_field_spec.rb
69
81
  - lib/tasks/unidom/stapar_tasks.rake
70
82
  - lib/unidom/stapar.rb