rxls 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
+ .buildpath
5
+ .project
@@ -0,0 +1,16 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rxls (0.0.2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ minitest (2.3.1)
10
+
11
+ PLATFORMS
12
+ x86-mingw32
13
+
14
+ DEPENDENCIES
15
+ minitest (~> 2.3.0)
16
+ rxls!
@@ -1 +1,3 @@
1
+ require 'win32ole'
1
2
  require 'rxls/base'
3
+ require 'rxls/worksheet'
@@ -1,5 +1,5 @@
1
- require 'win32ole'
2
1
  module Rxls
2
+
3
3
  class Base
4
4
 
5
5
  def initialize file
@@ -8,7 +8,7 @@ module Rxls
8
8
  rescue
9
9
  WIN32OLE.new('excel.application')
10
10
  end
11
- file = File.expand_path "../../../spec/fixtures/#{file}.xls", __FILE__ if file.kind_of? Symbol
11
+ file = File.expand_path "../../../test/fixtures/#{file}.xls", __FILE__ if file.kind_of? Symbol
12
12
  @obj.workbooks.open file
13
13
  end
14
14
 
@@ -21,56 +21,5 @@ module Rxls
21
21
  end
22
22
 
23
23
  end
24
-
25
- class Worksheet
26
- include Enumerable
27
-
28
- # 'a' => [0]
29
- # 'a b' => [0,1]
30
- def to_row_numbers(s)
31
- s.split(' ').map do |r|
32
- r = 96.chr + r if r.length == 1
33
- s = nil
34
- r.each_byte do |b|
35
- s = s ? s + (b-97) : (b-96) * 26
36
- end
37
- s
38
- end
39
- end
40
24
 
41
- def initialize(o,n,mapping)
42
- @columns = to_row_numbers mapping
43
- @values = o.Worksheets(n).UsedRange.Value
44
- headers = @values.shift # skip 1st row
45
- @headers = @columns.map{|c| headers[c]}
46
- end
47
-
48
- def each
49
- @values.each_with_index do |row,column|
50
- values = @columns ? @columns.map{|r| row[r]} : row
51
- yield values.unshift(column)
52
- end
53
- end
54
-
55
- def dump
56
- vcs = @columns.map{|column| ValueCounter.new}
57
- each do |row_with_number|
58
- row_with_number[1..-1].each_with_index do |value,index|
59
- vcs[index] << dump_value(value)
60
- end
61
- end
62
- vcs.each_with_index{|vc,index| puts "#{@headers[index]}:#{vc}"}
63
- end
64
-
65
- def dump_value(v)
66
- case v
67
- when String
68
- v == '' ? "String(empty)" : "String"
69
- else
70
- v.class
71
- end
72
- end
73
-
74
- end
75
-
76
25
  end
@@ -1,3 +1,3 @@
1
1
  module Rxls
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,54 @@
1
+ module Rxls
2
+
3
+ class Worksheet
4
+ include Enumerable
5
+
6
+ # 'a' => [0]
7
+ # 'a b' => [0,1]
8
+ def to_row_numbers(s)
9
+ s.split(' ').map do |r|
10
+ r = 96.chr + r if r.length == 1
11
+ s = nil
12
+ r.each_byte do |b|
13
+ s = s ? s + (b-97) : (b-96) * 26
14
+ end
15
+ s
16
+ end
17
+ end
18
+
19
+ def initialize(o,n,mapping)
20
+ @columns = to_row_numbers mapping
21
+ @values = o.Worksheets(n).UsedRange.Value
22
+ headers = @values.shift # skip 1st row
23
+ @headers = @columns.map{|c| headers[c]}
24
+ end
25
+
26
+ def each
27
+ @values.each_with_index do |row,column|
28
+ values = @columns ? @columns.map{|r| row[r]} : row
29
+ yield values.unshift(column)
30
+ end
31
+ end
32
+
33
+ def dump
34
+ vcs = @columns.map{|column| ValueCounter.new}
35
+ each do |row_with_number|
36
+ row_with_number[1..-1].each_with_index do |value,index|
37
+ vcs[index] << dump_value(value)
38
+ end
39
+ end
40
+ vcs.each_with_index{|vc,index| puts "#{@headers[index]}:#{vc}"}
41
+ end
42
+
43
+ def dump_value(v)
44
+ case v
45
+ when String
46
+ v == '' ? "String(empty)" : "String"
47
+ else
48
+ v.class
49
+ end
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{like csv}
14
14
 
15
15
  s.rubyforge_project = "rxls"
16
+ s.add_development_dependency 'minitest' ,'~> 2.3.0'
16
17
 
17
18
  s.files = `git ls-files`.split("\n")
18
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rxls'
4
+ require 'minitest/autorun'
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+ module Rxls
3
+ describe Worksheet do
4
+
5
+ before(:each) do
6
+ @b = Base.new(:x)
7
+ @w = @b.worksheet 1,'a c'
8
+ end
9
+
10
+ it 'converts exel colum names to array indexes' do
11
+ assert_equal [0] , @w.to_row_numbers('a')
12
+ assert_equal [0,1], @w.to_row_numbers('a b')
13
+ assert_equal [26] , @w.to_row_numbers('aa')
14
+ end
15
+
16
+ it 'iterates over worksheet' do
17
+ assert_equal %w(Behresn Schnell), @w.map{ |row,number,nachname| nachname}
18
+ end
19
+
20
+ # after(:all) { @b.quit }
21
+
22
+ end
23
+
24
+ end
metadata CHANGED
@@ -1,74 +1,68 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rxls
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 2
9
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Frank Behrens
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-01-19 00:00:00 +01:00
18
- default_executable:
19
- dependencies: []
20
-
12
+ date: 2011-07-29 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: &23152800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *23152800
21
25
  description: like csv
22
- email:
26
+ email:
23
27
  - fbehrens@gmail.com
24
28
  executables: []
25
-
26
29
  extensions: []
27
-
28
30
  extra_rdoc_files: []
29
-
30
- files:
31
+ files:
31
32
  - .gitignore
32
33
  - Gemfile
34
+ - Gemfile.lock
33
35
  - Rakefile
34
36
  - lib/rxls.rb
35
37
  - lib/rxls/base.rb
36
38
  - lib/rxls/version.rb
39
+ - lib/rxls/worksheet.rb
37
40
  - rxls.gemspec
38
- - spec/fixtures/x.xls
39
- - spec/rxls_spec.rb
40
- - spec/spec_helper.rb
41
- has_rdoc: true
42
- homepage: ""
41
+ - test/fixtures/x.xls
42
+ - test/helper.rb
43
+ - test/test_worksheet.rb
44
+ homepage: ''
43
45
  licenses: []
44
-
45
46
  post_install_message:
46
47
  rdoc_options: []
47
-
48
- require_paths:
48
+ require_paths:
49
49
  - lib
50
- required_ruby_version: !ruby/object:Gem::Requirement
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
51
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- version: "0"
58
- required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
57
  none: false
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- segments:
64
- - 0
65
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
66
62
  requirements: []
67
-
68
63
  rubyforge_project: rxls
69
- rubygems_version: 1.3.7
64
+ rubygems_version: 1.8.6
70
65
  signing_key:
71
66
  specification_version: 3
72
67
  summary: access to excel spreadsheeds
73
68
  test_files: []
74
-
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
- module Rxls
3
- describe Base do
4
-
5
- before(:all) do
6
- @b = Base.new(:x)
7
- @w = @b.worksheet 1,'a c'
8
- end
9
-
10
- it 'converts exel colum names to array indexes' do
11
- @w.to_row_numbers('a').should == [0]
12
- @w.to_row_numbers('a b').should == [0,1]
13
- @w.to_row_numbers('aa').should == [26]
14
- end
15
-
16
- it 'iterates over worksheet' do
17
- @w.map{ |row,number,nachname| nachname}.should == ["Behresn", "Schnell"]
18
- end
19
-
20
- after(:all) do
21
- @b.quit
22
- end
23
-
24
- end
25
-
26
- end
@@ -1 +0,0 @@
1
- require 'rxls'