sunsap 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 0.2.0 / 2013-1-12
2
+
3
+ * 1 major enhancement
4
+
5
+ * Add Readers
6
+
1
7
  === 0.1.0 / 2012-12-16
2
8
 
3
9
  * 1 major enhancement
data/Manifest.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  .autotest
2
2
  History.txt
3
3
  Manifest.txt
4
- README.markdown
4
+ README.mdown
5
5
  Rakefile
6
6
  lib/sunsap.rb
data/README.mdown ADDED
@@ -0,0 +1,5 @@
1
+ # sunsap
2
+ https://github.com/weddingcakes/sunsap
3
+ ![codeclimate](https://codeclimate.com/github/weddingcakes/sunsap)
4
+
5
+ copyright (C) 2012 weddingcakes. See LICENSE.txt for more.
data/Rakefile CHANGED
@@ -1,7 +1,6 @@
1
1
  # -*- ruby -*-
2
-
3
2
  require 'hoe'
4
-
3
+ require 'rake'
5
4
  Hoe.plugin :gemcutter
6
5
  Hoe.plugin :roodi
7
6
  Hoe.plugin :test
@@ -11,14 +10,12 @@ Hoe.plugin :git
11
10
  Hoe.plugins.delete :rubyforge
12
11
 
13
12
  Hoe.spec 'sunsap' do
14
- developer('weddingcakes', 'keymint1498@gmail.com')
15
- license 'MIT'
13
+ developer 'weddingcakes', 'keymint1498@gmail.com'
16
14
  extra_deps << ['rspec', "2.12.0"]
17
15
  extra_deps << ['mocha', "0.13.1"]
18
16
  extra_deps << ['simplecov', "0.7.1" ]
19
-
20
- self.readme_file = "README.markdown"
17
+
18
+ self.readme_file = "README.mdown"
21
19
  self.description = "Send messages to a reporter"
22
20
  end
23
-
24
21
  # vim: syntax=ruby
data/lib/sunsap.rb CHANGED
@@ -1,17 +1,144 @@
1
1
  module Sunsap
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  attr_accessor :reportername, :messages
4
4
 
5
+ # The reporter
5
6
  class Reporter
7
+ # Create a new reporter
8
+ #
9
+ # @api public
10
+ # @param [reportername] the name of the reporter as a string
11
+ #
12
+ # @example Make a new reporter
13
+ #
14
+ # reporter = Sunsap::Reporter.new("test")
15
+ # # => true
16
+ #
17
+ # @returns true
6
18
  def initialize(reportername)
7
19
  @queue = []
20
+
21
+ # Send a message to the queue
22
+ #
23
+ # @api public
24
+ # @param [m] message to send
25
+ #
26
+ # @example Send a message
27
+ #
28
+ # reporter.send_test_message "Success!"
29
+ # # => true
30
+ #
31
+ # @returns true
8
32
  self.class.send :define_method, "send_#{reportername}_message" do |m|
9
33
  @queue.push(m)
34
+ true
10
35
  end
11
36
 
37
+ # View the queue
38
+ #
39
+ # @api public
40
+ # @example Read a queue
41
+ #
42
+ # reporter.queue
43
+ # # => ["Success!"]
44
+ #
45
+ # @returns Array of messages
12
46
  def queue
13
47
  @queue
14
48
  end
49
+ true
50
+ end
51
+ end
52
+
53
+ class Reader
54
+ # Make a reader
55
+ #
56
+ # @params [reporter] reporter to read the queue of
57
+ #
58
+ # @example Make a new instance of the `Reader` class
59
+ #
60
+ # reader = Sunsap::Reader.new(Sunsap::Reporter.new("test"))
61
+ # # => true
62
+ def initialize(reporter)
63
+ @reporter = reporter
64
+ true
65
+ end
66
+ # Read the queue the right way
67
+ # @api public
68
+ # @example Read a queue
69
+ # reporter = Sunsap::Reporer.new("test")
70
+ # reporter.send_test_message("Success!")
71
+ # reader = Sunsap::Reader.new
72
+ # reader.read
73
+ # # => {:messages => 1, :queue => ["Success!"]}
74
+
75
+ def read
76
+ {:messages => queuesize, :queue => queue}
77
+ end
78
+
79
+ # Read the queue if it's not empty
80
+ #
81
+ # @api public
82
+ # @example Read a queue
83
+ #
84
+ # reporter = Sunsap::Reporer.new
85
+ # reader = Sunsap::Reader.new
86
+ # reader.read!
87
+ # # => error: RuntimeError: Queue was empty
88
+ #
89
+ # @returns Messages and the Queue or raises RuntimeError if the queue is empty
90
+ def read!
91
+ unless queuesize >= 1
92
+ raise "Queue was empty"
93
+ else
94
+ queue
95
+ end
96
+ {:messages => queuesize, :queue => queue}
97
+ end
98
+
99
+ # Read the queue in a more friendly matter
100
+ #
101
+ # @api public
102
+ # @example Read a queue
103
+ # reporter = Sunsap::Reporer.new("test")
104
+ # reporter.send_test_message("Success!")
105
+ # reader = Sunsap::Reader.new
106
+ # reader.read
107
+ # # => "Messages: 1, Queue: ["Success!"]"
108
+ #
109
+ # @returns Messages and the Queue
110
+ def read_friendly
111
+ "Messages: #{queuesize}, Queue: #{queue}"
112
+ end
113
+
114
+ # Read the queue if it's not empty
115
+ #
116
+ # @api public
117
+ # @example Read a queue
118
+ #
119
+ # reporter = Sunsap::Reporer.new
120
+ # reader = Sunsap::Reader.new
121
+ # reader.read!
122
+ # # => error: RuntimeError: Queue was empty
123
+ #
124
+ # @returns Messages and the Queue or raises RuntimeError if the queue is empty
125
+ def read_friendly!
126
+ unless queuesize >= 1
127
+ raise "Queue was empty"
128
+ else
129
+ queue
130
+ "Messages: #{queuesize}, Queue: #{queue}"
131
+ end
132
+ end
133
+
134
+ private
135
+
136
+ def queue
137
+ queue = @reporter.queue
138
+ end
139
+
140
+ def queuesize
141
+ queuesize = @reporter.queue.size
15
142
  end
16
143
  end
17
144
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunsap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-16 00:00:00.000000000 Z
12
+ date: 2013-01-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: '3.3'
85
+ version: '3.4'
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: '3.3'
93
+ version: '3.4'
94
94
  description: Send messages to a reporter
95
95
  email:
96
96
  - keymint1498@gmail.com
@@ -103,17 +103,15 @@ files:
103
103
  - .autotest
104
104
  - History.txt
105
105
  - Manifest.txt
106
- - README.markdown
106
+ - README.mdown
107
107
  - Rakefile
108
108
  - lib/sunsap.rb
109
- - .gemtest
110
109
  homepage: https://github.com/weddingcakes/sunsap
111
- licenses:
112
- - MIT
110
+ licenses: []
113
111
  post_install_message:
114
112
  rdoc_options:
115
113
  - --main
116
- - README.markdown
114
+ - README.mdown
117
115
  require_paths:
118
116
  - lib
119
117
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -130,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
128
  version: '0'
131
129
  requirements: []
132
130
  rubyforge_project: sunsap
133
- rubygems_version: 1.8.24
131
+ rubygems_version: 1.8.23
134
132
  signing_key:
135
133
  specification_version: 3
136
134
  summary: ''
data/.gemtest DELETED
File without changes
data/README.markdown DELETED
@@ -1,7 +0,0 @@
1
- # sunsap
2
-
3
- https://github.com/weddingcakes/sunsap
4
-
5
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/weddingcakes/sunsap)
6
- # Copyright
7
- Copyright (c) 2012 weddingcakes. See LICENSE.txt for more.