active_list 6.7.3 → 6.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3f58a6cda58d2e022d1114a9207a395ac25ade3
4
- data.tar.gz: 06eb367cb174b01eb25252266d0f5d8da02eb600
3
+ metadata.gz: b0fee98280d5ca65c397076a72d92e766296dae7
4
+ data.tar.gz: 8067cd16ede90cdee14e3dff5283835dfad8a27f
5
5
  SHA512:
6
- metadata.gz: 090c9f29bfd1bf8933d7406fb4e7e5af51f3def7f9a714d2d121120442bed65cbde7e7745885ad974ac84612229fd12847bc9e67af044e2c9facd261e9ec9720
7
- data.tar.gz: dada39b2afb84a1dfe68807e6a00b6b0423abd0847baaefba25a63f54fcdf8cbc392ba81b97eebf9193b17669a8af882c550c69ad08ac2da02fb5316bec73dc0
6
+ metadata.gz: 58efa00509d17a9f49db4671b2ea07490ef7a2b0ee5a5ebac748412ae8ba978f1fa4f7c8788d4e923861ce35e20449e03a51196ec761695661a70adbdfc24358
7
+ data.tar.gz: 5418a1860ad6ef8e6d6eacc0dec5a7f3a7e588734c728e9a4e4dd36ee4d5e925f0b5bbd8e9d426a3f91d629153abd07c7d577ea46a1e9ed7171fd5110f99b86b
@@ -24,11 +24,11 @@ module ActiveList
24
24
  # Set the temporary directory
25
25
  # Pathname or callable are acceptable
26
26
  def self.temporary_directory=(dir)
27
- if dir.respond_to?(:call) || dir.is_a?(Pathname)
28
- @@temporary_directory = dir
29
- else
30
- @@temporary_directory = Pathname(dir)
31
- end
27
+ @@temporary_directory = if dir.respond_to?(:call) || dir.is_a?(Pathname)
28
+ dir
29
+ else
30
+ Pathname(dir)
31
+ end
32
32
  end
33
33
 
34
34
  # Returns the temporary directory
@@ -45,7 +45,7 @@ module ActiveList
45
45
 
46
46
  def self.register_renderer(name, renderer)
47
47
  unless renderer < ActiveList::Renderers::AbstractRenderer
48
- fail ArgumentError, 'A renderer must be ActiveList::Renderers::Renderer'
48
+ raise ArgumentError, 'A renderer must be ActiveList::Renderers::Renderer'
49
49
  end
50
50
  @@renderers[name] = renderer
51
51
  end
@@ -55,7 +55,7 @@ module ActiveList
55
55
 
56
56
  def self.register_exporter(name, exporter)
57
57
  unless exporter < ActiveList::Exporters::AbstractExporter
58
- fail ArgumentError, "ActiveList::Exporters::AbstractExporter expected (got #{exporter.name}/#{exporter.ancestors.inspect})"
58
+ raise ArgumentError, "ActiveList::Exporters::AbstractExporter expected (got #{exporter.name}/#{exporter.ancestors.inspect})"
59
59
  end
60
60
  @@exporters[name] = exporter
61
61
  end
@@ -12,7 +12,7 @@ module ActiveList
12
12
  end
13
13
 
14
14
  def header_code
15
- fail NotImplementedError, "#{self.class.name}#header_code is not implemented."
15
+ raise NotImplementedError, "#{self.class.name}#header_code is not implemented."
16
16
  end
17
17
 
18
18
  def hidden?
@@ -41,11 +41,11 @@ module ActiveList
41
41
  @id
42
42
  end
43
43
 
44
- alias_method :sort_id, :name
44
+ alias sort_id name
45
45
 
46
46
  def check_options!(options, *keys)
47
47
  for key in options.keys
48
- fail ArgumentError, "Key :#{key} is unexpected. (Expecting: #{keys.to_sentence})"
48
+ raise ArgumentError, "Key :#{key} is unexpected. (Expecting: #{keys.to_sentence})"
49
49
  end
50
50
  end
51
51
  end
@@ -4,9 +4,9 @@ module ActiveList
4
4
  class ActionColumn < AbstractColumn
5
5
  include ActiveList::Helpers
6
6
 
7
- ID_PLACEHOLDER = '##IDS##'
7
+ ID_PLACEHOLDER = '##IDS##'.freeze
8
8
 
9
- USE_MODES = [:none, :single, :many, :both]
9
+ USE_MODES = [:none, :single, :many, :both].freeze
10
10
 
11
11
  attr_reader :use_mode
12
12
 
@@ -14,7 +14,7 @@ module ActiveList
14
14
  super(table, name, options)
15
15
  @use_mode = (@options.delete(:on) || :single).to_sym
16
16
  unless USE_MODES.include?(@use_mode)
17
- fail "Invalid use mode: #{@use_mode.inspect}"
17
+ raise "Invalid use mode: #{@use_mode.inspect}"
18
18
  end
19
19
  if @name.to_s == 'destroy' && !@options.key?(:method)
20
20
  @options[:method] = :delete
@@ -40,7 +40,7 @@ module ActiveList
40
40
  end
41
41
 
42
42
  def global?
43
- self.use_none? || self.use_many?
43
+ use_none? || use_many?
44
44
  end
45
45
 
46
46
  def header_code
@@ -67,7 +67,7 @@ module ActiveList
67
67
  action = @name
68
68
  format = @options[:format] ? ", format: '#{@options[:format]}'" : ''
69
69
  if @options[:remote]
70
- fail StandardError, 'Sure to use :remote ?'
70
+ raise StandardError, 'Sure to use :remote ?'
71
71
  # remote_options = @options.dup
72
72
  # remote_options['data-confirm'] = "#{@options[:confirm].inspect}.tl".c unless @options[:confirm].nil?
73
73
  # remote_options.delete :remote
@@ -81,10 +81,10 @@ module ActiveList
81
81
  # code += ")"
82
82
  elsif @options[:actions]
83
83
  unless use_single?
84
- fail StandardError, 'Only compatible with single actions'
84
+ raise StandardError, 'Only compatible with single actions'
85
85
  end
86
86
  unless @options[:actions].is_a? Hash
87
- fail StandardError, ':actions parameter have to be a Hash.'
87
+ raise StandardError, ':actions parameter have to be a Hash.'
88
88
  end
89
89
  cases = []
90
90
  for expected, url in @options[:actions]
@@ -6,7 +6,7 @@ module ActiveList
6
6
  def initialize(table, name, options = {})
7
7
  super(table, name, options)
8
8
  unless @options[:through]
9
- fail ArgumentError, 'Option :through must be given'
9
+ raise ArgumentError, 'Option :through must be given'
10
10
  end
11
11
  reflection_name = @options.delete(:through).to_sym
12
12
  if @reflection = @table.model.reflect_on_association(reflection_name)
@@ -15,23 +15,23 @@ module ActiveList
15
15
  elsif @reflection.macro == :has_one
16
16
  # Do some stuff
17
17
  else
18
- fail ArgumentError, "Only belongs_to are usable. Can't handle: #{reflection.macro} :#{reflection.name}."
18
+ raise ArgumentError, "Only belongs_to are usable. Can't handle: #{reflection.macro} :#{reflection.name}."
19
19
  end
20
20
  else
21
- fail UnknownReflection, "Reflection #{reflection_name} cannot be found for #{table.model.name}."
21
+ raise UnknownReflection, "Reflection #{reflection_name} cannot be found for #{table.model.name}."
22
22
  end
23
23
  unless klass = begin
24
24
  @reflection.class_name.constantize
25
25
  rescue
26
26
  nil
27
27
  end
28
- fail StandardError, "Given reflection #{reflection_name} seems to be invalid"
28
+ raise StandardError, "Given reflection #{reflection_name} seems to be invalid"
29
29
  end
30
30
  columns_def = klass.columns_hash.keys.map(&:to_sym)
31
31
  unless @label_method = @options.delete(:label_method)
32
32
  columns = columns_def + @reflection.class_name.constantize.instance_methods.map(&:to_sym)
33
33
  unless @label_method = LABELS_COLUMNS.detect { |m| columns.include?(m) }
34
- fail ArgumentError, ":label_method option must be given for association #{name}. (#{columns.inspect})"
34
+ raise ArgumentError, ":label_method option must be given for association #{name}. (#{columns.inspect})"
35
35
  end
36
36
  end
37
37
  unless @sort_column = @options.delete(:sort)
@@ -48,16 +48,16 @@ module ActiveList
48
48
  # Code for rows
49
49
  def datum_code(record = 'record_of_the_death', child = false)
50
50
  code = ''
51
- if child
52
- code = 'nil'
53
- # if @options[:children].is_a?(FalseClass)
54
- # code = "nil"
55
- # else
56
- # code = "#{record}.#{table.options[:children]}.#{@reflection.name}.#{@options[:children] || @label_method}"
57
- # end
58
- else
59
- code = "(#{record}.#{@reflection.name} ? #{record}.#{@reflection.name}.#{@label_method} : nil)"
60
- end
51
+ code = if child
52
+ 'nil'
53
+ # if @options[:children].is_a?(FalseClass)
54
+ # code = "nil"
55
+ # else
56
+ # code = "#{record}.#{table.options[:children]}.#{@reflection.name}.#{@options[:children] || @label_method}"
57
+ # end
58
+ else
59
+ "(#{record}.#{@reflection.name} ? #{record}.#{@reflection.name}.#{@label_method} : nil)"
60
+ end
61
61
  code.c
62
62
  end
63
63
 
@@ -7,13 +7,11 @@ module ActiveList
7
7
  super(table, name, options)
8
8
  @label_method = (options[:label_method] || @name).to_sym
9
9
  unless @sort_column = options[:sort]
10
- if @table.model.columns_hash[@label_method.to_s]
11
- @sort_column = @label_method
12
- elsif @table.model.columns_hash[@name.to_s]
13
- @sort_column = @name
14
- else
15
- @sort_column = nil
16
- end
10
+ @sort_column = if @table.model.columns_hash[@label_method.to_s]
11
+ @label_method
12
+ elsif @table.model.columns_hash[@name.to_s]
13
+ @name
14
+ end
17
15
  end
18
16
  @computation_method = options[:on_select]
19
17
  @column = @table.model.columns_hash[@label_method.to_s]
@@ -22,15 +20,15 @@ module ActiveList
22
20
  # Code for rows
23
21
  def datum_code(record = 'record_of_the_death', child = false)
24
22
  code = ''
25
- if child
26
- if @options[:children].is_a?(FalseClass)
27
- code = 'nil'
28
- else
29
- code = "#{record}.#{table.options[:children]}.#{@options[:children] || @label_method}"
30
- end
31
- else
32
- code = "#{record}.#{@label_method}"
33
- end
23
+ code = if child
24
+ if @options[:children].is_a?(FalseClass)
25
+ 'nil'
26
+ else
27
+ "#{record}.#{table.options[:children]}.#{@options[:children] || @label_method}"
28
+ end
29
+ else
30
+ "#{record}.#{@label_method}"
31
+ end
34
32
  code.c
35
33
  end
36
34
 
@@ -1,7 +1,7 @@
1
1
  module ActiveList
2
2
  module Definition
3
3
  class DataColumn < AbstractColumn
4
- LABELS_COLUMNS = [:full_name, :label, :name, :number, :coordinate]
4
+ LABELS_COLUMNS = [:full_name, :label, :name, :number, :coordinate].freeze
5
5
 
6
6
  def header_code
7
7
  if @options[:label]
@@ -19,12 +19,7 @@ module ActiveList
19
19
  elsif datatype == :date
20
20
  datum = "(#{datum}.nil? ? '' : #{datum}.l)"
21
21
  elsif datatype == :decimal && !noview
22
- currency = nil
23
- if currency = options[:currency]
24
- currency = currency[:body] if currency.is_a?(Hash)
25
- currency = :currency if currency.is_a?(TrueClass)
26
- currency = "#{record}.#{currency}".c if currency.is_a?(Symbol)
27
- end
22
+ currency = currency_for(record)
28
23
  datum = "(#{datum}.nil? ? '' : #{datum}.l(#{'currency: ' + currency.inspect if currency}))"
29
24
  elsif @name.to_s.match(/(^|\_)currency$/) && datatype == :string
30
25
  datum = "(Nomen::Currencies[#{datum}] ? Nomen::Currencies[#{datum}].human_name : '')"
@@ -32,7 +27,7 @@ module ActiveList
32
27
  datum = "(Nomen::Countries[#{datum}] ? Nomen::Countries[#{datum}].human_name : '')"
33
28
  elsif @name.to_s.match(/(^|\_)language$/) && datatype == :string
34
29
  datum = "(Nomen::Languages[#{datum}] ? Nomen::Languages[#{datum}].human_name : '')"
35
- elsif self.enumerize?
30
+ elsif enumerize?
36
31
  datum = "(#{datum}.nil? ? '' : #{datum}.text)"
37
32
  end
38
33
  datum
@@ -47,6 +42,16 @@ module ActiveList
47
42
  false
48
43
  end
49
44
 
45
+ def currency_for(record)
46
+ currency = options[:currency]
47
+ if currency
48
+ currency = currency[:body] if currency.is_a?(Hash)
49
+ currency = :currency if currency.is_a?(TrueClass)
50
+ currency = "#{record}.#{currency}".c if currency.is_a?(Symbol)
51
+ end
52
+ currency
53
+ end
54
+
50
55
  def state_machine?
51
56
  false
52
57
  end
@@ -67,9 +72,9 @@ module ActiveList
67
72
 
68
73
  # Check if a column is sortable
69
74
  def sortable?
70
- return true
75
+ true
71
76
  # not self.action? and
72
- #!options[:through] && !@column.nil?
77
+ # !options[:through] && !@column.nil?
73
78
  end
74
79
 
75
80
  # Generate code in order to get the (foreign) record of the column
@@ -78,7 +83,7 @@ module ActiveList
78
83
  end
79
84
 
80
85
  def sort_expression
81
- fail NotImplementedError, 'sort_expression must be implemented'
86
+ raise NotImplementedError, 'sort_expression must be implemented'
82
87
  end
83
88
  end
84
89
  end
@@ -158,14 +158,14 @@ module ActiveList
158
158
  end
159
159
  if klass && klass < AbstractColumn
160
160
  unless name.is_a?(Symbol)
161
- fail ArgumentError, "Name of a column must be a Symbol (got #{name.inspect})."
161
+ raise ArgumentError, "Name of a column must be a Symbol (got #{name.inspect})."
162
162
  end
163
163
  if @columns.detect { |c| c.name == name }
164
- fail ArgumentError, "Column name must be unique. #{name.inspect} is already used in #{self.name}"
164
+ raise ArgumentError, "Column name must be unique. #{name.inspect} is already used in #{self.name}"
165
165
  end
166
166
  @columns << klass.new(self, name, options)
167
167
  else
168
- fail ArgumentError, "Invalid column type: #{type.inspect}"
168
+ raise ArgumentError, "Invalid column type: #{type.inspect}"
169
169
  end
170
170
  end
171
171
  end
@@ -17,7 +17,7 @@ module ActiveList
17
17
  end
18
18
 
19
19
  def send_data_code
20
- fail NotImplementedError, "#{self.class.name}#format_data_code is not implemented."
20
+ raise NotImplementedError, "#{self.class.name}#format_data_code is not implemented."
21
21
  end
22
22
 
23
23
  def columns_headers(options = {})
@@ -37,11 +37,11 @@ module ActiveList
37
37
  record = options[:record] || 'record_of_the_death'
38
38
  for column in columns
39
39
  next unless column.is_a?(ActiveList::Definition::AbstractColumn)
40
- if nature == :header
41
- datum = column.header_code
42
- else
43
- datum = column.exporting_datum_code(record)
44
- end
40
+ datum = if nature == :header
41
+ column.header_code
42
+ else
43
+ column.exporting_datum_code(record)
44
+ end
45
45
  array << (options[:encoding] ? datum + ".to_s.encode('#{options[:encoding]}', invalid: :replace, undef: :replace)" : datum)
46
46
  end
47
47
  array
@@ -8,10 +8,10 @@ module ActiveList
8
8
  module Exporters
9
9
  class OpenDocumentSpreadsheetExporter < AbstractExporter
10
10
  DATE_ELEMENTS = {
11
- 'm' => "<number:month number:style=\"long\"/>",
12
- 'd' => "<number:day number:style=\"long\"/>",
11
+ 'm' => '<number:month number:style="long"/>',
12
+ 'd' => '<number:day number:style="long"/>',
13
13
  'Y' => '<number:year/>'
14
- }
14
+ }.freeze
15
15
 
16
16
  def file_extension
17
17
  'ods'
@@ -42,9 +42,9 @@ module ActiveList
42
42
  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"
43
43
  # Styles
44
44
  code << " zile << ('<office:automatic-styles>"\
45
- "<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>"\
46
- "<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>"\
47
- "<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\"/>"\
45
+ '<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>'\
46
+ '<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>'\
47
+ '<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"/>'\
48
48
  "</office:automatic-styles>')\n"
49
49
 
50
50
  # Tables
@@ -60,7 +60,7 @@ module ActiveList
60
60
  elsif column.datatype == :date
61
61
  " office:value-type=\"date\" table:style-name=\"ce1\" office:date-value=\"'+(#{column.datum_code(record)}).#{xml_escape}+'\""
62
62
  else
63
- " office:value-type=\"string\""
63
+ ' office:value-type="string"'
64
64
  end) + "><text:p>'+(" + column.exporting_datum_code(record, true) + ").#{xml_escape}+'</text:p></table:table-cell>"
65
65
  end.join + "</table:table-row>')\n"
66
66
  code << " end\n"
@@ -11,10 +11,10 @@ module ActiveList
11
11
  end
12
12
 
13
13
  class_name = @table.model.name
14
- class_name = "(controller_name != '#{class_name.tableize}' ? controller_name.to_s.classify.constantize : #{class_name})" if self.collection?
14
+ class_name = "(controller_name != '#{class_name.tableize}' ? controller_name.to_s.classify.constantize : #{class_name})" if collection?
15
15
 
16
16
  # Find data
17
- query_code = "#{class_name}"
17
+ query_code = class_name.to_s
18
18
  query_code << scope_code if scope_code
19
19
  query_code << ".select(#{select_code})" if select_code
20
20
  query_code << ".where(#{conditions_code})" unless @table.options[:conditions].blank?
@@ -90,12 +90,12 @@ module ActiveList
90
90
  code << conditions[1..-1].collect { |p| ', ' + sanitize_condition(p) }.join if conditions.size > 1
91
91
  code << ']'
92
92
  when Symbol # Method
93
- fail 'What?' # Amazingly explicit.
93
+ raise 'What?' # Amazingly explicit.
94
94
  # code << conditions.first.to_s + '('
95
95
  # code << conditions[1..-1].collect { |p| sanitize_condition(p) }.join(', ') if conditions.size > 1
96
96
  # code << ')'
97
97
  else
98
- fail ArgumentError, 'First element of an Array can only be String or Symbol.'
98
+ raise ArgumentError, 'First element of an Array can only be String or Symbol.'
99
99
  end
100
100
  when Hash # SQL
101
101
  code << '{' + conditions.collect { |key, value| key.to_s + ': ' + sanitize_condition(value) }.join(',') + '}'
@@ -106,7 +106,7 @@ module ActiveList
106
106
  when String
107
107
  code << conditions.inspect
108
108
  else
109
- fail ArgumentError, "Unsupported type for conditions: #{conditions.inspect}"
109
+ raise ArgumentError, "Unsupported type for conditions: #{conditions.inspect}"
110
110
  end
111
111
  code
112
112
  end
@@ -2,29 +2,29 @@ module ActiveList
2
2
  module Helpers
3
3
  def recordify!(value, record_name)
4
4
  if value.is_a?(Symbol)
5
- return record_name + '.' + value.to_s
5
+ record_name + '.' + value.to_s
6
6
  elsif value.is_a?(CodeString)
7
- return '(' + value.gsub(/RECORD/, record_name) + ')'
7
+ '(' + value.gsub(/RECORD/, record_name) + ')'
8
8
  else
9
- fail ArgumentError, 'CodeString or Symbol must be given to be recordified)'
9
+ raise ArgumentError, 'CodeString or Symbol must be given to be recordified)'
10
10
  end
11
11
  end
12
12
 
13
13
  def recordify(value, record_name)
14
14
  if value.is_a?(Symbol)
15
- return record_name + '.' + value.to_s
15
+ record_name + '.' + value.to_s
16
16
  elsif value.is_a?(CodeString)
17
- return '(' + value.gsub(/RECORD/, record_name) + ')'
17
+ '(' + value.gsub(/RECORD/, record_name) + ')'
18
18
  else
19
- return value.inspect
19
+ value.inspect
20
20
  end
21
21
  end
22
22
 
23
23
  def urlify(value, record_name)
24
24
  if value.is_a?(CodeString)
25
- return '(' + value.gsub(/RECORD/, record_name) + ')'
25
+ '(' + value.gsub(/RECORD/, record_name) + ')'
26
26
  else
27
- return value.inspect
27
+ value.inspect
28
28
  end
29
29
  end
30
30
  end
@@ -29,7 +29,7 @@ module ActiveList
29
29
  begin
30
30
  helper_method = "_#{kontroller.controller_name}_#{__method__}_#{name || kontroller.controller_name}_tag".to_sym
31
31
  kontroller = kontroller.superclass
32
- end until self.respond_to?(helper_method)
32
+ end until respond_to?(helper_method)
33
33
  send(helper_method, options, &block)
34
34
  end
35
35
  end
@@ -13,11 +13,11 @@ module ActiveList
13
13
  end
14
14
 
15
15
  def remote_update_code
16
- fail NotImplementedError, "#{self.class.name}#remote_update_code is not implemented."
16
+ raise NotImplementedError, "#{self.class.name}#remote_update_code is not implemented."
17
17
  end
18
18
 
19
19
  def build_data_code
20
- fail NotImplementedError, "#{self.class.name}#build_table_code is not implemented."
20
+ raise NotImplementedError, "#{self.class.name}#build_table_code is not implemented."
21
21
  end
22
22
  end
23
23
  end
@@ -16,7 +16,7 @@ module ActiveList
16
16
  text: :txt,
17
17
  time: :tim,
18
18
  timestamp: :dtt
19
- }
19
+ }.freeze
20
20
 
21
21
  def remote_update_code
22
22
  code = "if params[:column] && params[:visibility]\n"
@@ -77,7 +77,7 @@ module ActiveList
77
77
  code << " computation_row << '<td></td>'\n" if table.selectable?
78
78
  table.columns.each do |column|
79
79
  value = ''
80
- code << " computation_row << \"<td"
80
+ code << ' computation_row << "<td'
81
81
  if column.computable?
82
82
  code << " data-list-result-for='#{column.short_id}'"
83
83
  value = "<div><span><strong>#{I18n.translate("list.results.#{column.computation_method}")}:</strong></span>"
@@ -86,7 +86,7 @@ module ActiveList
86
86
  if column.is_a? ActiveList::Definition::DataColumn
87
87
  code << "\#\{' class=\"#{column.short_id}' + (#{var_name(:params)}[:hidden_columns].include?(:#{column.name}) ? ' hidden\"' : '\"')\}"
88
88
  end
89
- code << ">"
89
+ code << '>'
90
90
  code << value
91
91
  code << "</td>\"\n"
92
92
  end
@@ -139,7 +139,7 @@ module ActiveList
139
139
  def columns_to_cells(nature, options = {})
140
140
  code = ''
141
141
  unless [:body, :children].include?(nature)
142
- fail ArgumentError, 'Nature is invalid'
142
+ raise ArgumentError, 'Nature is invalid'
143
143
  end
144
144
  record = options[:record] || 'record_of_the_death'
145
145
  if table.selectable?
@@ -263,7 +263,7 @@ module ActiveList
263
263
  list = [5, 10, 20, 50, 100, 200]
264
264
  list << table.options[:per_page].to_i if table.options[:per_page].to_i > 0
265
265
  list = list.uniq.sort
266
- menu << "<li class=\"parent\">"
266
+ menu << '<li class="parent">'
267
267
  menu << "<a class=\"pages\"><i></i>' + h('list.items_per_page'.t) + '</a><ul>"
268
268
  for n in list
269
269
  menu << "<li data-list-change-page-size=\"#{n}\" '+(#{var_name(:params)}[:per_page] == #{n} ? ' class=\"check\"' : '') + '><a><i></i>' + h('list.x_per_page'.t(count: #{n})) + '</a></li>"
@@ -272,7 +272,7 @@ module ActiveList
272
272
  end
273
273
 
274
274
  # Column selector
275
- menu << "<li class=\"parent\">"
275
+ menu << '<li class="parent">'
276
276
  menu << "<a class=\"columns\"><i></i>' + h('list.columns'.t) + '</a><ul>"
277
277
  for column in table.data_columns
278
278
  menu << "<li data-list-toggle-column=\"#{column.name}\" class=\"' + (#{var_name(:params)}[:hidden_columns].include?(:#{column.name}) ? 'unchecked' : 'checked') + '\"><a><i></i>' + h(#{column.header_code}) + '</a></li>"
@@ -280,9 +280,9 @@ module ActiveList
280
280
  menu << '</ul></li>'
281
281
 
282
282
  # Separator
283
- menu << "<li class=\"separator\"></li>"
283
+ menu << '<li class="separator"></li>'
284
284
  # Exports
285
- for format, exporter in ActiveList.exporters
285
+ ActiveList.exporters.each do |format, _exporter|
286
286
  menu << "<li class=\"export export-#{format}\">' + link_to(content_tag(:i) + h('list.export_as'.t(exported: :#{format}.t(scope: 'list.export.formats'))), params.merge(action: :#{generator.controller_method_name}, sort: #{var_name(:params)}[:sort], dir: #{var_name(:params)}[:dir], format: '#{format}')) + '</li>"
287
287
  end
288
288
  menu << '</ul></span>'
@@ -293,20 +293,17 @@ module ActiveList
293
293
  # and pagination management
294
294
  def header_code
295
295
  code = ''
296
- if table.columns.any? { |column| column.is_a?(ActiveList::Definition::DataColumn) && column.options[:currency] }
297
- code << "currency = Nomen::Currencies[#{generator.records_variable_name}.first.currency] if #{generator.records_variable_name}.any?\n"
298
- end
299
296
  code << "'<thead><tr>"
300
- code << "<th class=\"list-selector\"></th>" if table.selectable?
301
- for column in table.columns
297
+ code << '<th class="list-selector"></th>' if table.selectable?
298
+ table.columns.each do |column|
302
299
  next if column.is_a?(ActiveList::Definition::ActionColumn) && !column.use_single?
303
300
  code << "<th data-list-column=\"#{column.sort_id}\""
304
301
  code << " data-list-column-cells=\"#{column.short_id}\""
305
302
  code << " data-list-column-sort=\"'+(#{var_name(:params)}[:sort] != '#{column.sort_id}' ? 'asc' : #{var_name(:params)}[:dir] == 'asc' ? 'desc' : 'asc')+'\"" if column.sortable?
306
303
  code << " data-list-column-computation=\"#{column.computation_method}\"" if column.computable?
307
- if column.is_a?(ActiveList::Definition::DataColumn) && column.options[:currency]
308
- code << " data-list-column-currency-symbol=\"' + (currency ? currency.symbol : '') + '\""
309
- code << " data-list-column-currency-precision=\"' + (currency ? currency.precision.to_s : '') + '\""
304
+ if table.selectable? && column.is_a?(ActiveList::Definition::DataColumn) && column.options[:currency] &&
305
+ code << " data-list-column-currency-symbol=\"' + (#{generator.records_variable_name}.any? ? Nomen::Currency.find(#{column.currency_for(generator.records_variable_name + '.first').inspect} || 'EUR').symbol.to_s : '') + '\""
306
+ code << " data-list-column-currency-precision=\"' + (#{generator.records_variable_name}.any? ? Nomen::Currency.find(#{column.currency_for(generator.records_variable_name + '.first').inspect} || 'EUR').precision.to_s : '') + '\""
310
307
  end
311
308
  code << " class=\"#{column_classes(column, true, true)}\""
312
309
  code << '>'
@@ -342,13 +339,13 @@ module ActiveList
342
339
 
343
340
  if table.paginate?
344
341
  pagination = ''
345
- current_page = "#{var_name(:page)}"
346
- last_page = "#{var_name(:last)}"
342
+ current_page = var_name(:page).to_s
343
+ last_page = var_name(:last).to_s
347
344
 
348
345
  pagination << "<span class=\"list-pagination\" data-list-ref=\"#{uid}\">"
349
346
  pagination << "<span class=\"status\">' + 'list.pagination.x_to_y_of_total'.t(x: (#{var_name(:offset)} + (#{var_name(:count)} > 0 ? 1 : 0)), y: ((#{var_name(:last)} == #{var_name(:page)}) ? #{var_name(:count)} : #{var_name(:offset)} + #{var_name(:limit)}), total: #{var_name(:count)}) + '</span>"
350
347
 
351
- pagination << "<span class=\"paginator\">"
348
+ pagination << '<span class="paginator">'
352
349
  pagination << "<a href=\"#\" data-list-move-to-page=\"' + (#{current_page} - 1).to_s + '\" class=\"btn previous-page\"' + (#{current_page} != 1 ? '' : ' disabled=\"true\"') + '><i></i>' + ::I18n.translate('list.pagination.previous') + '</a>"
353
350
 
354
351
  x = '@@PAGE-NUMBER@@'
@@ -1,3 +1,3 @@
1
1
  module ActiveList
2
- VERSION = '6.7.3'
2
+ VERSION = '6.7.4'.freeze
3
3
  end
@@ -1,5 +1,4 @@
1
1
  class ContactsController < ApplicationController
2
-
3
2
  # GET /contacts
4
3
  # GET /contacts.json
5
4
  def index
@@ -11,26 +11,24 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20120510134500) do
15
-
16
- create_table "contacts", force: :cascade do |t|
17
- t.integer "person_id"
18
- t.text "address"
19
- t.string "phone"
20
- t.string "fax"
21
- t.string "country"
22
- t.datetime "created_at", null: false
23
- t.datetime "updated_at", null: false
14
+ ActiveRecord::Schema.define(version: 20_120_510_134_500) do
15
+ create_table 'contacts', force: :cascade do |t|
16
+ t.integer 'person_id'
17
+ t.text 'address'
18
+ t.string 'phone'
19
+ t.string 'fax'
20
+ t.string 'country'
21
+ t.datetime 'created_at', null: false
22
+ t.datetime 'updated_at', null: false
24
23
  end
25
24
 
26
- create_table "people", force: :cascade do |t|
27
- t.string "name"
28
- t.date "born_on"
29
- t.decimal "height"
30
- t.decimal "balance_amount"
31
- t.string "currency"
32
- t.datetime "created_at", null: false
33
- t.datetime "updated_at", null: false
25
+ create_table 'people', force: :cascade do |t|
26
+ t.string 'name'
27
+ t.date 'born_on'
28
+ t.decimal 'height'
29
+ t.decimal 'balance_amount'
30
+ t.string 'currency'
31
+ t.datetime 'created_at', null: false
32
+ t.datetime 'updated_at', null: false
34
33
  end
35
-
36
34
  end
@@ -7,7 +7,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
7
  require 'active_list'
8
8
  dummy_path = Pathname.new(__FILE__).dirname.join('dummy')
9
9
 
10
- ENV["BUNDLE_GEMFILE"] = ""
10
+ ENV['BUNDLE_GEMFILE'] = ''
11
11
  Kernel.system("cd #{dummy_path} && bundle install && bundle exec rake db:drop db:create db:migrate db:seed RAILS_ENV=test")
12
12
 
13
13
  # CURRENT FILE :: test/test_helper.rb
@@ -27,8 +27,8 @@ module ActionView
27
27
  module Nomen
28
28
  class Currencies
29
29
  def self.[](_)
30
- klass = Struct.const_defined?(:Currency) ? Struct::Currency : Struct.new("Currency", :precision, :symbol)
31
- return klass.new(2, "")
30
+ klass = Struct.const_defined?(:Currency) ? Struct::Currency : Struct.new('Currency', :precision, :symbol)
31
+ klass.new(2, '')
32
32
  end
33
33
  end
34
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.7.3
4
+ version: 6.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brice Texier