active_list 7.3.0 → 8.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/active_list/definition/data_column.rb +3 -3
- data/lib/active_list/exporters/abstract_exporter.rb +1 -34
- data/lib/active_list/exporters/csv_exporter.rb +2 -6
- data/lib/active_list/exporters/excel_csv_exporter.rb +2 -2
- data/lib/active_list/exporters/open_document_spreadsheet_exporter.rb +52 -34
- data/lib/active_list/generator.rb +2 -3
- data/lib/active_list/generator/finder.rb +0 -58
- data/lib/active_list/renderers/simple_renderer.rb +5 -5
- data/lib/active_list/version.rb +1 -1
- data/test/dummy/Gemfile +3 -0
- data/test/test_helper.rb +1 -1
- metadata +28 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c66bafe99700808007531cb050516ebd74899f3bc6da116860100a065bc86db3
|
4
|
+
data.tar.gz: 76ac1ee41159a5946c0438eaef11501a1f74b97b43cd2bfcde7fa6fa818a7afb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ac35c24fac904f07c4e9a6f407312516fb2b05faf36fb31cc0592c99b6008b226fe0361edc5b13be1630e83ac5fd4273f4121918b29342d9f894b51cc7ade0e
|
7
|
+
data.tar.gz: e6a686954279d6f4fd0b3780ede4e1b9d51a7601720c32dc26f7aa56be0fab31e97769c65b73cc0cd34bbf15ee0b40db227dcff9f26960a28b0124cb60eda286
|
@@ -22,11 +22,11 @@ module ActiveList
|
|
22
22
|
currency = currency_for(record)
|
23
23
|
datum = "(#{datum}.nil? ? '' : #{datum}.l(#{'currency: ' + currency.inspect if currency}))"
|
24
24
|
elsif @name.to_s.match(/(^|\_)currency$/) && datatype == :string
|
25
|
-
datum = "(
|
25
|
+
datum = "(Onoma::Currency[#{datum}] ? Onoma::Currency[#{datum}].human_name : '')"
|
26
26
|
elsif @name.to_s.match(/(^|\_)country$/) && datatype == :string
|
27
|
-
datum = "(
|
27
|
+
datum = "(Onoma::Country[#{datum}] ? Onoma::Country[#{datum}].human_name : '')"
|
28
28
|
elsif @name.to_s.match(/(^|\_)language$/) && datatype == :string
|
29
|
-
datum = "(
|
29
|
+
datum = "(Onoma::Language[#{datum}] ? Onoma::Language[#{datum}].human_name : '')"
|
30
30
|
elsif enumerize?
|
31
31
|
datum = "(#{datum}.nil? ? '' : #{datum}.text)"
|
32
32
|
end
|
@@ -12,39 +12,12 @@ module ActiveList
|
|
12
12
|
'txt'
|
13
13
|
end
|
14
14
|
|
15
|
-
def file_name_code
|
16
|
-
"file_name = #{table.model.name}.model_name.human\n".c
|
17
|
-
end
|
18
|
-
|
19
15
|
def mime_type
|
20
16
|
Mime::TEXT
|
21
17
|
end
|
22
18
|
|
23
|
-
def generate_file_code(format)
|
24
|
-
code = file_name_code
|
25
|
-
if generator.export_class
|
26
|
-
code << generator.exportable_query_code
|
27
|
-
code << "#{generator.export_class}.perform_later(user: current_user,\n"
|
28
|
-
code << " query: query,\n"
|
29
|
-
code << " content: #{columns_to_hash},\n"
|
30
|
-
code << " file_name: file_name,\n"
|
31
|
-
code << " format: '#{format}',\n"
|
32
|
-
code << " file_extension: '#{file_extension}')\n"
|
33
|
-
code << "notify_success(:document_in_preparation)\n"
|
34
|
-
code << "redirect_to(:back)\n"
|
35
|
-
else
|
36
|
-
code << generate_data_code
|
37
|
-
code << send_data_code
|
38
|
-
end
|
39
|
-
code.c
|
40
|
-
end
|
41
|
-
|
42
19
|
def send_data_code
|
43
|
-
raise NotImplementedError
|
44
|
-
end
|
45
|
-
|
46
|
-
def generate_data_code
|
47
|
-
raise NotImplementedError.new("#{self.class.name}#generate_data_code must be implemented in sub-classes.")
|
20
|
+
raise NotImplementedError, "#{self.class.name}#format_data_code is not implemented."
|
48
21
|
end
|
49
22
|
|
50
23
|
def columns_headers(options = {})
|
@@ -73,12 +46,6 @@ module ActiveList
|
|
73
46
|
end
|
74
47
|
array
|
75
48
|
end
|
76
|
-
|
77
|
-
def columns_to_hash
|
78
|
-
table.exportable_columns.map do |column|
|
79
|
-
[column.header_code, column.exporting_datum_code('record').to_s]
|
80
|
-
end.to_h
|
81
|
-
end
|
82
49
|
end
|
83
50
|
end
|
84
51
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module ActiveList
|
2
2
|
module Exporters
|
3
3
|
class CsvExporter < AbstractExporter
|
4
|
-
|
5
4
|
def file_extension
|
6
5
|
'csv'
|
7
6
|
end
|
@@ -10,7 +9,7 @@ module ActiveList
|
|
10
9
|
Mime[:csv]
|
11
10
|
end
|
12
11
|
|
13
|
-
def
|
12
|
+
def send_data_code
|
14
13
|
record = 'r'
|
15
14
|
code = generator.select_data_code(paginate: false)
|
16
15
|
code << "data = ::CSV.generate do |csv|\n"
|
@@ -19,12 +18,9 @@ module ActiveList
|
|
19
18
|
code << " csv << [#{columns_to_array(:body, record: record).join(', ')}]\n"
|
20
19
|
code << " end\n"
|
21
20
|
code << "end\n"
|
21
|
+
code << "send_data(data, type: #{mime_type.to_s.inspect}, disposition: 'inline', filename: #{table.model.name}.model_name.human.gsub(/[^a-z0-9]/i, '_') + '.#{file_extension}')\n"
|
22
22
|
code.c
|
23
23
|
end
|
24
|
-
|
25
|
-
def send_data_code
|
26
|
-
"send_data(data, type: #{mime_type.to_s.inspect}, disposition: 'inline', filename: file_name.parameterize + '.#{file_extension}')\n".c
|
27
|
-
end
|
28
24
|
end
|
29
25
|
end
|
30
26
|
end
|
@@ -4,7 +4,6 @@ Mime::Type.register('text/csv', :xcsv) unless defined? Mime::XCSV
|
|
4
4
|
module ActiveList
|
5
5
|
module Exporters
|
6
6
|
class ExcelCsvExporter < CsvExporter
|
7
|
-
|
8
7
|
def file_extension
|
9
8
|
'csv'
|
10
9
|
end
|
@@ -13,7 +12,7 @@ module ActiveList
|
|
13
12
|
Mime[:xcsv]
|
14
13
|
end
|
15
14
|
|
16
|
-
def
|
15
|
+
def send_data_code
|
17
16
|
record = 'r'
|
18
17
|
code = generator.select_data_code(paginate: false)
|
19
18
|
encoding = 'CP1252'
|
@@ -23,6 +22,7 @@ module ActiveList
|
|
23
22
|
code << " csv << [#{columns_to_array(:body, record: record, encoding: encoding).join(', ')}]\n"
|
24
23
|
code << " end\n"
|
25
24
|
code << "end\n"
|
25
|
+
code << "send_data(data, type: #{mime_type.to_s.inspect}, disposition: 'inline', filename: #{table.model.name}.model_name.human.gsub(/[^a-z0-9]/i,'_')+'.#{file_extension}')\n"
|
26
26
|
code.c
|
27
27
|
end
|
28
28
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'zip'
|
4
4
|
|
5
5
|
# Register ODS format unless is already set
|
6
6
|
Mime::Type.register('application/vnd.oasis.opendocument.spreadsheet', :ods) unless defined? Mime::ODS
|
@@ -8,6 +8,11 @@ Mime::Type.register('application/vnd.oasis.opendocument.spreadsheet', :ods) unle
|
|
8
8
|
module ActiveList
|
9
9
|
module Exporters
|
10
10
|
class OpenDocumentSpreadsheetExporter < AbstractExporter
|
11
|
+
DATE_ELEMENTS = {
|
12
|
+
'm' => '<number:month number:style="long"/>',
|
13
|
+
'd' => '<number:day number:style="long"/>',
|
14
|
+
'Y' => '<number:year/>'
|
15
|
+
}.freeze
|
11
16
|
|
12
17
|
def file_extension
|
13
18
|
'ods'
|
@@ -17,42 +22,55 @@ module ActiveList
|
|
17
22
|
Mime[:ods]
|
18
23
|
end
|
19
24
|
|
20
|
-
def
|
25
|
+
def send_data_code
|
26
|
+
xml_escape = "to_s.gsub('&', '&').gsub('\\'', ''').gsub('<', '<').gsub('>', '>')"
|
27
|
+
xml_escape << ".force_encoding('US-ASCII')" if xml_escape.respond_to?(:force_encoding)
|
21
28
|
record = 'r'
|
22
|
-
|
23
29
|
code = generator.select_data_code(paginate: false)
|
24
|
-
code <<
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
property :paragraph, 'text-align': :center
|
32
|
-
end
|
33
|
-
|
34
|
-
table #{table.model.name}.model_name.human do
|
35
|
-
row do
|
36
|
-
#{columns_to_array(:header)}.each do |header|
|
37
|
-
cell header, style: :head
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
for #{record} in records
|
42
|
-
row do
|
43
|
-
#{columns_to_array(:body, record: record)}.each do |value|
|
44
|
-
cell value
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
RUBY
|
51
|
-
code.c
|
52
|
-
end
|
30
|
+
code << "name = #{table.model.name}.model_name.human.gsub(/[^a-z0-9]/i, '_')\n"
|
31
|
+
code << "file = ActiveList.temporary_directory.join(name + rand(999_999_999).to_s(36) + '.#{file_extension}')\n"
|
32
|
+
code << "FileUtils.mkdir_p(file.dirname)\n"
|
33
|
+
code << "Zip::OutputStream.open(file) do |zile|\n"
|
34
|
+
# MimeType in first place
|
35
|
+
code << " zile.put_next_entry('mimetype', nil, nil, Zip::Entry::STORED)\n"
|
36
|
+
code << " zile << '#{mime_type}'\n"
|
53
37
|
|
54
|
-
|
55
|
-
|
38
|
+
# Manifest
|
39
|
+
code << " zile.put_next_entry('META-INF/manifest.xml')\n"
|
40
|
+
code << " zile << ('<?xml version=\"1.0\" encoding=\"UTF-8\"?><manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\"><manifest:file-entry manifest:media-type=\"#{mime_type}\" manifest:full-path=\"/\"/><manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/></manifest:manifest>')\n"
|
41
|
+
code << " zile.put_next_entry('content.xml')\n"
|
42
|
+
|
43
|
+
code << " zile << ('<?xml version=\"1.0\" encoding=\"UTF-8\"?><office:document-content xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:style=\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\" xmlns:text=\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\" xmlns:table=\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\" xmlns:draw=\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\" xmlns:fo=\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:number=\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\" xmlns:presentation=\"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\" xmlns:svg=\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\" xmlns:chart=\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\" xmlns:dr3d=\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\" xmlns:math=\"http://www.w3.org/1998/Math/MathML\" xmlns:form=\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\" xmlns:script=\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\" xmlns:ooo=\"http://openoffice.org/2004/office\" xmlns:ooow=\"http://openoffice.org/2004/writer\" xmlns:oooc=\"http://openoffice.org/2004/calc\" xmlns:dom=\"http://www.w3.org/2001/xml-events\" xmlns:xforms=\"http://www.w3.org/2002/xforms\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:field=\"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0\" office:version=\"1.1\"><office:scripts/>')\n"
|
44
|
+
# Styles
|
45
|
+
code << " zile << ('<office:automatic-styles>"\
|
46
|
+
'<style:style style:name="co1" style:family="table-column"><style:table-column-properties fo:break-before="auto" style:use-optimal-column-width="true"/></style:style>'\
|
47
|
+
'<style:style style:name="header" style:family="table-cell"><style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/></style:style>'\
|
48
|
+
'<number:date-style style:name="K4D" number:automatic-order="true"><number:text>' + ::I18n.translate('date.formats.default').gsub(/\%./) { |x| '</number:text>' + DATE_ELEMENTS[x[1..1]] + '<number:text>' } + '</number:text></number:date-style><style:style style:name="ce1" style:family="table-cell" style:data-style-name="K4D"/>'\
|
49
|
+
"</office:automatic-styles>')\n"
|
50
|
+
|
51
|
+
# Tables
|
52
|
+
code << " zile << ('<office:body><office:spreadsheet><table:table table:name=\"'+#{table.model.name}.model_name.human.#{xml_escape}+'\">')\n"
|
53
|
+
code << " zile << ('<table:table-column table:number-columns-repeated=\"#{table.exportable_columns.size}\"/>')\n"
|
54
|
+
code << " zile << ('<table:table-header-rows><table:table-row>" + columns_headers.collect { |h| "<table:table-cell table:style-name=\"header\" office:value-type=\"string\"><text:p>'+(#{h}).#{xml_escape}+'</text:p></table:table-cell>" }.join + "</table:table-row></table:table-header-rows>')\n"
|
55
|
+
code << " for #{record} in #{generator.records_variable_name}\n"
|
56
|
+
code << " zile << ('<table:table-row>" + table.exportable_columns.collect do |column|
|
57
|
+
'<table:table-cell' + (if column.numeric? || column.datatype == :decimal
|
58
|
+
" office:value-type=\"float\" office:value=\"'+(#{column.datum_code(record)}).#{xml_escape}+'\""
|
59
|
+
elsif column.datatype == :boolean
|
60
|
+
" office:value-type=\"boolean\" office:boolean-value=\"'+(#{column.datum_code(record)}).#{xml_escape}+'\""
|
61
|
+
elsif column.datatype == :date
|
62
|
+
" office:value-type=\"date\" table:style-name=\"ce1\" office:date-value=\"'+(#{column.datum_code(record)}).#{xml_escape}+'\""
|
63
|
+
else
|
64
|
+
' office:value-type="string"'
|
65
|
+
end) + "><text:p>'+(" + column.exporting_datum_code(record, true) + ").#{xml_escape}+'</text:p></table:table-cell>"
|
66
|
+
end.join + "</table:table-row>')\n"
|
67
|
+
code << " end\n"
|
68
|
+
code << " zile << ('</table:table></office:spreadsheet></office:body></office:document-content>')\n"
|
69
|
+
code << "end\n"
|
70
|
+
code << "send_file(file, stream: false, type: #{mime_type.to_s.inspect}, disposition: 'inline', filename: name+'.#{file_extension}')\n"
|
71
|
+
# code << "File.delete(file)\n" # Removes tmp files before they explode the disk
|
72
|
+
# raise code
|
73
|
+
code
|
56
74
|
end
|
57
75
|
end
|
58
76
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ActiveList
|
2
2
|
class Generator
|
3
|
-
attr_accessor :table, :controller, :controller_method_name, :view_method_name, :records_variable_name
|
3
|
+
attr_accessor :table, :controller, :controller_method_name, :view_method_name, :records_variable_name
|
4
4
|
|
5
5
|
def initialize(*args, &_block)
|
6
6
|
options = args.extract_options!
|
@@ -12,7 +12,6 @@ module ActiveList
|
|
12
12
|
@view_method_name = "_#{@controller.controller_name}_list_#{name}_tag"
|
13
13
|
@records_variable_name = "@#{name}"
|
14
14
|
@table = ActiveList::Definition::Table.new(name, model, options)
|
15
|
-
@export_class = options[:export_class]
|
16
15
|
if block_given?
|
17
16
|
yield @table
|
18
17
|
else
|
@@ -48,7 +47,7 @@ module ActiveList
|
|
48
47
|
code << " end\n"
|
49
48
|
for format, exporter in ActiveList::Exporters.hash
|
50
49
|
code << " format.#{format} do\n"
|
51
|
-
code << exporter.new(self).
|
50
|
+
code << exporter.new(self).send_data_code.dig(3)
|
52
51
|
code << " end\n"
|
53
52
|
end
|
54
53
|
code << " end\n"
|
@@ -64,64 +64,6 @@ module ActiveList
|
|
64
64
|
code
|
65
65
|
end
|
66
66
|
|
67
|
-
def exportable_query_code(options = {})
|
68
|
-
unless @table.options.keys.include?(:order)
|
69
|
-
columns = @table.table_columns
|
70
|
-
@table.options[:order] = (columns.any? ? columns.first.name.to_sym : { id: :desc })
|
71
|
-
end
|
72
|
-
|
73
|
-
class_name = "options[\"constant_name\"]&.constantize || #{@table.model.name}"
|
74
|
-
class_name = "(controller_name != '#{class_name.tableize}' && !options[\"constant_name\"] ? controller_name.to_s.classify.constantize : #{class_name})" if collection?
|
75
|
-
|
76
|
-
code = ''
|
77
|
-
|
78
|
-
code << "query = #{class_name}.to_s\n"
|
79
|
-
code << "query << #{scope_code.inspect}\n" if scope_code
|
80
|
-
|
81
|
-
if select_code
|
82
|
-
code << "select = #{select_code}\n"
|
83
|
-
code << "query << \".select(\"\n"
|
84
|
-
code << "query << select.inspect\n"
|
85
|
-
code << "query << \")\"\n"
|
86
|
-
end
|
87
|
-
|
88
|
-
if from_code
|
89
|
-
code << "from = #{from_code}\n"
|
90
|
-
code << "query << \".from(\"\n"
|
91
|
-
code << "query << from.inspect\n"
|
92
|
-
code << "query << \")\"\n"
|
93
|
-
end
|
94
|
-
|
95
|
-
unless @table.options[:conditions].blank?
|
96
|
-
code << "condition = #{conditions_code}\n"
|
97
|
-
code << "query << \".where(\"\n"
|
98
|
-
code << "query << condition.inspect\n"
|
99
|
-
code << "query << \")\"\n"
|
100
|
-
end
|
101
|
-
|
102
|
-
code << "query << \".joins(#{@table.options[:joins].inspect})\"\n" unless @table.options[:joins].blank?
|
103
|
-
|
104
|
-
unless includes_reflections.empty?
|
105
|
-
expr = includes_reflections.inspect[1..-2]
|
106
|
-
code << "query << \".includes(#{expr})\"\n"
|
107
|
-
code << "query << \".references(#{expr})\"\n"
|
108
|
-
end
|
109
|
-
|
110
|
-
unless @table.options[:group].blank?
|
111
|
-
code << "group = #{@table.options[:group].inspect}\n"
|
112
|
-
code << "query << \".group(\"\n"
|
113
|
-
code << "query << group.inspect\n"
|
114
|
-
code << "query << \")\"\n"
|
115
|
-
end
|
116
|
-
|
117
|
-
code << "order = #{var_name(:order)}\n"
|
118
|
-
code << "query << \".reorder(\"\n"
|
119
|
-
code << "query << order.inspect\n"
|
120
|
-
code << "query << \")\"\n"
|
121
|
-
|
122
|
-
code.c
|
123
|
-
end
|
124
|
-
|
125
67
|
protected
|
126
68
|
|
127
69
|
# Compute includes Hash
|
@@ -230,11 +230,11 @@ module ActiveList
|
|
230
230
|
title_value_code = value_code
|
231
231
|
value_code = "content_tag(:div, #{column.datum_code(record)}, style: 'background: #'+" + column.datum_code(record) + ')'
|
232
232
|
elsif column.label_method.to_s.match(/(^|\_)currency$/) && column.datatype == :string
|
233
|
-
value_code = "(
|
233
|
+
value_code = "(Onoma::Currency[#{value_code}] ? Onoma::Currency[#{value_code}].human_name : #{value_code})"
|
234
234
|
elsif column.label_method.to_s.match(/(^|\_)language$/) && column.datatype == :string
|
235
|
-
value_code = "(
|
235
|
+
value_code = "(Onoma::Language[#{value_code}] ? Onoma::Language[#{value_code}].human_name : #{value_code})"
|
236
236
|
elsif column.label_method.to_s.match(/(^|\_)country$/) && column.datatype == :string
|
237
|
-
value_code = "(
|
237
|
+
value_code = "(Onoma::Country[#{value_code}] ? (image_tag('countries/' + #{value_code}.to_s + '.png') + ' ' + Onoma::Country[#{value_code}].human_name).html_safe : #{value_code})"
|
238
238
|
else # if column.datatype == :string
|
239
239
|
value_code = "h(#{value_code}.to_s)"
|
240
240
|
title_value_code = nil
|
@@ -350,8 +350,8 @@ module ActiveList
|
|
350
350
|
unit = "''"
|
351
351
|
precision = "''"
|
352
352
|
if column.options[:currency]
|
353
|
-
unit = "
|
354
|
-
precision = "
|
353
|
+
unit = "Onoma::Currency.find(#{column.currency_for(generator.records_variable_name + '.first').inspect} || 'EUR').symbol.to_s"
|
354
|
+
precision = "Onoma::Currency.find(#{column.currency_for(generator.records_variable_name + '.first').inspect} || 'EUR').precision.to_s"
|
355
355
|
elsif column.computable?
|
356
356
|
unit = "#{generator.records_variable_name}.first.#{column.value_method}.symbol"
|
357
357
|
precision = "'2'"
|
data/lib/active_list/version.rb
CHANGED
data/test/dummy/Gemfile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
+
git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}.git" }
|
2
3
|
|
3
4
|
gem 'rails', '~> 5.0'
|
4
5
|
|
@@ -10,6 +11,8 @@ gem 'active_list', path: '../..'
|
|
10
11
|
|
11
12
|
gem 'sprockets', '< 4'
|
12
13
|
|
14
|
+
gem 'onoma', gitlab: 'ekylibre/onoma'
|
15
|
+
|
13
16
|
# Gems used only for assets and not required
|
14
17
|
# in production environments by default.
|
15
18
|
group :assets do
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,105 +1,105 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brice Texier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: arel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '6'
|
19
|
+
version: 5.0.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '6'
|
26
|
+
version: 5.0.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: code_string
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
33
|
+
version: 0.0.1
|
40
34
|
type: :runtime
|
41
35
|
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
38
|
- - ">="
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
40
|
+
version: 0.0.1
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
42
|
+
name: i18n-complements
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
47
|
+
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - ">="
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0
|
54
|
+
version: '0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
56
|
+
name: onoma
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- - "
|
59
|
+
- - "~>"
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
61
|
+
version: '0.4'
|
68
62
|
type: :runtime
|
69
63
|
prerelease: false
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
|
-
- - "
|
66
|
+
- - "~>"
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
68
|
+
version: '0.4'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
70
|
+
name: rails
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
75
|
+
version: '3.2'
|
76
|
+
- - "<"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '6'
|
82
79
|
type: :runtime
|
83
80
|
prerelease: false
|
84
81
|
version_requirements: !ruby/object:Gem::Requirement
|
85
82
|
requirements:
|
86
83
|
- - ">="
|
87
84
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
85
|
+
version: '3.2'
|
86
|
+
- - "<"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '6'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
90
|
+
name: rubyzip
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
95
|
+
version: '1.0'
|
96
96
|
type: :runtime
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
102
|
+
version: '1.0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: sqlite3
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|