tango-etl 0.0.1 → 0.1.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/{changelog.md → CHANGELOG.md} +5 -1
  3. data/{readme.md → README.md} +1 -1
  4. data/doc/Multidb/Balancer.html +202 -0
  5. data/doc/Multidb.html +184 -0
  6. data/doc/Tango/AbstractModel.html +608 -0
  7. data/doc/Tango/App.html +1334 -0
  8. data/doc/Tango/DatabaseLocker.html +541 -0
  9. data/doc/Tango/ETL/Dispatcher.html +465 -0
  10. data/doc/Tango/ETL/HandlerInterface.html +639 -0
  11. data/doc/Tango/ETL/OperatorInterface.html +494 -0
  12. data/doc/Tango/ETL.html +117 -0
  13. data/doc/Tango/Kernel.html +432 -0
  14. data/doc/Tango/LinkStack.html +737 -0
  15. data/doc/Tango/Resource/Buffer.html +565 -0
  16. data/doc/Tango/Resource/Cache.html +834 -0
  17. data/doc/Tango/Resource.html +117 -0
  18. data/doc/Tango.html +131 -0
  19. data/doc/_index.html +297 -0
  20. data/doc/class_list.html +54 -0
  21. data/doc/css/common.css +1 -0
  22. data/doc/css/full_list.css +57 -0
  23. data/doc/css/style.css +339 -0
  24. data/doc/file.README.html +80 -0
  25. data/doc/file_list.html +56 -0
  26. data/doc/frames.html +26 -0
  27. data/doc/index.html +80 -0
  28. data/doc/js/app.js +219 -0
  29. data/doc/js/full_list.js +178 -0
  30. data/doc/js/jquery.js +4 -0
  31. data/doc/method_list.html +365 -0
  32. data/doc/top-level-namespace.html +112 -0
  33. data/lib/tango/abstract_model.rb +1 -0
  34. data/lib/tango/app.rb +4 -7
  35. data/lib/tango/database_locker.rb +23 -2
  36. data/lib/tango/etl/handler_interface.rb +12 -6
  37. data/lib/tango/resource/buffer.rb +7 -7
  38. data/lib/tango/resource/cache.rb +18 -13
  39. data/lib/tango/version.rb +1 -1
  40. data/test/support/lib/simple_handler.rb +5 -14
  41. data/test/unit/etl/test_dispatcher.rb +21 -5
  42. metadata +33 -6
  43. data/config/app.yml.sample +0 -6
  44. data/config/database.yml.sample +0 -27
@@ -8,10 +8,10 @@ module Tango
8
8
 
9
9
  attr_reader :buffer
10
10
 
11
- # Constructor of the cache
11
+ # Constructor of the Cache
12
12
  #
13
- # @param buffer [Tango::Resources::Buffer]
14
- # @return [Tango::Resources::Cache]
13
+ # @param buffer [Tango::Resources::Buffer]
14
+ # @return [Tango::Resources::Cache]
15
15
  def initialize( buffer = nil )
16
16
  # Set dependencies
17
17
  @buffer = buffer || Buffer.new
@@ -21,20 +21,25 @@ module Tango
21
21
 
22
22
  # Register new type of resource to be cached
23
23
  #
24
- # @param type [Symbol]
25
- # @param release_callback [Proc]
24
+ # @param type [Symbol]
25
+ # @param release_callback [Proc]
26
+ # @return [Tango::Resource::Cache]
26
27
  def register( type, &release_callback )
28
+
27
29
  # Create container for cache of new resource
28
30
  @storage[type] = {}
29
31
  # Also register new type with buffer
30
32
  @buffer.register( type, &release_callback )
33
+
34
+ self
35
+
31
36
  end
32
37
 
33
- # Get a resource or use given block to cache and return it's id
38
+ # Get a cached resource or use given block to obtain resource and return it
34
39
  #
35
40
  # @param type [Symbol]
36
41
  # @param resource [Object]
37
- # @return [Integer]
42
+ # @return [Object]
38
43
  def load( type, resource )
39
44
 
40
45
  # Get resource from cache
@@ -58,9 +63,9 @@ module Tango
58
63
 
59
64
  # Setter for the cache storage
60
65
  #
61
- # @param type [Symbol]
62
- # @param resource [Object]
63
- # @return [Object]
66
+ # @param type [Symbol]
67
+ # @param resource [Object]
68
+ # @return [Object]
64
69
  def set( type, resource )
65
70
  raise ArgumentError, "Trying to set resource with unregistered type" unless @storage.keys.include?( type )
66
71
  @storage[type][resource.cache_key] = resource
@@ -68,9 +73,9 @@ module Tango
68
73
 
69
74
  # Getter for the cache storage
70
75
  #
71
- # @param type [Symbol]
72
- # @param key [String]
73
- # @return [Object]
76
+ # @param type [Symbol]
77
+ # @param key [String]
78
+ # @return [Object]
74
79
  def get( type, resource )
75
80
  raise ArgumentError, "Trying to get resource with unregistered type" unless @storage.keys.include?( type )
76
81
  @storage[type][resource.cache_key]
data/lib/tango/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tango
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,18 +1,9 @@
1
- class SimpleBuffer
1
+ require 'tango/etl/handler_interface'
2
+
3
+ class SimpleHandler < Tango::ETL::HandlerInterface
2
4
 
3
- attr_reader :register_counter, :fill_couter
4
-
5
- def initialize
6
- @register_counter = 0
7
- @fill_couter = 0
8
- end
9
-
10
- def register( type )
11
- @register_counter += 1
12
- end
13
-
14
- def fill( type, resource )
15
- @fill_couter += 1
5
+ def self.applicable?( link )
6
+ link =~ /index\.html/
16
7
  end
17
8
 
18
9
  end
@@ -2,19 +2,35 @@ require "test/unit"
2
2
  require 'shoulda'
3
3
  require 'mocha/setup'
4
4
 
5
- require 'tango/resource/cache'
5
+ require 'tango/etl/dispatcher'
6
6
  require_relative '../../support/lib/simple_handler.rb'
7
7
 
8
8
  class TestDispatcher < Test::Unit::TestCase
9
9
 
10
- context "a handler dispatcher" do
10
+ context "handler dispatcher" do
11
11
 
12
12
  setup do
13
- @dispatcher
13
+ @dispatcher = Tango::ETL::Dispatcher.new
14
14
  end
15
15
 
16
- should "throw exception when trying to load unregistered type" do
17
-
16
+ should "throw exception when trying to register handler that does not implement HandlerInterface" do
17
+ assert_raise RuntimeError do
18
+ @dispatcher.register( Object )
19
+ end
20
+ end
21
+
22
+ should "register handler and stay chainable" do
23
+ assert_equal @dispatcher, @dispatcher.register( SimpleHandler )
24
+ end
25
+
26
+ should "find handler for a suitable link" do
27
+ @dispatcher.register( SimpleHandler ) # SimpleHandler works only with '/index.html' link
28
+ assert_equal SimpleHandler, @dispatcher.find_handler( '/index.html' )
29
+ end
30
+
31
+ should "return nil if there is no handler suitable for a link" do
32
+ @dispatcher.register( SimpleHandler ) # SimpleHandler works only with '/index.html' link
33
+ assert_equal nil, @dispatcher.find_handler( '/picutres/1.html' )
18
34
  end
19
35
 
20
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tango-etl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Komorowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-13 00:00:00.000000000 Z
11
+ date: 2014-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -116,11 +116,39 @@ executables: []
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
+ - CHANGELOG.md
119
120
  - Gemfile
121
+ - README.md
120
122
  - Rakefile
121
- - changelog.md
122
- - config/app.yml.sample
123
- - config/database.yml.sample
123
+ - doc/Multidb.html
124
+ - doc/Multidb/Balancer.html
125
+ - doc/Tango.html
126
+ - doc/Tango/AbstractModel.html
127
+ - doc/Tango/App.html
128
+ - doc/Tango/DatabaseLocker.html
129
+ - doc/Tango/ETL.html
130
+ - doc/Tango/ETL/Dispatcher.html
131
+ - doc/Tango/ETL/HandlerInterface.html
132
+ - doc/Tango/ETL/OperatorInterface.html
133
+ - doc/Tango/Kernel.html
134
+ - doc/Tango/LinkStack.html
135
+ - doc/Tango/Resource.html
136
+ - doc/Tango/Resource/Buffer.html
137
+ - doc/Tango/Resource/Cache.html
138
+ - doc/_index.html
139
+ - doc/class_list.html
140
+ - doc/css/common.css
141
+ - doc/css/full_list.css
142
+ - doc/css/style.css
143
+ - doc/file.README.html
144
+ - doc/file_list.html
145
+ - doc/frames.html
146
+ - doc/index.html
147
+ - doc/js/app.js
148
+ - doc/js/full_list.js
149
+ - doc/js/jquery.js
150
+ - doc/method_list.html
151
+ - doc/top-level-namespace.html
124
152
  - lib/tango.rb
125
153
  - lib/tango/abstract_model.rb
126
154
  - lib/tango/app.rb
@@ -136,7 +164,6 @@ files:
136
164
  - lib/tango/resource/buffer.rb
137
165
  - lib/tango/resource/cache.rb
138
166
  - lib/tango/version.rb
139
- - readme.md
140
167
  - tango.gemspec
141
168
  - test/support/db/schema.rb
142
169
  - test/support/lib/model/user.rb
@@ -1,6 +0,0 @@
1
- production:
2
- site_index: http://example.com/
3
- sleep: 0.5
4
- development:
5
- site_index: http://localhost:8000/
6
- sleep: 0
@@ -1,27 +0,0 @@
1
- development:
2
- adapter: mysql2
3
- database: tango_dev_master
4
- username: root
5
- password: pass
6
- host: localhost
7
- multidb:
8
- databases:
9
- slave:
10
- database: tango_dev_slave
11
- production:
12
- adapter: mysql2
13
- database: tango_prod_master
14
- username: root
15
- password: pass
16
- host: localhost
17
- multidb:
18
- databases:
19
- slave:
20
- database: tango_prod_slave
21
- test:
22
- adapter: mysql2
23
- database: tango_test
24
- username: root
25
- password: pass
26
- host: localhost
27
-