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 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: []