biovision-taxonomy 0.1.210504.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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +8 -0
- data/app/assets/config/biovision_taxonomy_manifest.js +0 -0
- data/app/controllers/admin/taxa_controller.rb +15 -0
- data/app/lib/biovision/components/taxonomy_component.rb +28 -0
- data/app/models/taxon.rb +62 -0
- data/app/models/taxon_component.rb +13 -0
- data/app/models/taxon_user.rb +16 -0
- data/app/views/admin/taxa/_form.html.erb +19 -0
- data/app/views/admin/taxa/_nav_item.html.erb +6 -0
- data/app/views/admin/taxa/_taxon.jbuilder +31 -0
- data/app/views/admin/taxa/entity/_add_child.html.erb +5 -0
- data/app/views/admin/taxa/entity/_children.html.erb +12 -0
- data/app/views/admin/taxa/entity/_in_list.html.erb +17 -0
- data/app/views/admin/taxa/entity/_in_search.html.erb +4 -0
- data/app/views/admin/taxa/index.html.erb +29 -0
- data/app/views/admin/taxa/search.jbuilder +3 -0
- data/app/views/admin/taxa/show.html.erb +51 -0
- data/config/initializers/taxonomy.rb +3 -0
- data/config/locales/taxonomy-ru.yml +38 -0
- data/config/routes.rb +24 -0
- data/db/migrate/20210504000000_create_taxonomy_component.rb +47 -0
- data/lib/biovision/taxonomy.rb +8 -0
- data/lib/biovision/taxonomy/engine.rb +16 -0
- data/lib/biovision/taxonomy/version.rb +5 -0
- data/lib/tasks/biovision/taxonomy_tasks.rake +4 -0
- metadata +164 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7f4b05dc13d14885e528eea648337050e5debf78d767bb8e858719004ff90f95
|
4
|
+
data.tar.gz: fc899ccb4fd9fe2b70abe9e4dc4e72a39e30047dbfde7eeba3a44020f9eda072
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: da75a24e4062a6aa6e39eb69b3dfd43399e25ccac1dba09982dee43b79932a759ed31e85a461cb1c1b1c7c424d9ef8960e8e2db642fc6861b91c2a268b0fea99
|
7
|
+
data.tar.gz: 498de657adb503de3aa820486d0aa419015230bbf21d682eaacfc06c3d3d650aa5a308182a718675e0cf5841dc1d33b5ad263c050107e6aacf5dfd7c5d27de5f
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2021 Maxim Khan-Magomedov
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# Biovision::Taxonomy
|
2
|
+
Short description and motivation.
|
3
|
+
|
4
|
+
## Usage
|
5
|
+
How to use my plugin.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'biovision-taxonomy'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
```bash
|
21
|
+
$ gem install biovision-taxonomy
|
22
|
+
```
|
23
|
+
|
24
|
+
## Contributing
|
25
|
+
Contribution directions go here.
|
26
|
+
|
27
|
+
## License
|
28
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Handling taxa
|
4
|
+
class Admin::TaxaController < AdminController
|
5
|
+
include CrudEntities
|
6
|
+
include ToggleableEntity
|
7
|
+
|
8
|
+
before_action :set_entity, except: %i[check create index new search]
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def component_class
|
13
|
+
Biovision::Components::TaxonomyComponent
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Biovision
|
4
|
+
module Components
|
5
|
+
# Taxonomy
|
6
|
+
class TaxonomyComponent < BaseComponent
|
7
|
+
def self.dependent_models
|
8
|
+
[Taxon, TaxonUser, TaxonComponent]
|
9
|
+
end
|
10
|
+
|
11
|
+
def use_images?
|
12
|
+
true
|
13
|
+
end
|
14
|
+
|
15
|
+
def administrative_parts
|
16
|
+
%w[taxa]
|
17
|
+
end
|
18
|
+
|
19
|
+
def crud_table_names
|
20
|
+
%w[taxa]
|
21
|
+
end
|
22
|
+
|
23
|
+
def role_tree
|
24
|
+
super.merge({ Taxon.table_name => %w[users components] })
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/app/models/taxon.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Taxon
|
4
|
+
#
|
5
|
+
# Attributes:
|
6
|
+
# children_cache [Array<integer>]
|
7
|
+
# created_at [DateTime]
|
8
|
+
# data [jsonb]
|
9
|
+
# name [string]
|
10
|
+
# nav_text [string]
|
11
|
+
# object_count [integer]
|
12
|
+
# parent_id [integer], optional
|
13
|
+
# parents_cache [string]
|
14
|
+
# priority [integer]
|
15
|
+
# simple_image_id [SimpleImage], optional
|
16
|
+
# slug [string]
|
17
|
+
# updated_at [DateTime]
|
18
|
+
# uuid [uuid]
|
19
|
+
# visible [boolean]
|
20
|
+
class Taxon < ApplicationRecord
|
21
|
+
include Checkable
|
22
|
+
include HasSimpleImage
|
23
|
+
include HasUuid
|
24
|
+
include NestedPriority
|
25
|
+
include Toggleable
|
26
|
+
include TreeStructure
|
27
|
+
|
28
|
+
SLUG_LIMIT = 50
|
29
|
+
|
30
|
+
toggleable :visible
|
31
|
+
|
32
|
+
has_many :taxon_users, dependent: :delete_all
|
33
|
+
|
34
|
+
validates_presence_of :name
|
35
|
+
validates_uniqueness_of :slug, scope: :parent_id
|
36
|
+
|
37
|
+
scope :ordered_by_name, -> { order('name asc') }
|
38
|
+
scope :visible, -> { where(visible: true) }
|
39
|
+
scope :list_for_administration, ->(v = nil) { where(parent_id: v).ordered_by_priority }
|
40
|
+
scope :seacrh, ->(q) { where('name ilike ?', "#{q}%") unless q.blank? }
|
41
|
+
|
42
|
+
# @param [Taxon] entity
|
43
|
+
def self.siblings(entity)
|
44
|
+
where(parent_id: entity&.parent_id)
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.entity_parameters
|
48
|
+
%i[name nav_text priority simple_image_id slug visible]
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.creation_parameters
|
52
|
+
entity_parameters + %i[parent_id]
|
53
|
+
end
|
54
|
+
|
55
|
+
def text_for_link
|
56
|
+
nav_text.blank? ? name : nav_text
|
57
|
+
end
|
58
|
+
|
59
|
+
def long_name
|
60
|
+
(parents.map(&:name) + [text_for_link]).join('/')
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Taxon available to BiovisionComponent
|
4
|
+
#
|
5
|
+
# Attributes:
|
6
|
+
# biovision_component_id [BiovisionComponent]
|
7
|
+
# taxon_id [Taxon]
|
8
|
+
class TaxonComponent < ApplicationRecord
|
9
|
+
belongs_to :taxon
|
10
|
+
belongs_to :biovision_component
|
11
|
+
|
12
|
+
validates_uniqueness_of :biovision_component_id, scope: :taxon_id
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Taxon available to user
|
4
|
+
#
|
5
|
+
# Attributes:
|
6
|
+
# data [JSONb]
|
7
|
+
# user_id [User]
|
8
|
+
# taxon_id [Taxon]
|
9
|
+
class TaxonUser < ApplicationRecord
|
10
|
+
include HasOwner
|
11
|
+
|
12
|
+
belongs_to :taxon
|
13
|
+
belongs_to :user
|
14
|
+
|
15
|
+
validates_uniqueness_of :taxon_id, scope: :user_id
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= form_with(**Biovision::Components::BaseComponent.form_options(entity)) do |f| %>
|
2
|
+
<%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
|
3
|
+
|
4
|
+
<dl class="fields">
|
5
|
+
<%= render partial: 'shared/entity/parent', locals: { entity: entity } %>
|
6
|
+
<%= render partial: 'shared/forms/priority', locals: { f: f } %>
|
7
|
+
<%= render partial: 'shared/forms/fields', locals: { f: f, fields: %w[slug name nav_text] } %>
|
8
|
+
<%= render partial: 'shared/forms/text_field', locals: { f: f, field: :token } unless entity.id.nil? %>
|
9
|
+
<%= render partial: 'shared/forms/simple_image', locals: { f: f } %>
|
10
|
+
</dl>
|
11
|
+
|
12
|
+
<%= render 'shared/forms/state_container' %>
|
13
|
+
|
14
|
+
<div class="buttons">
|
15
|
+
<%= hidden_field_tag :entity_id, entity.id %>
|
16
|
+
<%= f.hidden_field :parent_id if entity.id.nil? %>
|
17
|
+
<%= f.button t(:save), class: 'button button-save' %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
json.id taxon.id
|
2
|
+
json.type taxon.class.table_name
|
3
|
+
json.attributes do
|
4
|
+
json.call(taxon, :name, :slug, :nav_text, :parent_id, :parents_cache, :children_cache)
|
5
|
+
end
|
6
|
+
json.meta do
|
7
|
+
json.text_for_link taxon.text_for_link
|
8
|
+
json.html(
|
9
|
+
render(
|
10
|
+
partial: 'admin/taxa/entity/in_search',
|
11
|
+
locals: { entity: taxon },
|
12
|
+
formats: [:html]
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
json.links do
|
17
|
+
json.self admin_taxon_path(id: taxon.id)
|
18
|
+
end
|
19
|
+
unless taxon.parent.nil?
|
20
|
+
json.relationships do
|
21
|
+
json.parent do
|
22
|
+
json.data do
|
23
|
+
json.id taxon.parent_id
|
24
|
+
json.type taxon.parent.class.table_name
|
25
|
+
end
|
26
|
+
json.links do
|
27
|
+
json.self admin_taxon_path(id: taxon.parent_id)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<figure class="image"><%= simple_image_preview(entity) %></figure>
|
2
|
+
<div class="data">
|
3
|
+
<div><%= admin_entity_link(entity) %></div>
|
4
|
+
<div class="info"><%= entity.name %></div>
|
5
|
+
<div class="secondary info"><%= t(:object_count, count: entity.object_count) %></div>
|
6
|
+
<div class="secondary info"><%= entity.uuid %></div>
|
7
|
+
|
8
|
+
<%= render(partial: 'shared/admin/toggle', locals: { entity: entity }) %>
|
9
|
+
|
10
|
+
<% if local_assigns[:handler] && handler.permit?('edit', entity) %>
|
11
|
+
<div class="entity-actions">
|
12
|
+
<%= edit_icon(entity) %>
|
13
|
+
<%= render(partial: 'shared/admin/priority', locals: { entity: entity }) %>
|
14
|
+
<%= destroy_icon(entity) %>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<% content_for :meta_title, t('.title', page: current_page) %>
|
2
|
+
<% content_for :breadcrumbs do %>
|
3
|
+
<%= admin_biovision_component_link(component_handler.component) %>
|
4
|
+
<span><%= t('admin.taxa.nav_item.text') %></span>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<article>
|
8
|
+
<h1><%= t('.heading') %></h1>
|
9
|
+
|
10
|
+
<% if component_handler.permit?('taxa.edit') %>
|
11
|
+
<nav class="entity-actions">
|
12
|
+
<%= create_icon(new_admin_taxon_path) %>
|
13
|
+
</nav>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<%=
|
17
|
+
render(
|
18
|
+
partial: 'admin/widgets/quick_search',
|
19
|
+
locals: { endpoint: search_admin_taxa_url }
|
20
|
+
)
|
21
|
+
%>
|
22
|
+
|
23
|
+
<%=
|
24
|
+
render(
|
25
|
+
partial: 'shared/admin/list_with_priority',
|
26
|
+
locals: { collection: @collection, handler: component_handler }
|
27
|
+
)
|
28
|
+
%>
|
29
|
+
</article>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<% content_for :meta_title, t('.title', name: @entity.name) %>
|
2
|
+
<% content_for :breadcrumbs do %>
|
3
|
+
<%= admin_biovision_component_link(component_handler.component) %>
|
4
|
+
<%= link_to(t('admin.taxa.nav_item.text'), admin_taxa_path) %>
|
5
|
+
<% @entity.parents.each do |parent| %>
|
6
|
+
<%= admin_entity_link(parent) %>
|
7
|
+
<% end %>
|
8
|
+
<span><%= @entity.name %></span>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<article>
|
12
|
+
<h1><%= @entity.name %></h1>
|
13
|
+
|
14
|
+
<% if component_handler.permit?('edit', @entity) %>
|
15
|
+
<nav class="entity-actions">
|
16
|
+
<%= edit_icon(@entity) %>
|
17
|
+
<%= destroy_icon(@entity) %>
|
18
|
+
</nav>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<dl class="fields">
|
22
|
+
<%= render partial: 'shared/entity/parent', locals: { entity: @entity } %>
|
23
|
+
<%= render partial: 'shared/entity/text_fields', locals: { entity: @entity, fields: %w[name slug nav_text] } %>
|
24
|
+
<%= render partial: 'shared/entity/simple_image', locals: { entity: @entity } %>
|
25
|
+
<%= render partial: 'shared/entity/uuid', locals: { entity: @entity } %>
|
26
|
+
<%= render partial: 'shared/entity/timestamps', locals: { entity: @entity } %>
|
27
|
+
<%= render partial: 'shared/entity/tree_caches', locals: { entity: @entity } %>
|
28
|
+
</dl>
|
29
|
+
|
30
|
+
<%= render(partial: 'shared/admin/toggle', locals: { entity: @entity }) %>
|
31
|
+
|
32
|
+
|
33
|
+
<%=
|
34
|
+
render(
|
35
|
+
partial: 'admin/taxa/entity/children',
|
36
|
+
locals: {
|
37
|
+
collection: @entity.class.list_for_administration(@entity.id),
|
38
|
+
handler: component_handler
|
39
|
+
}
|
40
|
+
)
|
41
|
+
%>
|
42
|
+
|
43
|
+
<% if component_handler.permit?('edit', @entity) %>
|
44
|
+
<%=
|
45
|
+
render(
|
46
|
+
partial: 'admin/taxa/entity/add_child',
|
47
|
+
locals: { entity: @entity.child_items.new }
|
48
|
+
)
|
49
|
+
%>
|
50
|
+
<% end %>
|
51
|
+
</article>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
ru:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
taxon: "Таксон"
|
5
|
+
taxon_component: "Таксон в компоненте"
|
6
|
+
taxon_user: "Таксон для пользователя"
|
7
|
+
attributes:
|
8
|
+
taxon: "Таксон"
|
9
|
+
taxon_id: "Таксон"
|
10
|
+
admin:
|
11
|
+
taxa:
|
12
|
+
destroy:
|
13
|
+
success: "Таксон удалён"
|
14
|
+
edit:
|
15
|
+
title: "Редактирование таксона"
|
16
|
+
nav_text: "Редактировать"
|
17
|
+
heading: "Редактирование таксона"
|
18
|
+
index:
|
19
|
+
title: "Таксоны"
|
20
|
+
heading: "Таксоны"
|
21
|
+
nav_item:
|
22
|
+
text: "Все таксоны"
|
23
|
+
description: "Управление таксонами"
|
24
|
+
new:
|
25
|
+
title: "Добавление таксона"
|
26
|
+
nav_text: "Создать"
|
27
|
+
heading: "Новый таксон"
|
28
|
+
show:
|
29
|
+
title: "Таксон «%{name}»"
|
30
|
+
entity:
|
31
|
+
add_child:
|
32
|
+
heading: "Добавить дочерний таксон"
|
33
|
+
children:
|
34
|
+
heading: "Дочерние таксоны"
|
35
|
+
biovision:
|
36
|
+
components:
|
37
|
+
taxonomy:
|
38
|
+
name: "Таксономия"
|
data/config/routes.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Rails.application.routes.draw do
|
4
|
+
concern :check do
|
5
|
+
post :check, on: :collection, defaults: { format: :json }
|
6
|
+
end
|
7
|
+
|
8
|
+
concern :priority do
|
9
|
+
post :priority, on: :member, defaults: { format: :json }
|
10
|
+
end
|
11
|
+
|
12
|
+
concern :search do
|
13
|
+
get :search, on: :collection
|
14
|
+
end
|
15
|
+
|
16
|
+
concern :toggle do
|
17
|
+
post :toggle, on: :member, defaults: { format: :json }
|
18
|
+
end
|
19
|
+
|
20
|
+
namespace :admin do
|
21
|
+
# Taxonomy
|
22
|
+
resources :taxa, concerns: %i[check priority search toggle]
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Create tables for taxonomy
|
4
|
+
class CreateTaxonomyComponent < ActiveRecord::Migration[6.1]
|
5
|
+
include Biovision::Migrations::ComponentMigration
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def create_taxa
|
10
|
+
create_table :taxa, comment: 'Taxa' do |t|
|
11
|
+
t.uuid :uuid, null: false
|
12
|
+
t.references :simple_image, foreign_key: { on_update: :cascade, on_delete: :nullify }
|
13
|
+
t.integer :parent_id
|
14
|
+
t.integer :object_count, default: 0, null: false
|
15
|
+
t.integer :priority, limit: 2, default: 1, null: false
|
16
|
+
t.boolean :visible, default: true, null: false
|
17
|
+
t.timestamps
|
18
|
+
t.string :name
|
19
|
+
t.string :nav_text
|
20
|
+
t.string :slug
|
21
|
+
t.string :parents_cache, default: '', null: false
|
22
|
+
t.integer :children_cache, array: true, default: [], null: false
|
23
|
+
t.jsonb :data, default: {}, null: false
|
24
|
+
end
|
25
|
+
|
26
|
+
add_index :taxa, :uuid, unique: true
|
27
|
+
add_index :taxa, :data, using: :gin
|
28
|
+
add_foreign_key :taxa, :taxa, column: :parent_id, on_update: :cascade, on_delete: :cascade
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_taxon_users
|
32
|
+
create_table :taxon_users, comment: 'Taxa available to users' do |t|
|
33
|
+
t.references :taxon, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
34
|
+
t.references :user, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
35
|
+
t.jsonb :data, default: {}, null: false
|
36
|
+
end
|
37
|
+
|
38
|
+
add_index :taxon_users, :data, using: :gin
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_taxon_components
|
42
|
+
create_table :taxon_components, comment: 'Taxa available in components' do |t|
|
43
|
+
t.references :taxon, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
44
|
+
t.references :biovision_component, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Biovision
|
2
|
+
module Taxonomy
|
3
|
+
require 'biovision'
|
4
|
+
|
5
|
+
class Engine < ::Rails::Engine
|
6
|
+
config.generators do |g|
|
7
|
+
g.test_framework :rspec
|
8
|
+
g.fixture_replacement :factory_bot, dir: 'spec/factories'
|
9
|
+
end
|
10
|
+
|
11
|
+
initializer 'sample_engine.factories', after: 'factory_bot.set_factory_paths' do
|
12
|
+
FactoryBot.definition_file_paths << File.expand_path('../../../spec/factories', __FILE__) if defined?(FactoryBot)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: biovision-taxonomy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.210504.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maxim Khan-Magomedov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-05-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 6.1.3
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 6.1.3.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 6.1.3
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 6.1.3.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rails-i18n
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '6.0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '6.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: biovision
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec-rails
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: database_cleaner
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: factory_bot_rails
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
description: Taxonomy component for biovision-based sites.
|
104
|
+
email:
|
105
|
+
- maxim.km@gmail.com
|
106
|
+
executables: []
|
107
|
+
extensions: []
|
108
|
+
extra_rdoc_files: []
|
109
|
+
files:
|
110
|
+
- MIT-LICENSE
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- app/assets/config/biovision_taxonomy_manifest.js
|
114
|
+
- app/controllers/admin/taxa_controller.rb
|
115
|
+
- app/lib/biovision/components/taxonomy_component.rb
|
116
|
+
- app/models/taxon.rb
|
117
|
+
- app/models/taxon_component.rb
|
118
|
+
- app/models/taxon_user.rb
|
119
|
+
- app/views/admin/taxa/_form.html.erb
|
120
|
+
- app/views/admin/taxa/_nav_item.html.erb
|
121
|
+
- app/views/admin/taxa/_taxon.jbuilder
|
122
|
+
- app/views/admin/taxa/entity/_add_child.html.erb
|
123
|
+
- app/views/admin/taxa/entity/_children.html.erb
|
124
|
+
- app/views/admin/taxa/entity/_in_list.html.erb
|
125
|
+
- app/views/admin/taxa/entity/_in_search.html.erb
|
126
|
+
- app/views/admin/taxa/index.html.erb
|
127
|
+
- app/views/admin/taxa/search.jbuilder
|
128
|
+
- app/views/admin/taxa/show.html.erb
|
129
|
+
- config/initializers/taxonomy.rb
|
130
|
+
- config/locales/taxonomy-ru.yml
|
131
|
+
- config/routes.rb
|
132
|
+
- db/migrate/20210504000000_create_taxonomy_component.rb
|
133
|
+
- lib/biovision/taxonomy.rb
|
134
|
+
- lib/biovision/taxonomy/engine.rb
|
135
|
+
- lib/biovision/taxonomy/version.rb
|
136
|
+
- lib/tasks/biovision/taxonomy_tasks.rake
|
137
|
+
homepage: https://github.com/Biovision/biovision-taxonomy
|
138
|
+
licenses:
|
139
|
+
- MIT
|
140
|
+
metadata:
|
141
|
+
allowed_push_host: https://rubygems.org
|
142
|
+
homepage_uri: https://github.com/Biovision/biovision-taxonomy
|
143
|
+
source_code_uri: https://github.com/Biovision/biovision-taxonomy
|
144
|
+
changelog_uri: https://github.com/Biovision/biovision-taxonomy
|
145
|
+
post_install_message:
|
146
|
+
rdoc_options: []
|
147
|
+
require_paths:
|
148
|
+
- lib
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
requirements: []
|
160
|
+
rubygems_version: 3.2.15
|
161
|
+
signing_key:
|
162
|
+
specification_version: 4
|
163
|
+
summary: Taxonomy for biovision.
|
164
|
+
test_files: []
|