rxls 0.0.2 → 0.0.3

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.
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'