excel_to_code 0.0.7 → 0.0.8
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/TODO +1 -0
- data/src/commands/excel_to_c.rb +19 -17
- data/src/commands/excel_to_ruby.rb +21 -29
- data/src/commands/excel_to_x.rb +389 -312
- data/src/rewrite/rewrite_merge_formulae_and_values.rb +1 -1
- data/src/rewrite/rewrite_relationship_id_to_filename.rb +4 -4
- data/src/rewrite/rewrite_whole_row_column_references_to_areas.rb +18 -8
- data/src/simplify/count_formula_references.rb +1 -0
- metadata +10 -10
@@ -11,7 +11,7 @@ class RewriteMergeFormulaeAndValues
|
|
11
11
|
shared_formulae = Hash[shared_formulae.readlines.map { |line| [line[/(.*?)\t/,1],line]}]
|
12
12
|
array_formula = Hash[array_formula.readlines.map { |line| [line[/(.*?)\t/,1],line]}]
|
13
13
|
simple_formulae = Hash[simple_formulae.readlines.map { |line| [line[/(.*?)\t/,1],line]}]
|
14
|
-
|
14
|
+
|
15
15
|
values.lines do |line|
|
16
16
|
ref = line[/(.*?)\t/,1]
|
17
17
|
@references_to_add_if_they_are_not_already_present.delete(ref)
|
@@ -4,18 +4,18 @@ class RewriteRelationshipIdToFilename
|
|
4
4
|
self.new.rewrite(*args)
|
5
5
|
end
|
6
6
|
|
7
|
-
def rewrite(input,relationships_file,output)
|
8
|
-
relationships_file.rewind
|
7
|
+
def rewrite(input, relationships_file, output)
|
9
8
|
relationships_file.rewind
|
10
9
|
relationships = Hash[relationships_file.readlines.map { |line| line.split("\t")}]
|
11
10
|
input.lines do |line|
|
12
11
|
parts = line.split("\t")
|
13
12
|
rid = parts.pop.strip
|
14
13
|
if relationships.has_key?(rid)
|
15
|
-
|
14
|
+
parts.push relationships[rid].strip
|
15
|
+
output.puts parts.join("\t")
|
16
16
|
else
|
17
17
|
$stderr.puts "Warning, #{rid.inspect} not found in relationships file #{relationships.inspect}"
|
18
|
-
|
18
|
+
output.puts "Warning, #{rid.inspect} not found in relationships file #{relationships.inspect}"
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -66,16 +66,14 @@ end
|
|
66
66
|
|
67
67
|
class RewriteWholeRowColumnReferencesToAreas
|
68
68
|
|
69
|
-
|
70
|
-
|
69
|
+
attr_accessor :sheet_name
|
70
|
+
attr_accessor :dimensions
|
71
|
+
|
72
|
+
def self.rewrite(input,output)
|
73
|
+
new.rewrite(input,output)
|
71
74
|
end
|
72
75
|
|
73
|
-
def rewrite(input,
|
74
|
-
dimensions = Hash[worksheet_dimensions.readlines.map do |line|
|
75
|
-
worksheet_name, area = line.split("\t")
|
76
|
-
[worksheet_name,WorksheetDimension.new(area)]
|
77
|
-
end]
|
78
|
-
mapper = MapColumnAndRowRangeAst.new(default_worksheet_name,dimensions)
|
76
|
+
def rewrite(input,output)
|
79
77
|
input.lines do |line|
|
80
78
|
if line =~ /(:column_range|:row_range)/
|
81
79
|
content = line.split("\t")
|
@@ -87,4 +85,16 @@ class RewriteWholeRowColumnReferencesToAreas
|
|
87
85
|
end
|
88
86
|
end
|
89
87
|
|
88
|
+
def worksheet_dimensions=(worksheet_dimensions)
|
89
|
+
@dimensions = Hash[worksheet_dimensions.readlines.map do |line|
|
90
|
+
worksheet_name, area = line.split("\t")
|
91
|
+
[worksheet_name,WorksheetDimension.new(area)]
|
92
|
+
end]
|
93
|
+
@mapper = nil
|
94
|
+
end
|
95
|
+
|
96
|
+
def mapper
|
97
|
+
@mapper ||= MapColumnAndRowRangeAst.new(sheet_name,dimensions)
|
98
|
+
end
|
99
|
+
|
90
100
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excel_to_code
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rubypeg
|
16
|
-
requirement: &
|
16
|
+
requirement: &70200979061400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70200979061400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &70200979060900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.5.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70200979060900
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70200979060400 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.7.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70200979060400
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ffi
|
49
|
-
requirement: &
|
49
|
+
requirement: &70200979050020 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 1.0.11
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70200979050020
|
58
58
|
description: ! "# excel_to_code\n\nConverts some excel spreadsheets (.xlsx, not .xls)
|
59
59
|
into some other programming languages (currently ruby or c).\nThis allows the excel
|
60
60
|
spreadsheets to be run programatically, without excel.\n\nIts cannonical source
|