biovision-partners 0.1.190526.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: dffd780da11956fc85c2ee3841abd6926be4dbae308797df563cf5af6a95c118
4
+ data.tar.gz: c95622044f61767ddc503478a11058e2224f05a611f71afb1e5c5675ef3951ff
5
+ SHA512:
6
+ metadata.gz: b8144c15eee52d905696cc0598df84b2d8e968738f48366cd733ab817dc00c0b35bf06861efb12ce29722a13de59d262c450cf4d590809b49e4bec7bae2f334b
7
+ data.tar.gz: a7cd96f1fa35c850d40320d62e2ba0b28712fe9684690c6fa9a4edcefa1da1b585041a536b540bf0e224a22b5fe65ae3f30b32805642b4979e2e3bc94180029d
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2019 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::Partners
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-partners'
12
+ ```
13
+
14
+ And then execute:
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+ ```bash
21
+ $ gem install biovision-partners
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
@@ -0,0 +1,22 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Biovision::Partners'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("spec/test_app/Rakefile", __dir__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+ load 'rails/tasks/statistics.rake'
21
+
22
+ require 'bundler/gem_tasks'
File without changes
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Administrative part of post group management
4
+ class Admin::PartnersController < AdminController
5
+ include EntityPriority
6
+ include ToggleableEntity
7
+
8
+ before_action :set_entity, except: :index
9
+
10
+ # get /admin/partners
11
+ def index
12
+ @collection = Partner.list_for_administration
13
+ end
14
+
15
+ # get /admin/partners/:id
16
+ def show
17
+ end
18
+
19
+ private
20
+
21
+ def set_entity
22
+ @entity = Partner.find_by(id: params[:id])
23
+ handle_http_404('Cannot find partner') if @entity.nil?
24
+ end
25
+
26
+ def restrict_access
27
+ component_restriction Biovision::Components::PartnersComponent
28
+ end
29
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Handling partners
4
+ class PartnersController < AdminController
5
+ before_action :set_entity, only: %i[edit update destroy]
6
+
7
+ # post /partners/check
8
+ def check
9
+ @entity = Partner.instance_for_check(params[:entity_id], entity_parameters)
10
+
11
+ render 'shared/forms/check'
12
+ end
13
+
14
+ # get /partners/new
15
+ def new
16
+ @entity = Partner.new
17
+ end
18
+
19
+ # post /partners
20
+ def create
21
+ @entity = Partner.new(entity_parameters)
22
+ if @entity.save
23
+ form_processed_ok(admin_partner_path(id: @entity.id))
24
+ else
25
+ form_processed_with_error(:new)
26
+ end
27
+ end
28
+
29
+ # get /partners/:id/edit
30
+ def edit
31
+ end
32
+
33
+ # patch /partners/:id
34
+ def update
35
+ if @entity.update entity_parameters
36
+ form_processed_ok(admin_partner_path(id: @entity.id))
37
+ else
38
+ form_processed_with_error(:edit)
39
+ end
40
+ end
41
+
42
+ # delete /partners/:id
43
+ def destroy
44
+ flash[:notice] = t('partners.destroy.success') if @entity.destroy
45
+
46
+ redirect_to(admin_partners_path)
47
+ end
48
+
49
+ protected
50
+
51
+ def restrict_access
52
+ component_restriction Biovision::Components::PartnersComponent
53
+ end
54
+
55
+ def set_entity
56
+ @entity = Partner.find_by(id: params[:id])
57
+
58
+ handle_http_404('Cannot find partner') if @entity.nil?
59
+ end
60
+
61
+ def entity_parameters
62
+ params.require(:partner).permit(Partner.entity_parameters)
63
+ end
64
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Helper methods for handling partners
4
+ module PartnersHelper
5
+ # @param [Partner] entity
6
+ # @param [String] text
7
+ # @param [Hash] options
8
+ def admin_partner_link(entity, text = entity.name, options = {})
9
+ link_to(text, admin_partner_path(id: entity.id), options)
10
+ end
11
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Partner
4
+ #
5
+ # Attributes
6
+ # created_at [DateTime]
7
+ # image [SimpleImageUploader]
8
+ # language_id [Language], optional
9
+ # name [String]
10
+ # priority [Integer]
11
+ # url [String]
12
+ # updated_at [DateTime]
13
+ # visible [Boolean]
14
+ class Partner < ApplicationRecord
15
+ include Checkable
16
+ include FlatPriority
17
+ include Toggleable
18
+
19
+ NAME_LIMIT = 150
20
+ URL_LIMIT = 255
21
+
22
+ toggleable :visible
23
+
24
+ mount_uploader :image, SimpleImageUploader
25
+
26
+ belongs_to :language, optional: true
27
+
28
+ validates_presence_of :name, :image
29
+ validates_length_of :name, maximum: NAME_LIMIT
30
+ validates_length_of :url, maximum: URL_LIMIT
31
+
32
+ scope :visible, -> { where(visible: true) }
33
+ scope :list_for_visitors, -> { visible.ordered_by_priority }
34
+ scope :list_for_administration, -> { ordered_by_priority }
35
+
36
+ def self.entity_parameters
37
+ %i[image language_id name priority url visible]
38
+ end
39
+
40
+ def image_alt_text
41
+ name
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Biovision
4
+ module Components
5
+ # Handler for partners component
6
+ class PartnersComponent < BaseComponent
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ <% if Biovision::Components::PartnersComponent.allow?(current_user) %>
2
+ <nav>
3
+ <h3><%= t('.heading') %></h3>
4
+
5
+ <ul>
6
+ <li><%= render 'admin/partners/nav_item' %></li>
7
+ </ul>
8
+ </nav>
9
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <div><%= link_to(t('.text'), admin_partners_path) %></div>
2
+ <div class="description"><%= t('.description') %></div>
@@ -0,0 +1,31 @@
1
+ <div class="image">
2
+ <%= simple_image_preview(entity) %>
3
+ </div>
4
+ <div class="data">
5
+ <div><%= admin_partner_link(entity) %></div>
6
+ <% unless entity.url.blank? %>
7
+ <div class="secondary info">
8
+ <%= entity.url %>
9
+ </div>
10
+ <% end %>
11
+
12
+ <%=
13
+ render(
14
+ partial: 'shared/admin/toggleable',
15
+ locals: {
16
+ entity: entity,
17
+ url: toggle_admin_partner_path(id: entity.id)
18
+ }
19
+ )
20
+ %>
21
+
22
+ <ul class="actions">
23
+ <li><%= edit_icon(edit_partner_path(id: entity.id)) %></li>
24
+ <%=
25
+ render(
26
+ partial: 'shared/actions/priority_changer',
27
+ locals: { path: priority_admin_partner_path(id: entity.id) }
28
+ )
29
+ %>
30
+ </ul>
31
+ </div>
@@ -0,0 +1,22 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <span><%= t('admin.partners.nav_item.text') %></span>
4
+ <% end %>
5
+
6
+ <article>
7
+ <h1><%= t('.heading') %></h1>
8
+
9
+ <ul class="actions">
10
+ <li><%= back_icon(admin_path) %></li>
11
+ <li><%= create_icon(new_partner_path) %></li>
12
+ </ul>
13
+
14
+ <%=
15
+ render(
16
+ partial: 'shared/admin/list_with_priority',
17
+ locals: {
18
+ collection: @collection
19
+ }
20
+ )
21
+ %>
22
+ </article>
@@ -0,0 +1,38 @@
1
+ <% content_for :meta_title, t('.title', name: @entity.name) %>
2
+ <% content_for :breadcrumbs do %>
3
+ <%= link_to(t('admin.partners.nav_item.text'), admin_partners_path) %>
4
+ <span><%= @entity.name %></span>
5
+ <% end %>
6
+
7
+ <article>
8
+ <h1><%= @entity.name %></h1>
9
+
10
+ <ul class="actions">
11
+ <li><%= back_icon(admin_partners_path) %></li>
12
+ <li><%= edit_icon(edit_partner_path(id: @entity.id)) %></li>
13
+ </ul>
14
+
15
+ <dl>
16
+ <dt><%= t('activerecord.attributes.partner.image') %></dt>
17
+ <dd>
18
+ <figure class="preview">
19
+ <%= simple_image_medium(@entity) %>
20
+ </figure>
21
+ </dd>
22
+
23
+ <% unless @entity.url.blank? %>
24
+ <dt><%= t('activerecord.attributes.partner.url') %></dt>
25
+ <dd><%= @entity.url %></dd>
26
+ <% end %>
27
+ </dl>
28
+
29
+ <%=
30
+ render(
31
+ partial: 'shared/admin/toggleable',
32
+ locals: {
33
+ entity: @entity,
34
+ url: toggle_admin_partner_path(id: @entity.id)
35
+ }
36
+ )
37
+ %>
38
+ </article>
@@ -0,0 +1,15 @@
1
+ <% collection = Partner.list_for_visitors %>
2
+ <% if collection.load.any? %>
3
+ <section class="index-partners">
4
+ <h2><%= t('.heading') %></h2>
5
+
6
+ <%=
7
+ render(
8
+ partial: 'partners/carousel',
9
+ locals: {
10
+ collection: collection
11
+ }
12
+ )
13
+ %>
14
+ </section>
15
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <%
2
+ collection ||= Partner.list_for_visitors
3
+ timeout ||= 3000
4
+ %>
5
+ <% if collection.any? %>
6
+ <div class="js-biovision-carousel partners-carousel" data-timeout="<%= timeout %>">
7
+ <button class="prev"></button>
8
+ <ul class="carousel-container">
9
+ <% collection.each do |entity| %>
10
+ <li class="carousel-item">
11
+ <%= render entity %>
12
+ </li>
13
+ <% end %>
14
+ </ul>
15
+ <button class="next"></button>
16
+ </div>
17
+ <% end %>
@@ -0,0 +1,68 @@
1
+ <% model_name = entity.class.to_s.underscore %>
2
+ <%= form_with(model: entity, html: { id: "#{model_name}-form" }) do |f| %>
3
+ <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
4
+
5
+ <dl>
6
+ <%= render partial: 'shared/forms/priority', locals: { f: f } %>
7
+
8
+ <dt><%= f.label :name %></dt>
9
+ <dd>
10
+ <%=
11
+ f.text_field(
12
+ :name,
13
+ id: "#{model_name}_name",
14
+ size: nil,
15
+ maxlength: Partner::NAME_LIMIT,
16
+ required: true
17
+ )
18
+ %>
19
+ <div class="guideline"><%= t('.guidelines.name') %></div>
20
+ </dd>
21
+
22
+ <dt><%= f.label :image %></dt>
23
+ <dd>
24
+ <% figure_id = "#{model_name}-image" %>
25
+ <figure role="group" class="preview" id="<%= figure_id %>">
26
+ <% if entity.image.blank? %>
27
+ <%= f.label :image, image_tag('biovision/base/placeholders/1x1.svg') %>
28
+ <% else %>
29
+ <%= f.label :image, image_tag(entity.image.medium_url) %>
30
+ <% end %>
31
+ <figcaption>
32
+ <%=
33
+ f.file_field(
34
+ :image,
35
+ id: "#{model_name}_image",
36
+ accept: 'image/jpeg,image/png,image/svg+xml',
37
+ required: entity.image.blank?,
38
+ data: { image: figure_id }
39
+ )
40
+ %>
41
+ </figcaption>
42
+ </figure>
43
+ <div class="guideline"><%= t('.guidelines.image') %></div>
44
+ </dd>
45
+
46
+ <dt><%= f.label :url %></dt>
47
+ <dd>
48
+ <%=
49
+ f.url_field(
50
+ :url,
51
+ id: "#{model_name}_url",
52
+ size: nil,
53
+ maxlength: Partner::URL_LIMIT
54
+ )
55
+ %>
56
+ <div class="guideline"><%= t('.guidelines.url') %></div>
57
+ </dd>
58
+
59
+ <%= render partial: 'shared/forms/entity_flags', locals: { f: f } %>
60
+ </dl>
61
+
62
+ <%= render 'shared/forms/state_container' %>
63
+
64
+ <div class="buttons">
65
+ <%= hidden_field_tag :entity_id, entity.id %>
66
+ <%= f.button t(:save), type: :submit, class: 'button-save' %>
67
+ </div>
68
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <div>
2
+ <% if partner.url.blank? %>
3
+ <%= simple_image_preview(partner) %>
4
+ <% else %>
5
+ <%=
6
+ link_to(
7
+ simple_image_preview(partner),
8
+ partner.url,
9
+ target: '_blank',
10
+ rel: 'external nofollow noopener noreferrer'
11
+ )
12
+ %>
13
+ <% end %>
14
+ </div>
@@ -0,0 +1,17 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <%= link_to(t('admin.partners.nav_item.text'), admin_partners_path) %>
4
+ <%= admin_partner_link(@entity) %>
5
+ <span><%= t('.nav_text') %></span>
6
+ <% end %>
7
+
8
+ <article>
9
+ <h1><%= t('.heading') %></h1>
10
+
11
+ <ul class="actions">
12
+ <li><%= return_icon(admin_partner_path(id: @entity.id)) %></li>
13
+ <li class="danger"><%= destroy_icon(@entity) %></li>
14
+ </ul>
15
+
16
+ <%= render partial: 'form', locals: { entity: @entity } %>
17
+ </article>
@@ -0,0 +1,15 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <%= link_to(t('admin.partners.nav_item.text'), admin_partners_path) %>
4
+ <span><%= t('.nav_text') %></span>
5
+ <% end %>
6
+
7
+ <article>
8
+ <h1><%= t('.title') %></h1>
9
+
10
+ <ul class="actions">
11
+ <li><%= back_icon(admin_partners_path) %></li>
12
+ </ul>
13
+
14
+ <%= render partial: 'form', locals: { entity: @entity } %>
15
+ </article>
@@ -0,0 +1,55 @@
1
+ ru:
2
+ partner_count:
3
+ zero: "партнёров нет"
4
+ one: "%{count} партнёр"
5
+ few: "%{count} партнёра"
6
+ many: "%{count} партнёров"
7
+ other: "%{count} партнёров"
8
+ activerecord:
9
+ models:
10
+ partner: "Партнёр"
11
+ attributes:
12
+ partner:
13
+ image: "Картинка"
14
+ language: "Язык"
15
+ language_id: "Язык"
16
+ priority: "Порядок сортировки"
17
+ visible: "Показывать"
18
+ name: "Название"
19
+ url: "Сайт"
20
+ admin:
21
+ partners:
22
+ nav_item:
23
+ description: "Управление партнёрами"
24
+ text: "Партнёры"
25
+ index:
26
+ heading: "Партнёры"
27
+ title: "Партнёры"
28
+ show:
29
+ title: "Партнёр «%{name}»"
30
+ index:
31
+ dashboard:
32
+ biovision_partners:
33
+ heading: "Партнёры"
34
+ partners:
35
+ new:
36
+ heading: "Добавление партнёра"
37
+ nav_text: "Добавить"
38
+ title: "Новый партнёр"
39
+ edit:
40
+ heading: "Редактирование партнёра"
41
+ nav_text: "Редактировать"
42
+ title: "Редактирование партнёра"
43
+ update:
44
+ success: "Партнёр отредактирован"
45
+ destroy:
46
+ success: "Партнёр удалён"
47
+ form:
48
+ guidelines:
49
+ image: "Картинка в формате SVG, PNG или JPG."
50
+ name: "Максимум 150 символов."
51
+ url: "Максимум 250 символов."
52
+ index:
53
+ dashboard:
54
+ biovision_partners:
55
+ heading: "Наши партнёры"
data/config/routes.rb ADDED
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ Rails.application.routes.draw do
4
+ concern :priority do
5
+ post :priority, on: :member, defaults: { format: :json }
6
+ end
7
+
8
+ concern :toggle do
9
+ post :toggle, on: :member, defaults: { format: :json }
10
+ end
11
+
12
+ concern :check do
13
+ post :check, on: :collection, defaults: { format: :json }
14
+ end
15
+
16
+ resources :partners, only: %i[update destroy]
17
+
18
+ scope '/(:locale)', constraints: { locale: /ru|en|sv|cn/ } do
19
+ resources :partners, only: %i[new create edit], concerns: :check
20
+
21
+ namespace :admin do
22
+ resources :partners, only: %i[index show], concerns: %i[toggle priority]
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Create component and table for partners
4
+ class CreatePartners < ActiveRecord::Migration[5.2]
5
+ def up
6
+ create_component unless BiovisionComponent.where(slug: 'partners').exists?
7
+ create_partners unless Partner.table_exists?
8
+ end
9
+
10
+ def down
11
+ drop_table :partners if Partner.table_exists?
12
+ end
13
+
14
+ private
15
+
16
+ def create_partners
17
+ create_table :partners, comment: 'Partner' do |t|
18
+ t.references :language, foreign_key: { on_update: :cascade, on_delete: :cascade }
19
+ t.integer :priority, limit: 2, default: 1, null: false
20
+ t.timestamps
21
+ t.boolean :visible, default: true, null: false
22
+ t.string :name
23
+ t.string :image
24
+ t.string :url
25
+ end
26
+ end
27
+
28
+ def create_component
29
+ BiovisionComponent.create(slug: 'partners')
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ module Biovision
2
+ module Partners
3
+ require 'biovision/base'
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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Biovision
4
+ module Partners
5
+ VERSION = '0.1.190526.0'
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require "biovision/partners/engine"
2
+
3
+ module Biovision
4
+ module Partners
5
+ # Your code goes here...
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :biovision_partners do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: biovision-partners
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.190526.0
5
+ platform: ruby
6
+ authors:
7
+ - Maxim Khan-Magomedov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-05-25 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: 5.2.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 5.2.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails-i18n
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: biovision-base
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: database_cleaner
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: factory_bot_rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pg
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Partners component for Biovision-based applications
112
+ email:
113
+ - maxim.km@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - MIT-LICENSE
119
+ - README.md
120
+ - Rakefile
121
+ - app/assets/config/biovision_partners_manifest.js
122
+ - app/controllers/admin/partners_controller.rb
123
+ - app/controllers/partners_controller.rb
124
+ - app/helpers/partners_helper.rb
125
+ - app/models/partner.rb
126
+ - app/services/biovision/components/partners_component.rb
127
+ - app/views/admin/index/dashboard/_biovision_partners.html.erb
128
+ - app/views/admin/partners/_nav_item.html.erb
129
+ - app/views/admin/partners/entity/_in_list.html.erb
130
+ - app/views/admin/partners/index.html.erb
131
+ - app/views/admin/partners/show.html.erb
132
+ - app/views/index/dashboard/_biovision_partners.html.erb
133
+ - app/views/partners/_carousel.html.erb
134
+ - app/views/partners/_form.html.erb
135
+ - app/views/partners/_partner.html.erb
136
+ - app/views/partners/edit.html.erb
137
+ - app/views/partners/new.html.erb
138
+ - config/locales/partners-ru.yml
139
+ - config/routes.rb
140
+ - db/migrate/20190524000001_create_partners.rb
141
+ - lib/biovision/partners.rb
142
+ - lib/biovision/partners/engine.rb
143
+ - lib/biovision/partners/version.rb
144
+ - lib/tasks/biovision/partners_tasks.rake
145
+ homepage: https://github.com/Biovision/biovision-partners
146
+ licenses:
147
+ - MIT
148
+ metadata:
149
+ allowed_push_host: https://rubygems.org
150
+ post_install_message:
151
+ rdoc_options: []
152
+ require_paths:
153
+ - lib
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ requirements: []
165
+ rubygems_version: 3.0.3
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Partners component for Biovision-based applications
169
+ test_files: []