carnival 0.3.1 → 0.3.2

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: cc6432ec857f2c48bcda5425d440c76bfcf1b29e
4
- data.tar.gz: 477ac6e3b42d4c3817fbeb5e9669cd32b03040c4
3
+ metadata.gz: da47e5a84dc2c42624a1e0f53800c175275d8e56
4
+ data.tar.gz: f8b373cdade09c2f05766ec70640dbc1220d2e2c
5
5
  SHA512:
6
- metadata.gz: e41db819877a10da000827e97ec761263fdf58e38a7ca4e9f3697987fa32a696eca884d47b16f47553dc299fda11892f4e04fc804375e7cf1bc2196eca4076fd
7
- data.tar.gz: 6f842d0d0680941967d9e2e3009bfc7bfe5c847c189cb83c7c8599191e81710af3ac4d97c3d2400df3c33e8f3e2f44401ff2f81e53c8f0bdc89719e21eb92497
6
+ metadata.gz: 9467508a8d9a9cdff523df73a7168e95353df1f38f45649c577c2df7986c3b1246fb96b8ccd00cd4197e60a97049622135e0b8935969e0ec4a366a282e0e4321
7
+ data.tar.gz: 050db486044ee794ee6d897280750c2885a44e8c4d7f7f3534e25a54c2c65f8575df55cbbef346b41b0b83da43a08c1fa2281416e2ad56e3aba4fdf3527ebdb8
@@ -3,6 +3,8 @@ $(document).ready(function(){
3
3
  $('body').append('<div class="as-form-overlay">')
4
4
  $("#advanced_search_toggler").toggleClass('is-opened')
5
5
  $("#advanced_search_form").toggle();
6
+ $($('#advanced_search_form').find('input')[0]).focus();
7
+
6
8
  $(".as-form-overlay").click(function(e){
7
9
  $(".as-form-overlay").remove();
8
10
  $("#advanced_search_form").hide();
@@ -13,12 +15,22 @@ $(document).ready(function(){
13
15
  });
14
16
 
15
17
 
18
+ $('#advanced_search_form').find('input').keypress(function(e){
19
+
20
+ if(e.which === 13){
21
+ e.preventDefault();
22
+ var queryParams = [];
23
+ Carnival.submitIndexForm();
24
+ }
25
+ });
26
+
16
27
  $("#search_button").click(function(e){
17
28
  e.preventDefault();
18
29
 
19
30
  var queryParams = [];
20
31
 
21
32
  Carnival.submitIndexForm();
33
+ Carnival.reloadIndexPage();
22
34
  });
23
35
 
24
36
  $("#clear_button").click(function(e){
@@ -36,5 +48,3 @@ $(document).ready(function(){
36
48
  Carnival.submitIndexForm();
37
49
  });
38
50
  });
39
-
40
-
@@ -51,10 +51,6 @@ Carnival.callFunc = function(functionName, data){
51
51
  }
52
52
 
53
53
  Carnival.submitIndexForm = function(){
54
- $(".carnival-index-form form").submit();
55
- }
56
-
57
- Carnival.cleanIndexForm = function(){
58
54
  $("#advanced_search_form input").each(function(){
59
55
  var $input = $(this);
60
56
  var inputValue = $input.val();
@@ -72,6 +68,8 @@ Carnival.cleanIndexForm = function(){
72
68
  if(inputValue == "-1")
73
69
  $(this).val('');
74
70
  });
71
+ var form = $('.carnival-index-form').find('form')
72
+ form.submit();
75
73
  }
76
74
 
77
75
  Carnival.setIndexPageParam = function(name, value){
@@ -12,14 +12,8 @@ module Carnival
12
12
  @thead_renderer = TheadRenderer.new @presenter.fields_for_action(:index), @query_form.sort_column, @query_form.sort_direction
13
13
 
14
14
  respond_to do |format|
15
- format.html do
16
- @records = @query_service.get_query
17
- @paginator = Paginator.new @query_form.page, @query_service.page_count
18
- end
19
- format.csv do
20
- @records = @query_service.records_without_pagination
21
- render csv: @model.model_name.human
22
- end
15
+ format.html { index_for_html }
16
+ format.csv { index_for_csv }
23
17
  end
24
18
  end
25
19
 
@@ -73,6 +67,18 @@ module Carnival
73
67
 
74
68
  protected
75
69
 
70
+ def index_for_html
71
+ @records = @query_service.get_query
72
+ @paginator = Paginator.new @query_form.page, @query_service.page_count
73
+ end
74
+
75
+ def index_for_csv
76
+ csv_string = @query_service.records_without_pagination.map do |record|
77
+ @presenter.csv_for_record(record)
78
+ end.join('')
79
+ send_data(csv_string)
80
+ end
81
+
76
82
  def presenter_name(field)
77
83
  field_name = field.split('/').last
78
84
  carnival_mount = Carnival::Config.mount_at
@@ -0,0 +1,19 @@
1
+ module Carnival
2
+ module CsvStream
3
+ def self.included(base)
4
+ base.class_eval do
5
+ include ActionController::Live
6
+ end
7
+ end
8
+
9
+ def stream_csv(relation, lines_per_chunk, presenter)
10
+ begin
11
+ relation.find_each(batch_size: lines_per_chunk) do |record|
12
+ response.stream.write presenter.csv_for_record(record)
13
+ end
14
+ ensure
15
+ response.stream.close
16
+ end
17
+ end
18
+ end
19
+ end
@@ -86,7 +86,7 @@ module Carnival
86
86
 
87
87
  def field_to_show(presenter, field_name, record, show_only_values=false)
88
88
  if presenter.fields[field_name].params[:as] == :partial
89
- raw(render presenter.fields[field_name].params[:partial_name], record: record)
89
+ raw(render presenter.fields[field_name].partial_name, record: record)
90
90
  else
91
91
  rendered = field_value_and_type presenter, field_name, record
92
92
  field_type = rendered[:field_type]
@@ -106,10 +106,7 @@ module Carnival
106
106
  end
107
107
 
108
108
  def field_value_and_type(presenter, field_name, record)
109
- renderer = FieldRenderers::RendererCreator
110
- .create_field_renderer(presenter, field_name)
111
-
112
- renderer.render_field(record)
109
+ presenter.render_field(field_name, record)
113
110
  end
114
111
 
115
112
  def is_image?(field_type, value)
@@ -215,7 +212,7 @@ module Carnival
215
212
  path = action.path(presenter, id: record.id)
216
213
 
217
214
  if action.default_partial == :default
218
- link_to label, path, class: "carnival-action-link #{label.parameterize}"
215
+ link_to label, path, class: "carnival-action-link #{label.parameterize}", data: action.data
219
216
  elsif action.default_partial == :delete
220
217
  link_to label, path, class: 'carnival-action-link apagar', method: :delete, data: { confirm: I18n.t('are_you_sure') }
221
218
  end
@@ -3,7 +3,7 @@ class AdminRelationshipSelectInput < SimpleForm::Inputs::CollectionSelectInput
3
3
  super
4
4
  input_html_options[:class] << ' carnival-select'
5
5
  if input_html_options[:data][:depends_on].nil?
6
- collection = @builder.object.class.name.constantize.reflect_on_association(attribute_name.to_sym).klass.name.constantize.list_for_select
6
+ collection = @builder.object.class.name.constantize.reflect_on_association(attribute_name.to_sym).klass.name.constantize.list_for_select(add_empty_option: input_html_options[:data][:add_empty_option])
7
7
  else
8
8
  depends_on = @builder.object.class.name.constantize.reflect_on_association(input_html_options[:data][:depends_on]).foreign_key
9
9
  depends_on_value = @builder.object.send(depends_on.to_s)
@@ -41,6 +41,10 @@ module Carnival
41
41
  end
42
42
  end
43
43
 
44
+ def data
45
+ @params[:data]
46
+ end
47
+
44
48
  def show(record)
45
49
  return true if !params[:show_func]
46
50
  return true if !record.respond_to? params[:show_func]
@@ -171,6 +171,14 @@ module Carnival
171
171
  @params[:presenter]
172
172
  end
173
173
 
174
+ def partial_name
175
+ @params[:partial_name] || name.to_s
176
+ end
177
+
178
+ def add_empty_option
179
+ @params[:add_empty_option].present? && @params[:add_empty_option]
180
+ end
181
+
174
182
  private
175
183
 
176
184
  def get_association_and_field
@@ -1,36 +1,34 @@
1
1
  module Carnival
2
2
  class QueryForm
3
- attr_accessor :scope, :search_term, :date_period_label, :date_period_from, :date_period_to, :sort_column, :sort_direction
3
+ attr_accessor :scope, :search_term, :date_period_label,
4
+ :date_period_from, :date_period_to, :sort_column,
5
+ :sort_direction, :page, :advanced_search
4
6
 
5
7
  def initialize(params)
6
8
  @scope = params[:scope]
7
9
  @search_term = params[:search_term]
8
- @advanced_search = params[:advanced_search]
9
10
  @date_period_label = params[:date_period_label]
10
11
  @date_period_from = params[:date_period_from]
11
12
  @date_period_to = params[:date_period_to]
12
13
  @sort_column = params[:sort_column]
13
14
  @sort_direction = params[:sort_direction]
14
- @page = params[:page]
15
- end
16
15
 
17
- def advanced_search
18
- return {} if @advanced_search.nil?
19
- @advanced_search
16
+ @advanced_search = params[:advanced_search] || {}
17
+ @page = (params[:page] || 1).to_i
20
18
  end
21
19
 
22
20
  def to_hash
23
- params = {}
24
- self.instance_variables.each do |var|
25
- var_name = var.to_s.gsub('@', '')
26
- params[var_name] = self.send(var_name)
27
- end
28
- params
29
- end
30
-
31
- def page
32
- return 1 if @page.nil?
33
- @page.to_i
21
+ {
22
+ 'scope' => scope,
23
+ 'search_term' => search_term,
24
+ 'date_period_label' => date_period_label,
25
+ 'date_period_from' => date_period_from,
26
+ 'date_period_to' => date_period_to,
27
+ 'sort_column' => sort_column,
28
+ 'sort_direction' => sort_direction,
29
+ 'advanced_search' => advanced_search,
30
+ 'page' => page
31
+ }
34
32
  end
35
33
  end
36
34
  end
@@ -1,6 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Carnival
3
3
  class BaseAdminPresenter
4
+ DEFAULT_CSV_RECORDS_PER_CHUNK = 500
4
5
  include Dsl
5
6
  include Rails.application.routes.url_helpers
6
7
 
@@ -346,7 +347,7 @@ module Carnival
346
347
  def renderer_for(field_name)
347
348
  FieldRenderers::RendererCreator.create_field_renderer(self, field_name)
348
349
  end
349
-
350
+
350
351
  def translate_field field_name
351
352
  field = get_field(field_name)
352
353
  if field.specified_association?
@@ -358,6 +359,19 @@ module Carnival
358
359
  end
359
360
  end
360
361
 
362
+ def csv_records_per_chunk
363
+ @@csv_records_per_chunk[presenter_class_name] ||
364
+ DEFAULT_CSV_RECORDS_PER_CHUNK
365
+ end
366
+
367
+ def csv_for_record(record)
368
+ CSV.generate do |csv|
369
+ csv << fields_for_action(:csv).keys.map do |field|
370
+ render_field(field, record)[:value]
371
+ end
372
+ end
373
+ end
374
+
361
375
  protected
362
376
 
363
377
  def infer_presenter(field)
@@ -4,7 +4,7 @@ module Carnival
4
4
 
5
5
  included do
6
6
  [:index_as, :actions, :batch_actions, :items_per_page,
7
- :model_names, :fields, :scopes, :forms]
7
+ :model_names, :fields, :scopes, :forms, :csv_records_per_chunk]
8
8
  .each do |variable_name|
9
9
  class_variable_set("@@#{variable_name}", {})
10
10
  end
@@ -46,6 +46,10 @@ module Carnival
46
46
  class_variable_get('@@model_names')[presenter_class_name] = name
47
47
  end
48
48
 
49
+ def csv_records_per_chunk(records_per_chunk)
50
+ class_variable_get('@@csv_records_per_chunk')[presenter_class_name] = records_per_chunk
51
+ end
52
+
49
53
  def instantiate_element(container, klass, name, params)
50
54
  container[presenter_class_name] ||= {}
51
55
  container[presenter_class_name][name] = klass.new(name, params)
@@ -0,0 +1,2 @@
1
+ .gray_border.with_margin_bottom.header
2
+ %h1= @presenter.model_class.model_name.human(default: t('carnival.index'))
@@ -1,5 +1,4 @@
1
- .gray_border.with_margin_bottom.header
2
- %h1= @presenter.model_class.model_name.human(default: t('carnival.index'))
1
+ = render "presenter_title", title: @presenter.model_class.model_name.human(default: t('carnival.index'))
3
2
 
4
3
  - special_scope = params[:special_scope]
5
4
  - presenter = @presenter
@@ -7,12 +7,7 @@
7
7
  %li.search_item
8
8
  .search_field
9
9
  .label
10
- - label_field = presenter.get_field(field)
11
- - translation_prefix = "activerecord.attributes.#{presenter.full_model_name}"
12
- - if presenter.relation_field?(label_field)
13
- = label_tag key, t("#{translation_prefix}.#{key.to_s.gsub('.', '_')}")
14
- - else
15
- = label_tag key, t("#{translation_prefix}.#{key}")
10
+ = label_tag key, I18n.t("carnival.advanced_search_label.#{presenter.model_name}.#{field.name}", default: presenter.translate_field(field))
16
11
  .field
17
12
  = render '/carnival/shared/advanced_search_field', :field => field, :presenter => presenter, :value => value
18
13
  %li.search_item
@@ -27,6 +22,6 @@
27
22
  - value = params[key.to_s]
28
23
  %li.advanced-search-tag
29
24
  %span
30
- = t("activerecord.attributes.#{presenter.full_model_name}.#{key.to_s.gsub('.', '_')}")
25
+ = presenter.translate_field(field)
31
26
  = ": #{value}"
32
- %a{:href => "javascript:Carnival.removeAdvancedSearch('"+key.to_s+"')"}
27
+ %a{:href => "javascript:Carnival.removeAdvancedSearch('"+key.to_s+"')"}
@@ -11,6 +11,7 @@
11
11
  - options[:input_html][:class] = "field-#{field.name}"
12
12
  - options[:input_html][:data] = {}
13
13
  - options[:input_html][:data][:presenter_name] = presenter.presenter_name
14
+ - options[:input_html][:data][:add_empty_option] = field.add_empty_option
14
15
 
15
16
  - if options[:as].is_a? Hash
16
17
  - options[:input_html][:data][:carnival_options] = options[:as].first[1]
@@ -28,6 +29,6 @@
28
29
 
29
30
  - options[:label] = translate_field(presenter, field)
30
31
  - if options[:as] == :partial
31
- = render options[:partial_name], f: f, record: f.object
32
+ = render field.partial_name, f: f, record: f.object
32
33
  - else
33
34
  = f.input field.name, options
@@ -1,3 +1,3 @@
1
1
  module Carnival
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,307 +1,307 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carnival
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vizir Software Studio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-23 00:00:00.000000000 Z
11
+ date: 2016-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coffee-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 4.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: haml-rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.7.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.7.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: inherited_resources
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.5.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.5.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jquery-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sass-rails
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: simple_form
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 3.1.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 3.1.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: unicode
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: 0.4.4.2
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.4.4.2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: will_paginate
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 3.0.7
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 3.0.7
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: better_errors
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: 0.9.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.9.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: binding_of_caller
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.7.2
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.7.2
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: bullet
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ~>
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
173
  version: 4.14.0
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: 4.14.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: byebug
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ~>
185
+ - - "~>"
186
186
  - !ruby/object:Gem::Version
187
187
  version: 3.4.0
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ~>
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 3.4.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: capybara
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ~>
199
+ - - "~>"
200
200
  - !ruby/object:Gem::Version
201
201
  version: 2.4.4
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ~>
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 2.4.4
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: factory_girl_rails
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - ~>
213
+ - - "~>"
214
214
  - !ruby/object:Gem::Version
215
215
  version: 4.5.0
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ~>
220
+ - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: 4.5.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: pry-byebug
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ~>
227
+ - - "~>"
228
228
  - !ruby/object:Gem::Version
229
229
  version: 2.0.0
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ~>
234
+ - - "~>"
235
235
  - !ruby/object:Gem::Version
236
236
  version: 2.0.0
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: poltergeist
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - ~>
241
+ - - "~>"
242
242
  - !ruby/object:Gem::Version
243
243
  version: 1.5.1
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - ~>
248
+ - - "~>"
249
249
  - !ruby/object:Gem::Version
250
250
  version: 1.5.1
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: rspec-rails
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - ~>
255
+ - - "~>"
256
256
  - !ruby/object:Gem::Version
257
257
  version: 3.1.0
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - ~>
262
+ - - "~>"
263
263
  - !ruby/object:Gem::Version
264
264
  version: 3.1.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: simplecov
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - ~>
269
+ - - "~>"
270
270
  - !ruby/object:Gem::Version
271
271
  version: 0.9.1
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - ~>
276
+ - - "~>"
277
277
  - !ruby/object:Gem::Version
278
278
  version: 0.9.1
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: sqlite3
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
- - - ~>
283
+ - - "~>"
284
284
  - !ruby/object:Gem::Version
285
285
  version: 1.3.10
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - ~>
290
+ - - "~>"
291
291
  - !ruby/object:Gem::Version
292
292
  version: 1.3.10
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: capybara-webkit
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - '>='
297
+ - - ">="
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  type: :development
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
- - - '>='
304
+ - - ">="
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
307
  description: Carnival is an easy-to-use and extensible Rails Engine to speed the development
@@ -457,6 +457,7 @@ files:
457
457
  - app/assets/stylesheets/carnival/select2.css.scss
458
458
  - app/assets/stylesheets/carnival/structure.css.scss
459
459
  - app/controllers/carnival/base_admin_controller.rb
460
+ - app/controllers/carnival/csv_stream.rb
460
461
  - app/datatable/carnival/generic_datatable/column_sorter.rb
461
462
  - app/datatable/carnival/generic_datatable/column_sorter_creator.rb
462
463
  - app/datatable/carnival/generic_datatable/relation_column_sorter.rb
@@ -497,9 +498,9 @@ files:
497
498
  - app/views/carnival/base_admin/_index_as_list.html.haml
498
499
  - app/views/carnival/base_admin/_index_as_table.html.haml
499
500
  - app/views/carnival/base_admin/_inner_form.html.haml
501
+ - app/views/carnival/base_admin/_presenter_title.html.haml
500
502
  - app/views/carnival/base_admin/edit.html.haml
501
503
  - app/views/carnival/base_admin/home.html.haml
502
- - app/views/carnival/base_admin/index.csv.haml
503
504
  - app/views/carnival/base_admin/index.html.haml
504
505
  - app/views/carnival/base_admin/load_dependent_select_options.html.haml
505
506
  - app/views/carnival/base_admin/new.html.haml
@@ -552,17 +553,17 @@ require_paths:
552
553
  - lib
553
554
  required_ruby_version: !ruby/object:Gem::Requirement
554
555
  requirements:
555
- - - '>='
556
+ - - ">="
556
557
  - !ruby/object:Gem::Version
557
558
  version: '0'
558
559
  required_rubygems_version: !ruby/object:Gem::Requirement
559
560
  requirements:
560
- - - '>='
561
+ - - ">="
561
562
  - !ruby/object:Gem::Version
562
563
  version: '0'
563
564
  requirements: []
564
565
  rubyforge_project:
565
- rubygems_version: 2.2.2
566
+ rubygems_version: 2.4.6
566
567
  signing_key:
567
568
  specification_version: 4
568
569
  summary: Carnival is an easy-to-use and extensible Rails Engine to speed the development
@@ -1,6 +0,0 @@
1
- - csv = CSV.generate do |csv|
2
- - @records.each do |record|
3
- - csv << @presenter.fields_for_action(:csv).map do |key, field|
4
- - field_value_and_type(@presenter, key,record)[:value]
5
-
6
- = raw csv