xls_sestavy 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjRiNmIxZTI1YTk0Y2U0MDgyOTg4YjdjZGNmMzhjZGMxNjczZjA2ZQ==
5
- data.tar.gz: !binary |-
6
- MjNjMmRhZDU2ODUwYzljYTE2NjBjYjU1YzU5NDZkMGMzZTY2ZDcxMw==
2
+ SHA1:
3
+ metadata.gz: ba3b89bcf9f204ad5988d7c112a1b7c7719a1328
4
+ data.tar.gz: 8348e963d4878e7b0b669d3c1979e3a6d4352614
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YjdlMjY5ODkyOTQwMjk0ZjllOGYxZTBkYWJmY2U3MmFmODdlMTk5ODc2MDc4
10
- YWY0NjAyOGVmZjRiMGQ0NGFhNTdkMjVhMGJhZWZkYjkzNmIwY2MzYzAwYWQ0
11
- NWNjYjdmNzdiN2RiYjE5MTYxZDBmNDcyZjBlODIwMGY1NWFiYjg=
12
- data.tar.gz: !binary |-
13
- MjA5ZGZjMTlhOTdiYzcwOGVkNWFhZWI2MGM1ZmI3OWY0NjUzZDllMWEwNDcx
14
- NmVmYjcwZDQzNTg5Y2VlNzU4OWRlMDIxMWRkZjNjYmU2ZjU4ZGYwZmE1MGIy
15
- MTU1NGZiZmE4ZGQwNDJmMWY1MTFlNWYwNGI3NGYxZTk2MmQ5ZDQ=
6
+ metadata.gz: 27e775ba9121e62b86f2da0bb1019a6cdee112601abc8cce12096c3226a21e3e40be5989dcb503ed8018bcd8b18a4dc54f3398b94244612f0a811d6a12288a0b
7
+ data.tar.gz: 9d688b94f20d7873adaa9b773ddacc27445bcacceb7ba73b68e5ff0bfac2e2b5dbf2ccb16406b5bff0978f9995a88ea2ae22933cf13ebf1c081e2b807bc05bb8
@@ -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] || block)
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
- @argumenty_array = (@options[:argumenty] || []).map{|arg_sym| params[arg_sym]}
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
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  module XLSSestavy
3
- VERSION = "0.3.3"
3
+ VERSION = "0.3.4"
4
4
 
5
5
  end
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.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-06-19 00:00:00.000000000 Z
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.1.11
102
+ rubygems_version: 2.2.2
102
103
  signing_key:
103
104
  specification_version: 4
104
105
  summary: xls simple helper library