active_report 0.0.1 → 1.0.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: 2abfd6bbd51ccdf36cc4d2a3fd2368232257dd6f
4
- data.tar.gz: 4cf16ef868d247ecfd7527dcd73e6702ea04ce7f
3
+ metadata.gz: 5e0e8dfb9bb0e6810b9fd537cfb16338779cb7e0
4
+ data.tar.gz: 594f7f35558125e75eb6ae3bbef45f558b040ece
5
5
  SHA512:
6
- metadata.gz: 08be6fdc02c15262aa3efddbe4950d34e57cb52055f2fc2dc410d1948652609c8b0c5fffc88a60b2d236f7c312de05b9088b4c32c864e487c266703b81553110
7
- data.tar.gz: a575b60ff7372c9940a4882d6b753a15018dbf622c038a39c46581e8478a3c0fa2ee5a1d7ad92510b0dc91cc1d0f1cdbff875ae198cf19adf53ad66159c2994a
6
+ metadata.gz: f4320dcdb89c7069b60561c830f796c2d8e22f77a2e7bae8efb93a529b8d8c5e9757af4526f011492081bbe3863388b86857b00475e23c54dbf9a49d8792d8f6
7
+ data.tar.gz: e216ccd01842c9c116af5392adb4a02eb613fc77e670abeafaeec699501811a56a36312a287295934251317798bba2e0cd6c4bc1982f5a8f9b7eb9563f5887f8
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # ActiveReport
2
2
 
3
- TODO: Write a gem description
3
+ [![Gem Version](https://badge.fury.io/rb/active_report.svg)](http://badge.fury.io/rb/active_report)
4
+ [![Build Status](https://travis-ci.org/drexed/active_report.svg?branch=master)](https://travis-ci.org/drexed/active_report)
5
+ [![Coverage Status](https://coveralls.io/repos/drexed/active_report/badge.png)](https://coveralls.io/r/drexed/active_report)
6
+
7
+ ActiveReport is a library to export CSV's out of arrays, hashes, and records and vice versa.
4
8
 
5
9
  ## Installation
6
10
 
@@ -20,7 +24,90 @@ Or install it yourself as:
20
24
 
21
25
  ## Usage
22
26
 
23
- TODO: Write usage instructions here
27
+ ### Array
28
+
29
+ **Export:** Convert an array or array of arrays to a CSV.
30
+
31
+ **Options:**
32
+ * headers: column titles of CSV data
33
+ * options: CSV options to be use on generation
34
+
35
+ ```ruby
36
+ @list = [
37
+ [1, "Lorem lipsum etc...", true],
38
+ [2, "Xorem lipsum etc...", false],
39
+ [3, "Porem lipsum etc...", true]
40
+ ]
41
+
42
+ ActiveReport::Array.export(@list)
43
+ ActiveReport::Array.export(@list, headers: ["ID", "Task", "Completed"], options: { col_sep: ";" })
44
+ ```
45
+
46
+ **Import:** Convert a CSV into an array or array of arrays.
47
+
48
+ **Options:**
49
+ * headers: column titles of array data
50
+ * options: CSV options to be use on parsing
51
+
52
+ ```ruby
53
+ ActiveReport::Array.import("sample.csv")
54
+ ActiveReport::Array.import("sample.csv", headers: ["ID", "Task", "Completed"], options: { col_sep: ";" })
55
+ ```
56
+
57
+ ### Hash
58
+
59
+ **Export:** Convert a hash or an array of hashes to a CSV.
60
+
61
+ **Options:**
62
+ * only: key/value pairs to be used on generation
63
+ * except: key/value pairs not to be used on generation
64
+ * headers: column titles of CSV data
65
+ * options: CSV options to be use on generation
66
+
67
+ ```ruby
68
+ @list = [
69
+ { id: 1, item: "Lorem lipsum etc...", completed: true},
70
+ { id: 2, item: "Xorem lipsum etc...", completed: false},
71
+ { id: 3, item: "Porem lipsum etc...", completed: true}
72
+ ]
73
+
74
+ ActiveReport::Hash.export(@list)
75
+ ActiveReport::Hash.export(@list, only: [:id, :item], headers: ["ID", "Task"], options: { col_sep: ";" })
76
+ ```
77
+
78
+ **Import:** Convert a CSV into an array of hashes.
79
+
80
+ **Options:**
81
+ * only: key/value pairs to be used on generation
82
+ * except: key/value pairs not to be used on generation
83
+ * headers: column titles of CSV data **Required**
84
+ * options: CSV options to be use on parsing
85
+
86
+ ```ruby
87
+ ActiveReport::Hash.import("sample.csv")
88
+ ActiveReport::Hash.import("sample.csv", except: :completed, headers: ["ID", "Task"], options: { col_sep: ";" })
89
+ ```
90
+
91
+ ### Record
92
+
93
+ **Export:** Convert an ActiveRecord/Relation object(s) to a CSV.
94
+
95
+ **Options:**
96
+ * only: columns to be used on generation
97
+ * except: columns not to be used on generation
98
+ * headers: column titles of CSV data
99
+ * options: CSV options to be use on generation
100
+
101
+ ```ruby
102
+ @list = [
103
+ <# ActiveRecord::Relation Object >,
104
+ <# ActiveRecord::Relation Object >,
105
+ <# ActiveRecord::Relation Object >
106
+ ]
107
+
108
+ ActiveReport::Record.export(@list)
109
+ ActiveReport::Record.export(@list, only: [:id, :item], headers: ["ID", "Task"], options: { col_sep: ";" })
110
+ ```
24
111
 
25
112
  ## Contributing
26
113
 
@@ -46,7 +46,7 @@ class ActiveReport::Hash
46
46
  CSV.foreach(@datum, @options) do |data|
47
47
  processed_data = {}
48
48
  @headers.each_with_index do |v,i|
49
- processed_data.store(v.gsub(" ", "_").downcase.to_sym, data.fetch(i, nil) )
49
+ processed_data.store(v.to_s.gsub(" ", "_").downcase.to_sym, data.fetch(i, nil) )
50
50
  end
51
51
 
52
52
  processed_data.keep_if { |k,v| @only.include?(k) } unless @only.empty?
@@ -1,3 +1,3 @@
1
1
  module ActiveReport
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_report
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez