simple-datatable 0.0.3
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/Gemfile +4 -0
- data/README.md +76 -0
- data/exe/datatable +10 -0
- data/lib/datatable.rb +15 -0
- data/lib/datatable/application.rb +99 -0
- data/lib/datatable/generator.rb +53 -0
- data/lib/datatable/runner.rb +41 -0
- data/simple-datatable.gemspec +19 -0
- data/templates/application_datatable.erb +5 -0
- data/templates/datatable.coffee +79 -0
- data/templates/template_datatable.erb +10 -0
- metadata +112 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 500aaf883921eaf91ee8461af86f79f242df61941fccea647bb86f4c2a74c525
|
4
|
+
data.tar.gz: 84e85c34636784694ccf17fc9b6e34d7303a3c4220e08d88e60a88820a93697d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d3fbc92b4ab4ca9ae414fa330aafd376695336fb8e11deeeb12a97ecb23c1a7d885e4bbff235459710fb1a128690687abb62055b8247c516adc2f72ffe2a0889
|
7
|
+
data.tar.gz: 42b520c28f481ffe75a7f6652197e135ee9b20fa8abe25087d51780c1d467bb6a1cee9698b74b8d22fca0d41360f214f64334326733c743f5e9f9f641afc7fe6
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Simple Datatable
|
2
|
+
[](https://badge.fury.io/gh/apptec-cl%2Fdatatable)
|
3
|
+
|
4
|
+
## Description
|
5
|
+
|
6
|
+
Datatables development to Apptec, we add advanced interaction controls to your HTML tables the free & easy way in ruby on rails, this gem gives you a good starting with datatables.
|
7
|
+
|
8
|
+
```
|
9
|
+
___ ___ ___ ___ ___
|
10
|
+
/ /\ / /\ / /\ ___ / /\ / /\
|
11
|
+
/ /::\ / /::\ / /::\ / /\ / /:/_ / /:/
|
12
|
+
/ /:/\:\ / /:/\:\ / /:/\:\ / /:/ / /:/ /\ / /:/
|
13
|
+
/ /:/~/::\ / /:/~/:/ / /:/~/:/ / /:/ / /:/ /:/_ / /:/ ___
|
14
|
+
/__/:/ /:/\:\ /__/:/ /:/ /__/:/ /:/ / /::\ /__/:/ /:/ /\ /__/:/ / /\
|
15
|
+
\ \:\/:/__\/ \ \:\/:/ \ \:\/:/ /__/:/\:\ \ \:\/:/ /:/ \ \:\ / /:/
|
16
|
+
\ \::/ \ \::/ \ \::/ \__\/ \:\ \ \::/ /:/ \ \:\ /:/
|
17
|
+
\ \:\ \ \:\ \ \:\ \ \:\ \ \:\/:/ \ \:\/:/
|
18
|
+
\ \:\ \ \:\ \ \:\ \__\/ \ \::/ \ \::/
|
19
|
+
\__\/ \__\/ \__\/ \__\/ \__\/
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
|
24
|
+
## Requirements
|
25
|
+
|
26
|
+
- Ruby
|
27
|
+
- Rails
|
28
|
+
- datatables
|
29
|
+
- Human
|
30
|
+
|
31
|
+
## Installation
|
32
|
+
|
33
|
+
It is necessary to install lib datatable from:
|
34
|
+
|
35
|
+
[https://datatables.net/download/index](https://datatables.net/download/index)
|
36
|
+
|
37
|
+
in your file ```application.js```
|
38
|
+
|
39
|
+
|
40
|
+
```
|
41
|
+
|
42
|
+
//= require dataTables/jquery.dataTables
|
43
|
+
//= require dataTables/jquery.dataTables.yadcf
|
44
|
+
//= require dataTables/dataTables.bootstrap4
|
45
|
+
//= require dataTables/dataTables.responsive
|
46
|
+
//= require dataTables/responsive.bootstrap4
|
47
|
+
|
48
|
+
```
|
49
|
+
|
50
|
+
add gem
|
51
|
+
|
52
|
+
```
|
53
|
+
gem 'datatable', :git => 'git@github.com:apptec-cl/datatable.git'
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
Generate model with structure datatables, open your terminal and write:
|
58
|
+
|
59
|
+
```
|
60
|
+
$ datatable g model_name
|
61
|
+
```
|
62
|
+
|
63
|
+
Automatically we are created a folder with the structure of the tables ```app/datatables```.
|
64
|
+
|
65
|
+
## Usage
|
66
|
+
|
67
|
+
### Quickstart
|
68
|
+
|
69
|
+
|
70
|
+
## Contributing
|
71
|
+
|
72
|
+
1. Fork it ( https://github.com/apptec-cl/datatable/fork )
|
73
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
74
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
75
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
76
|
+
5. Create a new Pull Request
|
data/exe/datatable
ADDED
data/lib/datatable.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# require "datatable/application"
|
2
|
+
require "datatable/generator"
|
3
|
+
require "datatable/runner"
|
4
|
+
require 'erb'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
module Datatable
|
8
|
+
def self.root
|
9
|
+
File.dirname __dir__
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.templates
|
13
|
+
File.join root, 'templates'
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module Datatable
|
2
|
+
class Application
|
3
|
+
include AbstractController::Rendering
|
4
|
+
include Rails.application.routes.url_helpers
|
5
|
+
include ActionView::Helpers::TagHelper
|
6
|
+
include ActionView::Helpers::NumberHelper
|
7
|
+
delegate :params, :h, :link_to, :image_tag, :current_user, to: :@view
|
8
|
+
|
9
|
+
def initialize(view, model, items, order_items=nil, pre_filter=false, filter='')
|
10
|
+
@view = view
|
11
|
+
if pre_filter
|
12
|
+
@model= model.where(filter)
|
13
|
+
else
|
14
|
+
@model = model
|
15
|
+
end
|
16
|
+
@items = items
|
17
|
+
@order = order_items.blank? ? items : order_items
|
18
|
+
end
|
19
|
+
|
20
|
+
def as_json(options = {})
|
21
|
+
{
|
22
|
+
sEcho: params[:draw].to_i,
|
23
|
+
iTotalRecords: @model.count,
|
24
|
+
iTotalDisplayRecords: dimension.total_entries,
|
25
|
+
aaData: data
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_datatable_button dimension, partial_path
|
30
|
+
ApplicationController.new.render_to_string(partial: partial_path, locals: { dimension: dimension })
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def dimension
|
36
|
+
@dimension ||= fetch_dimension
|
37
|
+
end
|
38
|
+
|
39
|
+
def fetch_dimension
|
40
|
+
dimension = @model
|
41
|
+
search = ''
|
42
|
+
|
43
|
+
@items.each_with_index do |val, key|
|
44
|
+
search << (key == 0 ? val+' LIKE :search ' : 'OR ' + val + ' LIKE :search ')
|
45
|
+
end
|
46
|
+
|
47
|
+
if params[:order]
|
48
|
+
params[:order].each do |key, val|
|
49
|
+
column_for_order = val[:column].to_i
|
50
|
+
dimension = dimension.order("#{@order[column_for_order]} #{val[:dir]}")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
if !params[:search][:value].blank?
|
55
|
+
dimension = dimension.where(search, search: "%#{params[:search][:value]}%")
|
56
|
+
end
|
57
|
+
|
58
|
+
params[:columns].each do |key,column|
|
59
|
+
if !column[:search][:value].blank?
|
60
|
+
dimension = dimension.where(@items[column[:data].to_i] + ' LIKE :search ', search: "%#{column[:search][:value]}%")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
dimension = dimension.page(page).per_page(per_page)
|
64
|
+
dimension
|
65
|
+
end
|
66
|
+
|
67
|
+
def page
|
68
|
+
params[:start].to_i / per_page + 1
|
69
|
+
end
|
70
|
+
|
71
|
+
def per_page
|
72
|
+
params[:length].to_i > 0 ? params[:length].to_i : 10
|
73
|
+
end
|
74
|
+
|
75
|
+
def imagen_data value, url, default
|
76
|
+
if value.url(:thumb) == url
|
77
|
+
image_tag default, class: "img-circle", size: "60", style: "border: 5px solid #FFF;"
|
78
|
+
else
|
79
|
+
image_tag value.url(:thumb), class: "img-circle", size: "60", style: "border: 5px solid #FFF;"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def miles value
|
84
|
+
number_with_delimiter(value, delimiter: ".")
|
85
|
+
end
|
86
|
+
|
87
|
+
def rut_format value
|
88
|
+
spliter = value.split("-")
|
89
|
+
formated = number_with_delimiter(spliter[0], delimiter: ".")
|
90
|
+
formated.to_s+"-"+spliter[1].to_s
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_asset id
|
94
|
+
asset = AssetConsumer.new current_user.customer_id, id
|
95
|
+
asset = asset.get_asset
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Datatable
|
2
|
+
class Generator
|
3
|
+
attr_accessor :name
|
4
|
+
|
5
|
+
def initialize(name)
|
6
|
+
@name = name
|
7
|
+
@dirname = 'app/datatables'
|
8
|
+
end
|
9
|
+
|
10
|
+
def up
|
11
|
+
# The first is to create folder in case it does not exist.
|
12
|
+
create_folder
|
13
|
+
create_principal
|
14
|
+
create_file
|
15
|
+
copy_datatable_js
|
16
|
+
end
|
17
|
+
|
18
|
+
def templates
|
19
|
+
Datatable.templates
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def create_folder
|
25
|
+
FileUtils.mkdir_p(@dirname) unless File.directory?(@dirname)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_principal
|
29
|
+
result = generate_template('application_datatable.erb')
|
30
|
+
puts result
|
31
|
+
File.open("#{@dirname}/application_datatable.rb", 'w') { |file| file.write(result) }
|
32
|
+
puts "Created principal class application_datatable.rb"
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_file
|
36
|
+
result = generate_template('template_datatable.erb')
|
37
|
+
puts result
|
38
|
+
File.open("#{@dirname}/#{@name.downcase}_datatable.rb", 'w') { |file| file.write(result) }
|
39
|
+
puts "Created new file #{@name}_datatable.rb in folder datatables"
|
40
|
+
end
|
41
|
+
|
42
|
+
def copy_datatable_js
|
43
|
+
result = generate_template('datatable.coffee')
|
44
|
+
puts result
|
45
|
+
File.open("app/assets/stylesheets/datatable.coffee", 'w') { |file| file.write(result) }
|
46
|
+
puts "Created new file datatable.coffee in folder :app/assets/stylesheets/"
|
47
|
+
end
|
48
|
+
|
49
|
+
def generate_template name_template
|
50
|
+
ERB.new(File.read("#{templates}/#{name_template}"), nil, '-').result(binding)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Datatable
|
2
|
+
class Runner
|
3
|
+
|
4
|
+
MESSAGE = " ___ ___ ___ ___ ___
|
5
|
+
/ /\ / /\ / /\ ___ / /\ / /\
|
6
|
+
/ /::\ / /::\ / /::\ / /\ / /:/_ / /:/
|
7
|
+
/ /:/\:\ / /:/\:\ / /:/\:\ / /:/ / /:/ /\ / /:/
|
8
|
+
/ /:/~/::\ / /:/~/:/ / /:/~/:/ / /:/ / /:/ /:/_ / /:/ ___
|
9
|
+
/__/:/ /:/\:\ /__/:/ /:/ /__/:/ /:/ / /::\ /__/:/ /:/ /\ /__/:/ / /\
|
10
|
+
\ \:\/:/__\/ \ \:\/:/ \ \:\/:/ /__/:/\:\ \ \:\/:/ /:/ \ \:\ / /:/
|
11
|
+
\ \::/ \ \::/ \ \::/ \__\/ \:\ \ \::/ /:/ \ \:\ /:/
|
12
|
+
\ \:\ \ \:\ \ \:\ \ \:\ \ \:\/:/ \ \:\/:/
|
13
|
+
\ \:\ \ \:\ \ \:\ \__\/ \ \::/ \ \::/
|
14
|
+
\__\/ \__\/ \__\/ \__\/ \__\/
|
15
|
+
|
16
|
+
|
17
|
+
https://datatables.net/
|
18
|
+
Add advanced interaction controls to your HTML tables the free & easy way \n
|
19
|
+
\n
|
20
|
+
\n
|
21
|
+
Example: \n
|
22
|
+
datatable g model_name"
|
23
|
+
ERROR_MESSAGE = 'USAGE: datatable up APP_NAME'
|
24
|
+
|
25
|
+
def initialize(options)
|
26
|
+
@options = options
|
27
|
+
end
|
28
|
+
|
29
|
+
def execute
|
30
|
+
raise MESSAGE if @options[0] == 'h'
|
31
|
+
raise ERROR_MESSAGE unless valid?
|
32
|
+
Datatable::Generator.new(@options[1]).up
|
33
|
+
end
|
34
|
+
|
35
|
+
def valid?
|
36
|
+
# first option should always be up
|
37
|
+
return false if @options[0] != 'g'
|
38
|
+
true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = %q{simple-datatable}
|
3
|
+
spec.version = "0.0.3"
|
4
|
+
spec.date = %q{2019-11-24}
|
5
|
+
spec.summary = %q{awesome_gem is the best datatable Rails Gem}
|
6
|
+
spec.authors = ["DevTeam AppTec"]
|
7
|
+
spec.email = ["soporte@apptec.cl"]
|
8
|
+
spec.summary = %q{Datatable Ruby gem for Rails.}
|
9
|
+
spec.homepage = "https://github.com/apptec-cl/simple-datatable"
|
10
|
+
spec.license = "MIT"
|
11
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
12
|
+
spec.bindir = 'exe'
|
13
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
14
|
+
spec.require_paths = ['lib', 'templates']
|
15
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
16
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
17
|
+
spec.add_development_dependency 'rspec'
|
18
|
+
spec.add_development_dependency 'will_paginate', '~> 3.1.0'
|
19
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
document.addEventListener 'turbolinks:load', ->
|
2
|
+
$('.filter-datatable-tabs').on 'click', ->
|
3
|
+
filter = $(this).data('id')
|
4
|
+
table = $(this).closest('.datatable-container').find('.datatable_table')
|
5
|
+
if table.find('.status_cell').length > 0
|
6
|
+
position = table.find('.status_cell').prop('cellIndex')
|
7
|
+
#table.DataTable().ajax.reload
|
8
|
+
table.DataTable().column( position ).search( filter ).draw()
|
9
|
+
if table.find('.fee_status').length > 0
|
10
|
+
#table.DataTable().ajax.reload
|
11
|
+
table.DataTable().column(0).search( filter ).draw()
|
12
|
+
if $('.datatable_table').length > 0
|
13
|
+
$('.datatable_table').each () ->
|
14
|
+
if !$.fn.DataTable.isDataTable( "#"+$(this).prop("id") )
|
15
|
+
set_datatable($(this))
|
16
|
+
set_datatable = (data)->
|
17
|
+
if !$.fn.DataTable.isDataTable( "#"+data.prop("id") )
|
18
|
+
table = $("#"+data.prop("id"))
|
19
|
+
datatable_table = table.DataTable({
|
20
|
+
pagingType: "full_numbers"
|
21
|
+
processing: true
|
22
|
+
stateSave: true
|
23
|
+
serverSide: true
|
24
|
+
responsive: true
|
25
|
+
ajax:
|
26
|
+
url: table.data('source')
|
27
|
+
type: 'GET'
|
28
|
+
language:
|
29
|
+
'sProcessing': 'Procesando...'
|
30
|
+
'sLengthMenu': 'Mostrar _MENU_ registros'
|
31
|
+
'sZeroRecords': 'No se encontraron resultados'
|
32
|
+
'sEmptyTable': 'Ningún dato disponible en esta tabla'
|
33
|
+
'sInfo': 'Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros'
|
34
|
+
'sInfoEmpty': 'Mostrando registros del 0 al 0 de un total de 0 registros'
|
35
|
+
'sInfoFiltered': ''
|
36
|
+
'sInfoPostFix': ''
|
37
|
+
'sSearch': 'Buscar:'
|
38
|
+
'sUrl': ''
|
39
|
+
'sInfoThousands': ','
|
40
|
+
'sLoadingRecords': 'Cargando...'
|
41
|
+
'oPaginate':
|
42
|
+
'sFirst': 'Primero'
|
43
|
+
'sLast': 'Último'
|
44
|
+
'sNext': 'Siguiente'
|
45
|
+
'sPrevious': 'Anterior'
|
46
|
+
'oAria':
|
47
|
+
'sSortAscending': ': Activar para ordenar la columna de manera ascendente'
|
48
|
+
'sSortDescending': ': Activar para ordenar la columna de manera descendente'
|
49
|
+
})
|
50
|
+
switch(data.prop("id"))
|
51
|
+
when "customer_datatable"
|
52
|
+
yadcf.init(datatable_table, [
|
53
|
+
{
|
54
|
+
column_number: 0
|
55
|
+
filter_type: "text"
|
56
|
+
filter_default_label: "Escribir Nombre"
|
57
|
+
filter_container_id: "filter_1"
|
58
|
+
}
|
59
|
+
{
|
60
|
+
column_number: 1
|
61
|
+
filter_type: "text"
|
62
|
+
filter_default_label: "Escribir RUT"
|
63
|
+
filter_container_id: "filter_2"
|
64
|
+
}
|
65
|
+
{
|
66
|
+
column_number: 2
|
67
|
+
filter_type: "none"
|
68
|
+
filter_container_id: "filter_3"
|
69
|
+
}
|
70
|
+
])
|
71
|
+
filter = table.closest('.datatable-container').find('.filter-datatable-tabs').first().data('id')
|
72
|
+
position = table.find('.status_cell').prop('cellIndex')
|
73
|
+
if filter
|
74
|
+
datatable_table.column( position ).search( filter ).draw()
|
75
|
+
document.addEventListener "turbolinks:before-cache", ->
|
76
|
+
if $('.datatable_table').length > 0
|
77
|
+
$('.datatable_table').each () ->
|
78
|
+
datatable = $("#"+$(this).prop("id")).DataTable()
|
79
|
+
datatable.destroy()
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simple-datatable
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- DevTeam AppTec
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-11-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
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: will_paginate
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.1.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.1.0
|
69
|
+
description:
|
70
|
+
email:
|
71
|
+
- soporte@apptec.cl
|
72
|
+
executables:
|
73
|
+
- datatable
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- Gemfile
|
78
|
+
- README.md
|
79
|
+
- exe/datatable
|
80
|
+
- lib/datatable.rb
|
81
|
+
- lib/datatable/application.rb
|
82
|
+
- lib/datatable/generator.rb
|
83
|
+
- lib/datatable/runner.rb
|
84
|
+
- simple-datatable.gemspec
|
85
|
+
- templates/application_datatable.erb
|
86
|
+
- templates/datatable.coffee
|
87
|
+
- templates/template_datatable.erb
|
88
|
+
homepage: https://github.com/apptec-cl/simple-datatable
|
89
|
+
licenses:
|
90
|
+
- MIT
|
91
|
+
metadata: {}
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
- templates
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
requirements: []
|
108
|
+
rubygems_version: 3.0.4
|
109
|
+
signing_key:
|
110
|
+
specification_version: 4
|
111
|
+
summary: Datatable Ruby gem for Rails.
|
112
|
+
test_files: []
|