sunsap 0.1.0 → 0.2.0

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.
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.