goz 0.0.2

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.
@@ -0,0 +1,9 @@
1
+ .*.swp
2
+ *.gem
3
+ .bundle
4
+ coverage/
5
+ Gemfile.lock
6
+ goz.log
7
+ html/
8
+ out.txt
9
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in goz.gemspec
4
+ gemspec
@@ -0,0 +1,12 @@
1
+ = Goz History
2
+
3
+ == 2012-03-08 v0.0.2
4
+
5
+ * Added +Goz::Cache+
6
+
7
+
8
+ == 2012-03-02 v0.0.1
9
+
10
+ * First public release
11
+ * Added +Goz::Logger+
12
+
@@ -0,0 +1,33 @@
1
+ = Goz - Generic self-service provisioning system
2
+
3
+ == Usage
4
+
5
+
6
+ # Cache
7
+ require 'goz/cache'
8
+ Goz::Cache.instance do |cache|
9
+ ... do stuff ...
10
+ end
11
+
12
+ # Logger
13
+ require 'goz/logger'
14
+ Goz::Logger.instance('MyApp') do |logger|
15
+ ... do stuff ...
16
+ end
17
+
18
+ == See Also
19
+
20
+ Goz::Cache, Goz::Logger
21
+
22
+ == Author
23
+
24
+ blair christensen. <mailto:blair.christensen@gmail.com>
25
+
26
+ == Homepage
27
+
28
+ https://github.com/blairc/goz/
29
+
30
+ == See Also
31
+
32
+ https://github.com/blairc/goz-rails/
33
+
@@ -0,0 +1,24 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/clean'
3
+ require 'rake/testtask'
4
+ require 'rdoc-readme/rake_task'
5
+ require 'rdoc/task'
6
+
7
+ %w{ coverage goz.log html out.txt pkg }.each { |p| CLEAN.include(p) }
8
+ %w{ build install rdoc test }.each { |t| task t.to_sym => [ 'rdoc:readme' ] }
9
+
10
+ task :default => :test
11
+
12
+ Rake::TestTask.new do |t|
13
+ t.libs << 'test'
14
+ t.test_files = FileList['test/test*.rb']
15
+ t.verbose = true
16
+ end
17
+
18
+ RDoc::Readme::RakeTask.new 'lib/goz.rb', 'README.rdoc'
19
+
20
+ RDoc::Task.new do |rdoc|
21
+ rdoc.main = 'README.rdoc'
22
+ rdoc.rdoc_files.include('README.rdoc', 'lib/**/*.rb', 'doc/*.txt')
23
+ end
24
+
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require 'goz/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'goz'
7
+ s.version = Goz::VERSION
8
+ s.authors = ['blair christensen']
9
+ s.email = ['blair.christensen@gmail.com']
10
+ s.homepage = 'https://github.com/blairc/goz/'
11
+ s.summary = %q{Generic self-service provisioning system}
12
+ s.description = %q{Generic self-service provisioning system}
13
+
14
+ s.rubyforge_project = 'goz'
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ['lib']
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+ s.add_development_dependency 'rake'
25
+ s.add_development_dependency 'rdoc'
26
+ s.add_development_dependency 'rdoc-readme', '~> 0.1.2'
27
+ s.add_development_dependency 'simplecov'
28
+ end
@@ -0,0 +1,44 @@
1
+ # encoding: utf-8
2
+
3
+ require 'goz/cache'
4
+ require 'goz/logger'
5
+ require 'goz/version'
6
+
7
+ #
8
+ # = Goz - Generic self-service provisioning system
9
+ #
10
+ # == Usage
11
+ #
12
+ #
13
+ # # Cache
14
+ # require 'goz/cache'
15
+ # Goz::Cache.instance do |cache|
16
+ # ... do stuff ...
17
+ # end
18
+ #
19
+ # # Logger
20
+ # require 'goz/logger'
21
+ # Goz::Logger.instance('MyApp') do |logger|
22
+ # ... do stuff ...
23
+ # end
24
+ #
25
+ # == See Also
26
+ #
27
+ # Goz::Cache, Goz::Logger
28
+ #
29
+ # == Author
30
+ #
31
+ # blair christensen. <mailto:blair.christensen@gmail.com>
32
+ #
33
+ # == Homepage
34
+ #
35
+ # https://github.com/blairc/goz/
36
+ #
37
+ # == See Also
38
+ #
39
+ # https://github.com/blairc/goz-rails/
40
+ #
41
+ module Goz
42
+ # Your code goes here...
43
+ end
44
+
@@ -0,0 +1,136 @@
1
+ # encoding: utf-8
2
+
3
+ require 'goz/cache/hash_store'
4
+
5
+ module Goz # :nodoc:
6
+
7
+ #
8
+ # = Goz::Cache - Generic cache
9
+ #
10
+ # == Usage
11
+ #
12
+ # require 'goz/cache'
13
+ #
14
+ # cache = Goz::Cache.new do |cache|
15
+ # # block initialization with default cache
16
+ # end
17
+ #
18
+ # cache = Goz::Cache.new(ActiveSupport::Cache::MemoryStore.new) do |cache|
19
+ # # block initialization with custom cache
20
+ # end
21
+ #
22
+ # # initialization with default cache
23
+ # cache = Goz::Cache.new
24
+ #
25
+ # # initialization with custom cache
26
+ # cache = Goz::Cache.new(ActiveSupport::Cache::MemoryStore.new)
27
+ #
28
+ # # Write to cache
29
+ # cache.write(key, value)
30
+ #
31
+ # # Read from cache
32
+ # cache.read(key)
33
+ #
34
+ # # Delete from cache if key exists.
35
+ # cache.delete(key) if cache.exist?(key)
36
+ #
37
+ # # Clear the cache
38
+ # cache.clear
39
+ #
40
+ # == Author
41
+ #
42
+ # blair christensen. <mailto:blair.christensen@gmail.com>
43
+ #
44
+ # == Homepage
45
+ #
46
+ # https://github.com/blairc/goz/
47
+ #
48
+ class Cache
49
+
50
+ #
51
+ # Default cache implementation to use.
52
+ #
53
+ DEFAULT_CACHE = Goz::Cache::HashStore.new
54
+
55
+
56
+ @@caches = {}
57
+
58
+
59
+ #
60
+ # Create (if necessary) and return Goz::Cache instance.
61
+ #
62
+ # Params:
63
+ # +cache+:: (optional) Any +ActiveSupport::Cache::Store+ compatible class. Defaults to +DEFAULT_CACHE+.
64
+ #
65
+ def self.instance( cache = DEFAULT_CACHE )
66
+ unless @@caches.key?(cache)
67
+ @@caches[cache] = self.new(cache)
68
+ end
69
+ yield @@caches[cache] if block_given?
70
+ @@caches[cache]
71
+ end
72
+
73
+ #
74
+ # Initialize Goz::Cache
75
+ #
76
+ # Params:
77
+ # +cache+:: (optional) Any +ActiveSupport::Cache::Store+ compatible class. Defaults to +DEFAULT_CACHE+.
78
+ #
79
+ def initialize( cache = DEFAULT_CACHE )
80
+ @cache = cache
81
+ yield self if block_given?
82
+ self
83
+ end
84
+
85
+ #
86
+ # Empty cache. Returns +true+ if successful.
87
+ #
88
+ def clear
89
+ @cache.clear
90
+ end
91
+
92
+ #
93
+ # Return true if +key+ deleted from cache.
94
+ #
95
+ # Params:
96
+ # +key+:: Name of key to delete.
97
+ #
98
+ def delete(key)
99
+ @cache.delete(key)
100
+ end
101
+
102
+ #
103
+ # Return true if +key+ exists in cache.
104
+ #
105
+ # Params:
106
+ # +key+:: Name of key
107
+ #
108
+ def exist?(key)
109
+ @cache.exist?(key)
110
+ end
111
+
112
+ #
113
+ # Return value from cache or +nil+.
114
+ #
115
+ # Params:
116
+ # +key+:: Get value for this key.
117
+ #
118
+ def read(key)
119
+ @cache.read(key)
120
+ end
121
+
122
+ #
123
+ # Add +value+ to cache with +key+. Returns value added to cache.
124
+ #
125
+ # Params:
126
+ # +key+:: Associate value with this this key.
127
+ # +value+:: Value to add to cache.
128
+ #
129
+ def write(key, value)
130
+ @cache.write(key, value) ? value : nil
131
+ end
132
+
133
+ end # class Cache
134
+
135
+ end # module Goz
136
+
@@ -0,0 +1,75 @@
1
+ # encoding: utf-8
2
+
3
+ module Goz # :nodoc:
4
+ class Cache # :nodoc
5
+
6
+ #
7
+ # = Goz::Cache::HashStore - Hash-based cache implementation.
8
+ #
9
+ # == See Also
10
+ #
11
+ # Goz::Cache, ActiveSupport::Cache::Store
12
+ #
13
+ # == Author
14
+ #
15
+ # blair christensen. <mailto:blair.christensen@gmail.com>
16
+ #
17
+ # == Homepage
18
+ #
19
+ # https://github.com/blairc/goz/
20
+ #
21
+ class HashStore < Hash
22
+
23
+ #
24
+ # Empty cache. Returns +true+ if successful.
25
+ #
26
+ def clear
27
+ super ? true : false
28
+ end
29
+
30
+ #
31
+ # Return true if +key+ deleted from cache.
32
+ #
33
+ # Params:
34
+ # +key+:: Name of key to delete.
35
+ #
36
+ def delete(key)
37
+ super ? true : false
38
+ end
39
+
40
+ #
41
+ # Return true if +key+ exists in cache.
42
+ #
43
+ # Params:
44
+ # +key+:: Name of key
45
+ #
46
+ def exist?(key)
47
+ key?(key)
48
+ end
49
+
50
+ #
51
+ # Return value from cache or +nil+.
52
+ #
53
+ # Params:
54
+ # +key+:: Get value for this key.
55
+ #
56
+ def read(key)
57
+ self[key]
58
+ end
59
+
60
+ #
61
+ # Add +value+ to cache with +key+. Returns value added to cache.
62
+ #
63
+ # Params:
64
+ # +key+:: Associate value with this this key.
65
+ # +value+:: Value to add to cache.
66
+ #
67
+ def write(key, value)
68
+ self[key] = value
69
+ end
70
+
71
+ end # class HashStore
72
+
73
+ end # class Cache
74
+ end # module Goz
75
+
@@ -0,0 +1,141 @@
1
+ # encoding: utf-8
2
+
3
+ require 'logger'
4
+
5
+ module Goz # :nodoc:
6
+
7
+ #
8
+ # = Goz::Logger - Generic logger
9
+ #
10
+ # == Usage
11
+ #
12
+ # require 'goz/logger'
13
+ #
14
+ # logger = Goz::Logger.new('MyApp') do |logger|
15
+ # logger.debug('block initialization with default logger')
16
+ # end
17
+ #
18
+ # logger = Goz::Logger.new('MyApp')
19
+ # logger.error('initialization with default logger')
20
+ #
21
+ # logger = Goz::Logger.instance( 'MyApp', ::Logger.new($stdout) ) do |logger|
22
+ # logger.fatal('instance initialization with custom logger')
23
+ # end
24
+ #
25
+ # logger = Goz::Logger.instance( 'MyApp', ::Logger.new($stdout) )
26
+ # logger.info('instance initialization with custom logger')
27
+ #
28
+ # logger.warn('warn example to cover all log severity levels')
29
+ #
30
+ # == Author
31
+ #
32
+ # blair christensen. <mailto:blair.christensen@gmail.com>
33
+ #
34
+ # == Homepage
35
+ #
36
+ # https://github.com/blairc/goz/
37
+ #
38
+ class Logger
39
+
40
+ #
41
+ # Default logfile to use.
42
+ #
43
+ DEFAULT_LOGFILE = $stdout
44
+
45
+ #
46
+ # Default logger to use.
47
+ #
48
+ DEFAULT_LOGGER = ::Logger.new(DEFAULT_LOGFILE)
49
+
50
+
51
+ @@loggers = {}
52
+
53
+
54
+ #
55
+ # Create (if necessary) and return Goz::Logger instance.
56
+ #
57
+ # Params:
58
+ # +tag+:: Tag log messages with this +String+.
59
+ # +logger+:: (optional) Any +::Logger+ compatible class. Defaults to +DEFAULT_LOGGER+.
60
+ #
61
+ def self.instance( tag, logger = DEFAULT_LOGGER )
62
+ key = [ tag, logger ]
63
+ unless @@loggers.key?(key)
64
+ @@loggers[key] = self.new(tag, logger)
65
+ end
66
+ yield @@loggers[key] if block_given?
67
+ @@loggers[key]
68
+ end
69
+
70
+ #
71
+ # Initialize Goz::Logger
72
+ #
73
+ # Params:
74
+ # +tag+:: Tag log messages with this +String+.
75
+ # +logger+:: (optional) Any +::Logger+ compatible class. Defaults to +DEFAULT_LOGGER+.
76
+ #
77
+ def initialize( tag, logger = DEFAULT_LOGGER )
78
+ @logger = logger
79
+ @tag = tag
80
+ # TODO Make configurable?
81
+ @logger.formatter = proc do |severity, datetime, progname, msg|
82
+ "#{datetime} #{severity} #{tag}: #{msg}\n"
83
+ end
84
+ yield self if block_given?
85
+ self
86
+ end
87
+
88
+ #
89
+ # Send +debug+ log message.
90
+ #
91
+ # Params:
92
+ # +message+:: +String+ message to send to logger.
93
+ #
94
+ def debug(message)
95
+ @logger.debug message
96
+ end
97
+
98
+ #
99
+ # Send +error+ log message.
100
+ #
101
+ # Params:
102
+ # +message+:: +String+ message to send to logger.
103
+ #
104
+ def error(message)
105
+ @logger.error message
106
+ end
107
+
108
+ #
109
+ # Send +fatal+ log message.
110
+ #
111
+ # Params:
112
+ # +message+:: +String+ message to send to logger.
113
+ #
114
+ def fatal(message)
115
+ @logger.fatal message
116
+ end
117
+
118
+ #
119
+ # Send info log message.
120
+ #
121
+ # Params:
122
+ # +message+:: +String+ message to send to logger.
123
+ #
124
+ def info(message)
125
+ @logger.info message
126
+ end
127
+
128
+ #
129
+ # Send warn log message.
130
+ #
131
+ # Params:
132
+ # +message+:: +String+ message to send to logger.
133
+ #
134
+ def warn(message)
135
+ @logger.warn message
136
+ end
137
+
138
+ end # class Logger
139
+
140
+ end # module Goz
141
+
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ module Goz
4
+
5
+ #
6
+ # Goz version
7
+ #
8
+ VERSION = '0.0.2'
9
+
10
+ end
11
+
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'goz'
7
+ require 'test/unit'
8
+
9
+
10
+ class TestGoz < Test::Unit::TestCase
11
+
12
+ def test_version
13
+ assert_equal '0.0.2', Goz::VERSION
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,88 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'goz/cache'
7
+ require 'test/unit'
8
+
9
+
10
+ class TestGozCache < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @cache = Goz::Cache.new
14
+ end
15
+
16
+ def test_default_initialization
17
+ blockable = false
18
+ cache = Goz::Cache.new do |cache|
19
+ assert_kind_of Goz::Cache, cache
20
+ blockable = true
21
+ end
22
+ assert blockable, 'works as block'
23
+ assert_kind_of Goz::Cache, cache
24
+ assert_kind_of Goz::Cache, Goz::Cache.new
25
+ end
26
+
27
+ def test_initialization
28
+ blockable = false
29
+ cache = Goz::Cache.new(@cache) do |cache|
30
+ assert_kind_of Goz::Cache, cache
31
+ blockable = true
32
+ end
33
+ assert blockable, 'works as block'
34
+ assert_kind_of Goz::Cache, cache
35
+ assert_kind_of Goz::Cache, Goz::Cache.new(@cache)
36
+ end
37
+
38
+ def test_default_instance
39
+ blockable = false
40
+ cache = Goz::Cache.instance do |cache|
41
+ assert_kind_of Goz::Cache, cache
42
+ blockable = true
43
+ end
44
+ assert blockable, 'works as block'
45
+ assert_kind_of Goz::Cache, cache
46
+ assert_kind_of Goz::Cache, Goz::Cache.instance
47
+ assert_equal cache, Goz::Cache.instance
48
+ assert_not_equal cache, Goz::Cache.instance(Array.new)
49
+ end
50
+
51
+ def test_instance
52
+ blockable = false
53
+ cache = Goz::Cache.instance(@cache) do |cache|
54
+ assert_kind_of Goz::Cache, cache
55
+ blockable = true
56
+ end
57
+ assert blockable, 'works as block'
58
+ assert_kind_of Goz::Cache, cache
59
+ assert_kind_of Goz::Cache, Goz::Cache.instance(@cache)
60
+ assert_equal cache, Goz::Cache.instance(@cache)
61
+ assert_not_equal cache, Goz::Cache.instance(Array.new)
62
+ end
63
+
64
+ def test_default_cache
65
+ assert_kind_of Goz::Cache::HashStore, Goz::Cache::DEFAULT_CACHE
66
+ end
67
+
68
+ def test_caching
69
+ key, value = :foo, :bar
70
+
71
+ assert_equal false, @cache.exist?(key)
72
+ assert_equal false, @cache.delete(key)
73
+
74
+ assert_equal value, @cache.write(key, value)
75
+ assert_equal value, @cache.read(key)
76
+ assert_equal true, @cache.exist?(key)
77
+ assert_equal true, @cache.delete(key)
78
+ assert_equal false, @cache.exist?(key)
79
+ assert_equal nil, @cache.read(key)
80
+
81
+ assert_equal value, @cache.write(key, value)
82
+ assert_equal true, @cache.exist?(key)
83
+ assert_equal true, @cache.clear
84
+ assert_equal false, @cache.exist?(key)
85
+ end
86
+
87
+ end
88
+
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'goz/cache/hash_store'
7
+ require 'test/unit'
8
+
9
+
10
+ class TestGozCacheHashStore < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @cache = Goz::Cache::HashStore.new
14
+ end
15
+
16
+ def test_default_initialization
17
+ assert_kind_of Goz::Cache::HashStore, @cache
18
+ end
19
+
20
+ def test_caching
21
+ key, value = :foo, :bar
22
+
23
+ assert_equal false, @cache.exist?(key)
24
+ assert_equal false, @cache.delete(key)
25
+
26
+ assert_equal value, @cache.write(key, value)
27
+ assert_equal value, @cache.read(key)
28
+ assert_equal true, @cache.exist?(key)
29
+ assert_equal true, @cache.delete(key)
30
+ assert_equal false, @cache.exist?(key)
31
+ assert_equal nil, @cache.read(key)
32
+
33
+ assert_equal value, @cache.write(key, value)
34
+ assert_equal true, @cache.exist?(key)
35
+ assert_equal true, @cache.clear
36
+ assert_equal false, @cache.exist?(key)
37
+ end
38
+
39
+ end
40
+
@@ -0,0 +1,90 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'goz/logger'
7
+ require 'logger'
8
+ require 'stringio'
9
+ require 'test/unit'
10
+
11
+
12
+ class TestGozLogger < Test::Unit::TestCase
13
+
14
+ def setup
15
+ @s = StringIO.new
16
+ @logger = Logger.new(@s)
17
+ @tag = self.class.name
18
+ end
19
+
20
+ def test_default_initialization
21
+ blockable = false
22
+ logger = Goz::Logger.new(@tag) do |logger|
23
+ assert_kind_of Goz::Logger, logger
24
+ blockable = true
25
+ end
26
+ assert blockable, 'works as block'
27
+ assert_kind_of Goz::Logger, logger
28
+ assert_kind_of Goz::Logger, Goz::Logger.new(@tag)
29
+ end
30
+
31
+ def test_initialization
32
+ blockable = false
33
+ logger = Goz::Logger.new(@tag, @logger) do |logger|
34
+ assert_kind_of Goz::Logger, logger
35
+ blockable = true
36
+ end
37
+ assert blockable, 'works as block'
38
+ assert_kind_of Goz::Logger, logger
39
+ assert_kind_of Goz::Logger, Goz::Logger.new(@tag, @logger)
40
+ end
41
+
42
+ def test_default_instance
43
+ blockable = false
44
+ logger = Goz::Logger.instance(@tag) do |logger|
45
+ assert_kind_of Goz::Logger, logger
46
+ blockable = true
47
+ end
48
+ assert blockable, 'works as block'
49
+ assert_kind_of Goz::Logger, logger
50
+ assert_kind_of Goz::Logger, Goz::Logger.instance(@tag)
51
+ assert_equal logger, Goz::Logger.instance(@tag)
52
+ assert_not_equal logger, Goz::Logger.instance('foo')
53
+ end
54
+
55
+ def test_instance
56
+ blockable = false
57
+ logger = Goz::Logger.instance(@tag, @logger) do |logger|
58
+ assert_kind_of Goz::Logger, logger
59
+ blockable = true
60
+ end
61
+ assert blockable, 'works as block'
62
+ assert_kind_of Goz::Logger, logger
63
+ assert_kind_of Goz::Logger, Goz::Logger.instance(@tag, @logger)
64
+ assert_equal logger, Goz::Logger.instance(@tag, @logger)
65
+ assert_not_equal logger, Goz::Logger.instance('foo')
66
+ end
67
+
68
+ def test_logging_within_block
69
+ [ :debug, :error, :fatal, :info, :warn ].each do |severity|
70
+ Goz::Logger.new(@tag, @logger) do |logger|
71
+ logger.send severity, "this is a #{ severity.to_s } message"
72
+ @s.rewind
73
+ rx = %r{^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2} [+-]\d+ #{ severity.to_s.upcase } #{ @tag }: this is a #{ severity.to_s } message$}
74
+ assert_match rx, @s.readlines.last.chomp
75
+ end
76
+ end
77
+ end
78
+
79
+ def test_logging_outside_of_block
80
+ [ :debug, :error, :fatal, :info, :warn ].each do |severity|
81
+ logger = Goz::Logger.new(@tag, @logger)
82
+ logger.send severity, "this is a #{ severity.to_s } message"
83
+ @s.rewind
84
+ rx = %r{^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2} [+-]\d+ #{ severity.to_s.upcase } #{ @tag }: this is a #{ severity.to_s } message$}
85
+ assert_match rx, @s.readlines.join.chomp
86
+ end
87
+ end
88
+
89
+ end
90
+
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: goz
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - blair christensen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &70286441430580 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70286441430580
25
+ - !ruby/object:Gem::Dependency
26
+ name: rdoc
27
+ requirement: &70286441430140 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70286441430140
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc-readme
38
+ requirement: &70286441429640 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.2
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70286441429640
47
+ - !ruby/object:Gem::Dependency
48
+ name: simplecov
49
+ requirement: &70286441429220 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70286441429220
58
+ description: Generic self-service provisioning system
59
+ email:
60
+ - blair.christensen@gmail.com
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - .gitignore
66
+ - Gemfile
67
+ - HISTORY.rdoc
68
+ - README.rdoc
69
+ - Rakefile
70
+ - goz.gemspec
71
+ - lib/goz.rb
72
+ - lib/goz/cache.rb
73
+ - lib/goz/cache/hash_store.rb
74
+ - lib/goz/logger.rb
75
+ - lib/goz/version.rb
76
+ - test/test_goz.rb
77
+ - test/test_goz_cache.rb
78
+ - test/test_goz_cache_hash_store.rb
79
+ - test/test_goz_logger.rb
80
+ homepage: https://github.com/blairc/goz/
81
+ licenses: []
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ segments:
93
+ - 0
94
+ hash: -4339046031995261735
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ segments:
102
+ - 0
103
+ hash: -4339046031995261735
104
+ requirements: []
105
+ rubyforge_project: goz
106
+ rubygems_version: 1.8.7
107
+ signing_key:
108
+ specification_version: 3
109
+ summary: Generic self-service provisioning system
110
+ test_files:
111
+ - test/test_goz.rb
112
+ - test/test_goz_cache.rb
113
+ - test/test_goz_cache_hash_store.rb
114
+ - test/test_goz_logger.rb