xport 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/xport/{axlsx.rb → formatters/axlsx.rb} +6 -0
- data/lib/xport/{csv.rb → formatters/csv.rb} +6 -0
- data/lib/xport/formatters/rubyxl.rb +53 -0
- data/lib/xport/version.rb +1 -1
- data/lib/xport.rb +5 -2
- metadata +5 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a5b5e83d54d4375f6da647ca7d3e616f596a7c4
|
4
|
+
data.tar.gz: 9fea9bddb2e50d3df0f4fc715de80a9cf3f21f88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b110ecaf9c4b1e7d80693814573203c0f6dbe0f09e23fc680810297059bf38b4343f34eca0e357ec9e2ed83709bf00d90c242aa6e509978446cdf73132af549a
|
7
|
+
data.tar.gz: 2fc859c208332803bbf7e14345414984b91a198a5402c11ff47297e999132dbd6514ecbff42eed735bbbc6ae8345ff29858a9b71baac409754a11df6eabcaae9
|
@@ -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
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
|
-
|
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.
|
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-
|
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: []
|