xport 0.1.0 → 0.2.0

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: 6e0b568866d5b2f9c8680d14fe7266ec09b5eb32
4
- data.tar.gz: 5051b3e1619135362ec775465583ba1b700621b1
3
+ metadata.gz: 9a5b5e83d54d4375f6da647ca7d3e616f596a7c4
4
+ data.tar.gz: 9fea9bddb2e50d3df0f4fc715de80a9cf3f21f88
5
5
  SHA512:
6
- metadata.gz: ef2450eb7859f679931eb58b9eaf05fa7d97cd90ca16f850b8190885be4d099dd2cd15b2c0c525df6058d21fb2a6cdd451ebb3ef49959e07a529ac2e755818ab
7
- data.tar.gz: 01022f1cea1427d8faf3b512759c13a52a86910be75cc64cf44b38b822b8cc0535db9f3726041d038ddcb6453b50366aca1ba1a5d735a3803cbcb169a39b72cb
6
+ metadata.gz: b110ecaf9c4b1e7d80693814573203c0f6dbe0f09e23fc680810297059bf38b4343f34eca0e357ec9e2ed83709bf00d90c242aa6e509978446cdf73132af549a
7
+ data.tar.gz: 2fc859c208332803bbf7e14345414984b91a198a5402c11ff47297e999132dbd6514ecbff42eed735bbbc6ae8345ff29858a9b71baac409754a11df6eabcaae9
@@ -2,6 +2,12 @@
2
2
 
3
3
  module Xport
4
4
  module Axlsx
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ require 'axlsx'
9
+ end
10
+
5
11
  def to_xlsx(&block)
6
12
  formatter = Xport::Axlsx::Formatter.new(self)
7
13
  to_file(formatter, &block)
@@ -2,6 +2,12 @@
2
2
 
3
3
  module Xport
4
4
  module CSV
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ require 'csv'
9
+ end
10
+
5
11
  def to_csv(&block)
6
12
  formatter = Xport::CSV::Formatter.new(self)
7
13
  to_file(formatter, &block)
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Xport
4
+ module RubyXL
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ require 'rubyXL'
9
+ end
10
+
11
+ def to_xlsx(&block)
12
+ formatter = Xport::RubyXL::Formatter.new(self)
13
+ to_file(formatter, &block)
14
+ end
15
+
16
+ class Formatter
17
+ attr_reader :export, :workbook, :worksheet
18
+
19
+ delegate :builder, to: :export
20
+
21
+ def initialize(export)
22
+ @export = export
23
+ @workbook = ::RubyXL::Workbook.new
24
+ @worksheet = @workbook.worksheets[0]
25
+ @i = 0
26
+ end
27
+
28
+ def to_file
29
+ workbook.stream
30
+ end
31
+
32
+ def add_row(row)
33
+ row.each.with_index do |v, j|
34
+ value = v.is_a?(Xport::Cell) ? v.value : v
35
+ worksheet.add_cell(@i, j, value)
36
+ end
37
+ @i += 1
38
+ end
39
+ alias_method :add_header_row, :add_row
40
+
41
+ def merge_header_cells(range)
42
+ worksheet.merge_cells(0, range.first, 0, range.last)
43
+ end
44
+
45
+ def column_widths(*widths)
46
+ widths.each.with_index do |width, i|
47
+ next unless width
48
+ worksheet.change_column_width(i, width)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
data/lib/xport/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xport
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/xport.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'active_support/core_ext/class/attribute'
4
4
  require 'active_support/core_ext/module/delegation'
5
+ require 'active_support/core_ext/string/inflections'
5
6
  require 'active_support/concern'
6
7
 
7
8
  require 'xport/version'
@@ -11,8 +12,10 @@ require 'xport/cell'
11
12
  require 'xport/downloads_controller_methods'
12
13
  require 'xport/export_controller_methods'
13
14
  require 'xport/download_presenter'
14
- require 'xport/axlsx'
15
- require 'xport/csv'
15
+
16
+ require 'xport/formatters/csv'
17
+ require 'xport/formatters/axlsx'
18
+ require 'xport/formatters/rubyxl'
16
19
 
17
20
  module Xport
18
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janis Vitols
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-08-18 00:00:00.000000000 Z
12
+ date: 2017-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -67,34 +67,6 @@ dependencies:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.6'
70
- - !ruby/object:Gem::Dependency
71
- name: simplecov
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '0.8'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '0.8'
84
- - !ruby/object:Gem::Dependency
85
- name: axlsx
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
70
  - !ruby/object:Gem::Dependency
99
71
  name: saxlsx
100
72
  requirement: !ruby/object:Gem::Requirement
@@ -118,14 +90,15 @@ files:
118
90
  - lib/generators/xport/install/install_generator.rb
119
91
  - lib/generators/xport/install/templates/migration.rb
120
92
  - lib/xport.rb
121
- - lib/xport/axlsx.rb
122
93
  - lib/xport/cell.rb
123
- - lib/xport/csv.rb
124
94
  - lib/xport/download_presenter.rb
125
95
  - lib/xport/downloads_controller_methods.rb
126
96
  - lib/xport/export.rb
127
97
  - lib/xport/export_builder.rb
128
98
  - lib/xport/export_controller_methods.rb
99
+ - lib/xport/formatters/axlsx.rb
100
+ - lib/xport/formatters/csv.rb
101
+ - lib/xport/formatters/rubyxl.rb
129
102
  - lib/xport/version.rb
130
103
  homepage:
131
104
  licenses: []