the_grid 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTM1YzE1MmUxNzZjZTZlNjIyYjNkNjhhYWNiNmY4YWQ2ZGU4YjAzMQ==
4
+ Yzg5ZTNhZWI2OTc2ZWFjMjk3NzNlZTRhMzA0NTQzMTFlYzBhOTFlMw==
5
5
  data.tar.gz: !binary |-
6
- NTkyN2FmNTZlMWUxZWM0NDI4YmVkNTYzMjMyODdkYWE5MGVlOWE1Yg==
6
+ MDM0ZWEwMWMzZGEwNzllNDY5YmY0ZDVmMmZhYjBlYmJjZGEyMGUyNA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NDkyYzc4ZDQ4NjM3YWU3OTNjZDQ2YzQzZTNkYzU1NWJjY2IyYTYzMjQ2ZmEy
10
- YjI3YmIyYmM5MzRjZTJkNjE5NDU0YWM1YzFhZTQ5NjljNjdkMGU3NmFlNTlk
11
- ZDQyMmEzMjk2ZTkxN2QwM2YxMDIwYmEwM2Q3NzVlNTZhNTEzY2E=
9
+ ODc4YjY5NzNmNmZlOGEwM2ZjZDBmNTVlYmY3MDJiODY0ODFjOTIyMjYxMzYw
10
+ NTExZGZlYjQzMWZiMDUzOGEwZjI5MWE3YmQwMjNmYWU1YmM0ZjJiYjYyNWFh
11
+ MTZkZTdjOTYzZTEyNTZhNjIzYmI2OTA5NTBmNDVmYjJjNTExYTI=
12
12
  data.tar.gz: !binary |-
13
- ZTM1YzgyZTYwZjI4MDU2MjUwODRhMDFlNDM0ZGIxNGU3YzI1YjdiZWE0OTE5
14
- Nzk1MTc2MGViZDEzN2VhNTFlYjg3NGU1MDg5N2E3MTFhODRkMjc0MTQzODJl
15
- ODA0ZDMwZDQwMWI4Nzc4NGE4ZGFjNmYwMWI4ODdiODE2MDJlMzA=
13
+ YTgwODM3MzZhMDhmNWNiYTQ0OTU4MjhkMjAxOGViMjYxOGE2NGI0ODhkZTU4
14
+ N2M5ODJlMWVmZGNkMjE3NzllNDRhMTRlMmJmYjc5MzNmYTE4YTRhYWI1ZmZl
15
+ MDlkNjg5ZjRiMDExNjFhNThjYTgxZGVjMjczYTMxYzM1NjljMTI=
@@ -7,11 +7,11 @@ module TheGrid
7
7
 
8
8
  def build(context, options)
9
9
  records, params = options.values_at(:for, :with)
10
- options.merge! :per_page => BATCH_SIZE if records.respond_to?(:connection)
11
- api = compose(records, options)
10
+ params.merge!(:per_page => records.kind_of?(Array) ? false : BATCH_SIZE)
11
+ api = compose(records, params)
12
12
  CSV.generate do |csv|
13
13
  csv << context.column_titles
14
- api.relation.respond_to?(:connection) ? put(context, :to => csv, :with => api) : put_this(context, :to => csv, :with => records)
14
+ params[:per_page] ? put(context, :to => csv, :with => api) : put_this(context, :to => csv, :with => records)
15
15
  end
16
16
  end
17
17
 
@@ -21,8 +21,8 @@ module TheGrid
21
21
  api, csv = options.values_at(:with, :to)
22
22
  pages = api.options[:max_page]
23
23
  (1..pages).each do |page|
24
- relation = api.run_command!(:paginate, :page => page, :per_page => BATCH_SIZE, :size => pages * BATCH_SIZE)
25
- put_this(context, :to => csv, :with => relation)
24
+ options[:with] = api.run_command!(:paginate, :page => page, :per_page => BATCH_SIZE, :size => pages * BATCH_SIZE)
25
+ put_this(context, options)
26
26
  end
27
27
  end
28
28
 
@@ -39,7 +39,7 @@ module TheGrid
39
39
  if value.kind_of?(Array)
40
40
  row_nested_values += value.flat_map{ |r| flatten(r) }
41
41
  else
42
- row_values << value
42
+ row_values << value
43
43
  end
44
44
  end
45
45
  return [ row_values ] if row_nested_values.empty?
@@ -1,3 +1,3 @@
1
1
  module TheGrid
2
- VERSION = "1.1.4"
2
+ VERSION = "1.1.5"
3
3
  end
@@ -30,6 +30,13 @@ describe TheGrid::Builder::Csv do
30
30
  subject.assemble(context, :on => relation, :with => params).should eql generate_csv(2.times.map{ |i| record.merge child_record(i + 1) }, context.column_titles)
31
31
  end
32
32
 
33
+ it "generates csv for array" do
34
+ context = build_context
35
+ object = build_double(1, :name, :status, :text)
36
+ object.stub(:children => [])
37
+ subject.assemble(context, :on => [ object ], :with => params).should eql generate_csv([ object ], context.column_titles)
38
+ end
39
+
33
40
 
34
41
  def generate_csv(records, titles)
35
42
  CSV.generate do |csv|
@@ -15,4 +15,13 @@ shared_examples "for Grid View Builder" do
15
15
  def record(id = nil)
16
16
  { :id => id || 1, :name => "Name #{id}", :status => "Active", :text => "Text" }
17
17
  end
18
+
19
+ def build_double(id, *methods)
20
+ impl = methods.each_with_object({ :id => id }) do |method, object|
21
+ object[method] = "#{method.to_s.titleize} #{id}"
22
+ end
23
+ impl[:values] = impl.values
24
+ double(impl)
25
+ end
26
+
18
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergiy Stotskiy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-15 00:00:00.000000000 Z
12
+ date: 2013-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord