smart_csv 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +18 -10
- data/lib/csv/table/table.rb +12 -0
- data/lib/smart_csv/version.rb +1 -1
- data/smart_csv.gemspec +1 -1
- data/spec/csv/table/table_spec.rb +7 -8
- metadata +2 -2
data/README.md
CHANGED
@@ -1,27 +1,35 @@
|
|
1
|
-
|
1
|
+
# SmartCSV
|
2
2
|
|
3
3
|
Extend CSV class.
|
4
4
|
This gem need header.
|
5
5
|
|
6
|
-
|
6
|
+
## FOR EXAMPLE
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
data = "id,firstname,lastname\n1,One,One\n2,Two,Two\n4,One,Four\n5,One,Five"
|
9
|
+
@data = CSV.parse(data, {:col_sep => ',', :headers => true}
|
10
10
|
|
11
|
-
|
11
|
+
## METHODS
|
12
12
|
|
13
13
|
* Create a new record
|
14
|
-
|
14
|
+
|
15
|
+
@data.create("id"=> '13', "lastname" => '1992')
|
15
16
|
|
16
17
|
* Select records
|
17
|
-
|
18
|
+
|
19
|
+
@data.where('firstname' => 'One').where_not('id' => '4')
|
18
20
|
|
19
21
|
* Update record
|
20
|
-
|
22
|
+
|
23
|
+
@data.where('firstname' => 'One').first.update({"lastname" => "Seven", "wartosc" => 2012}) }
|
21
24
|
|
22
25
|
* Delete all records
|
23
|
-
|
26
|
+
|
27
|
+
@data.delete_all
|
24
28
|
|
25
29
|
* Delete all records from scope of condition
|
26
|
-
@data.where({'firstname' => 'One'}).delete_all
|
27
30
|
|
31
|
+
@data.where('firstname' => 'One').delete_all
|
32
|
+
|
33
|
+
* Select all records which have 'id' attribute greater than 2
|
34
|
+
|
35
|
+
@data.gt('id', 2)
|
data/lib/csv/table/table.rb
CHANGED
@@ -26,6 +26,18 @@ class CSV::Table
|
|
26
26
|
result
|
27
27
|
end
|
28
28
|
|
29
|
+
# select all records which have attribute greater than starter
|
30
|
+
def gt(attribute, starter)
|
31
|
+
result = CSV::Table.new([])
|
32
|
+
result.ancestor = self.ancestor || self
|
33
|
+
|
34
|
+
self.each do |record|
|
35
|
+
result << record if record[attribute].to_i > starter
|
36
|
+
end
|
37
|
+
|
38
|
+
result
|
39
|
+
end
|
40
|
+
|
29
41
|
def create(*conditions)
|
30
42
|
headers = self.headers
|
31
43
|
row = headers.inject({}){|result, value| result[value] = nil; result}
|
data/lib/smart_csv/version.rb
CHANGED
data/smart_csv.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'smart_csv/version'
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = 'smart_csv'
|
7
7
|
gem.version = SmartCSV::VERSION
|
8
|
-
gem.date = '2013-09-
|
8
|
+
gem.date = '2013-09-22'
|
9
9
|
gem.authors = ['Michał Szyma']
|
10
10
|
gem.email = ['raglub.ruby@gmail.com']
|
11
11
|
gem.homepage = "https://github.com/raglub/smart_csv"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'smart_csv'
|
2
|
-
|
2
|
+
|
3
3
|
describe "Check class CSV::Table" do
|
4
4
|
|
5
5
|
let(:csv_data) {"id,firstname,lastname\n1,One,One\n2,Two,Two\n4,Four,Four\n5,Five,Five\n6,One,One"}
|
@@ -7,9 +7,9 @@ describe "Check class CSV::Table" do
|
|
7
7
|
let(:parse_data) { CSV.parse(csv_data, {:col_sep => ',', :headers => true}) }
|
8
8
|
|
9
9
|
it "should correct create one record" do
|
10
|
-
parse_data.size.should
|
10
|
+
parse_data.size.should eq(5)
|
11
11
|
parse_data.create("id"=> '13', "lastname" => '1992')
|
12
|
-
parse_data.size.should
|
12
|
+
parse_data.size.should eq(6)
|
13
13
|
parse_data[-1]["id"].should eql('13')
|
14
14
|
end
|
15
15
|
|
@@ -18,10 +18,8 @@ describe "Check class CSV::Table" do
|
|
18
18
|
parse_data.where('firstname' => 'One').where_not('id' => '6').size.should eql(1)
|
19
19
|
end
|
20
20
|
|
21
|
-
it "should
|
22
|
-
parse_data.size.should
|
23
|
-
parse_data.delete_all
|
24
|
-
parse_data.size.should eql(0)
|
21
|
+
it "should select records with id greater than 2" do
|
22
|
+
parse_data.gt('id', 2).size.should eq(3)
|
25
23
|
end
|
26
24
|
|
27
25
|
it "should correct delete records" do
|
@@ -30,9 +28,10 @@ describe "Check class CSV::Table" do
|
|
30
28
|
parse_data.size.should eql(0)
|
31
29
|
end
|
32
30
|
|
33
|
-
it "should correct delete records" do
|
31
|
+
it "should correct delete records with selected group" do
|
34
32
|
parse_data.size.should eql(5)
|
35
33
|
parse_data.where('firstname' => 'One').delete_all
|
36
34
|
parse_data.size.should eql(3)
|
37
35
|
end
|
36
|
+
|
38
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|