xls_sestavy 0.3.3 → 0.3.4
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 +5 -13
- data/lib/xls_sestavy/sestava.rb +1 -0
- data/lib/xls_sestavy/tabulky/promenne_radku.rb +37 -0
- data/lib/xls_sestavy/tabulky/sloupce/sloupec.rb +10 -8
- data/lib/xls_sestavy/tabulky/tabulka.rb +10 -1
- data/lib/xls_sestavy/version.rb +1 -1
- metadata +13 -12
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
MjNjMmRhZDU2ODUwYzljYTE2NjBjYjU1YzU5NDZkMGMzZTY2ZDcxMw==
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: ba3b89bcf9f204ad5988d7c112a1b7c7719a1328
|
|
4
|
+
data.tar.gz: 8348e963d4878e7b0b669d3c1979e3a6d4352614
|
|
7
5
|
SHA512:
|
|
8
|
-
metadata.gz:
|
|
9
|
-
|
|
10
|
-
YWY0NjAyOGVmZjRiMGQ0NGFhNTdkMjVhMGJhZWZkYjkzNmIwY2MzYzAwYWQ0
|
|
11
|
-
NWNjYjdmNzdiN2RiYjE5MTYxZDBmNDcyZjBlODIwMGY1NWFiYjg=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
MjA5ZGZjMTlhOTdiYzcwOGVkNWFhZWI2MGM1ZmI3OWY0NjUzZDllMWEwNDcx
|
|
14
|
-
NmVmYjcwZDQzNTg5Y2VlNzU4OWRlMDIxMWRkZjNjYmU2ZjU4ZGYwZmE1MGIy
|
|
15
|
-
MTU1NGZiZmE4ZGQwNDJmMWY1MTFlNWYwNGI3NGYxZTk2MmQ5ZDQ=
|
|
6
|
+
metadata.gz: 27e775ba9121e62b86f2da0bb1019a6cdee112601abc8cce12096c3226a21e3e40be5989dcb503ed8018bcd8b18a4dc54f3398b94244612f0a811d6a12288a0b
|
|
7
|
+
data.tar.gz: 9d688b94f20d7873adaa9b773ddacc27445bcacceb7ba73b68e5ff0bfac2e2b5dbf2ccb16406b5bff0978f9995a88ea2ae22933cf13ebf1c081e2b807bc05bb8
|
data/lib/xls_sestavy/sestava.rb
CHANGED
|
@@ -3,6 +3,7 @@ require "xls_sestavy/tabulky/tabulka"
|
|
|
3
3
|
require "xls_sestavy/tabulky/sloupce/sloupec"
|
|
4
4
|
require "xls_sestavy/tabulky/sloupce/preddefinovany_sloupce"
|
|
5
5
|
require "xls_sestavy/tabulky/sloupce/definice_sloupcu"
|
|
6
|
+
require "xls_sestavy/tabulky/promenne_radku"
|
|
6
7
|
|
|
7
8
|
module XLSSestavy
|
|
8
9
|
class Sestava
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module XLSSestavy
|
|
3
|
+
class PromenneRadku
|
|
4
|
+
attr_reader :tabulka, :objekt
|
|
5
|
+
|
|
6
|
+
def initialize
|
|
7
|
+
@metody = {}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def nastav(klic, &block)
|
|
11
|
+
@metody[klic] = block
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def pro_tabulku(tabulka)
|
|
15
|
+
@tabulka = tabulka
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def pro_objekt(objekt)
|
|
19
|
+
unless @objekt == objekt
|
|
20
|
+
@hodnoty = {}
|
|
21
|
+
@objekt = objekt
|
|
22
|
+
end
|
|
23
|
+
self
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def [](klic)
|
|
27
|
+
h = @hodnoty[klic]
|
|
28
|
+
unless h
|
|
29
|
+
m = @metody[klic]
|
|
30
|
+
h = m ? m.call(@objekt) : nil
|
|
31
|
+
@hodnoty[klic] = h
|
|
32
|
+
end
|
|
33
|
+
h
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -6,7 +6,7 @@ module XLSSestavy
|
|
|
6
6
|
|
|
7
7
|
# argumenty, fce, xls_format, datovy_typ, radek_souctu, sirka_sloupce
|
|
8
8
|
def initialize(zahlavi, opts={}, &block)
|
|
9
|
-
@options = opts.merge! zahlavi: zahlavi, fce: (opts[:fce]
|
|
9
|
+
@options = opts.merge! zahlavi: zahlavi, fce: (opts[:fce]||block), argumenty: (opts[:argumenty]||[])
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def zahlavi
|
|
@@ -14,21 +14,23 @@ module XLSSestavy
|
|
|
14
14
|
@zahlavi ||= I18n.translate(@options[:zahlavi], {default: @options[:zahlavi]}.merge!(@tabulka.sestava.params))
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def argumenty_array
|
|
18
|
-
return @argumenty_array if defined? @argumenty_array
|
|
17
|
+
def argumenty_array(objekt)
|
|
19
18
|
raise 'Není přiřazena tabulka.' unless @tabulka
|
|
20
19
|
params = @tabulka.sestava.params
|
|
21
|
-
|
|
20
|
+
if @tabulka.promenne
|
|
21
|
+
promenne = @tabulka.promenne.pro_objekt(objekt)
|
|
22
|
+
@options[:argumenty].map{|arg_sym| params[arg_sym] || promenne[arg_sym]}
|
|
23
|
+
else
|
|
24
|
+
@argumenty_array ||= @options[:argumenty].map{|arg_sym| params[arg_sym]}
|
|
25
|
+
end
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
def hodnota_pro(objekt)
|
|
25
29
|
@fce ||= @options[:fce]
|
|
26
30
|
if @fce.class==Proc
|
|
27
|
-
@fce.call(objekt, *argumenty_array)
|
|
31
|
+
@fce.call(objekt, *argumenty_array(objekt))
|
|
28
32
|
elsif objekt.respond_to? @fce
|
|
29
|
-
objekt.send(@fce, *argumenty_array)
|
|
30
|
-
elsif nil
|
|
31
|
-
nil
|
|
33
|
+
objekt.send(@fce, *argumenty_array(objekt))
|
|
32
34
|
else
|
|
33
35
|
raise "Není definováno pro @fce=#{@fce.class}:#{@fce}"
|
|
34
36
|
end
|
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
module XLSSestavy
|
|
3
3
|
class Tabulka
|
|
4
4
|
|
|
5
|
-
attr_reader :sestava
|
|
5
|
+
attr_reader :sestava, :promenne
|
|
6
6
|
|
|
7
7
|
def initialize(sestava, args={}, &block)
|
|
8
8
|
@sestava = sestava
|
|
9
9
|
@args = args
|
|
10
10
|
|
|
11
11
|
@sloupce = args[:sloupce] || []
|
|
12
|
+
@promenne = args[:promenne]
|
|
13
|
+
|
|
12
14
|
yield self if block_given?
|
|
15
|
+
|
|
13
16
|
@sloupce.each{|s| s.tabulka = self}
|
|
17
|
+
@promenne.pro_tabulku self if @promenne
|
|
14
18
|
end
|
|
15
19
|
|
|
16
20
|
def sloupec(*args, &block)
|
|
@@ -23,5 +27,10 @@ module XLSSestavy
|
|
|
23
27
|
@sloupce << s
|
|
24
28
|
end
|
|
25
29
|
|
|
30
|
+
def promenna(klic, &block)
|
|
31
|
+
@promenne ||= PromenneRadku.new
|
|
32
|
+
@promenne.nastav klic, &block
|
|
33
|
+
end
|
|
34
|
+
|
|
26
35
|
end
|
|
27
36
|
end
|
data/lib/xls_sestavy/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xls_sestavy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ondřej Želazko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '0'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- -
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- -
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: writeexcel
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- -
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: '0'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- -
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
55
|
description: Uses writeexcel and puts some helper methods on top for making summaries
|
|
@@ -60,7 +60,7 @@ executables: []
|
|
|
60
60
|
extensions: []
|
|
61
61
|
extra_rdoc_files: []
|
|
62
62
|
files:
|
|
63
|
-
- .gitignore
|
|
63
|
+
- ".gitignore"
|
|
64
64
|
- Gemfile
|
|
65
65
|
- LICENSE.txt
|
|
66
66
|
- README.md
|
|
@@ -68,6 +68,7 @@ files:
|
|
|
68
68
|
- lib/xls_sestavy.rb
|
|
69
69
|
- lib/xls_sestavy/sestava.rb
|
|
70
70
|
- lib/xls_sestavy/sestava_xls.rb
|
|
71
|
+
- lib/xls_sestavy/tabulky/promenne_radku.rb
|
|
71
72
|
- lib/xls_sestavy/tabulky/sloupce/definice_sloupcu.rb
|
|
72
73
|
- lib/xls_sestavy/tabulky/sloupce/preddefinovany_sloupce.rb
|
|
73
74
|
- lib/xls_sestavy/tabulky/sloupce/sloupec.rb
|
|
@@ -88,17 +89,17 @@ require_paths:
|
|
|
88
89
|
- lib
|
|
89
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
91
|
requirements:
|
|
91
|
-
- -
|
|
92
|
+
- - ">="
|
|
92
93
|
- !ruby/object:Gem::Version
|
|
93
94
|
version: '0'
|
|
94
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
96
|
requirements:
|
|
96
|
-
- -
|
|
97
|
+
- - ">="
|
|
97
98
|
- !ruby/object:Gem::Version
|
|
98
99
|
version: '0'
|
|
99
100
|
requirements: []
|
|
100
101
|
rubyforge_project:
|
|
101
|
-
rubygems_version: 2.
|
|
102
|
+
rubygems_version: 2.2.2
|
|
102
103
|
signing_key:
|
|
103
104
|
specification_version: 4
|
|
104
105
|
summary: xls simple helper library
|