mail-store-agent 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rvmrc ADDED
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
+ environment_id="ruby-1.9.2-p290@mail-store-agent"
8
+
9
+ #
10
+ # Uncomment following line if you want options to be set only for given project.
11
+ #
12
+ # PROJECT_JRUBY_OPTS=( --1.9 )
13
+
14
+ #
15
+ # First we attempt to load the desired environment directly from the environment
16
+ # file. This is very fast and efficient compared to running through the entire
17
+ # CLI and selector. If you want feedback on which environment was used then
18
+ # insert the word 'use' after --create as this triggers verbose mode.
19
+ #
20
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
21
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
22
+ then
23
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
24
+
25
+ if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
26
+ then
27
+ . "${rvm_path:-$HOME/.rvm}/hooks/after_use"
28
+ fi
29
+ else
30
+ # If the environment file has not yet been created, use the RVM CLI to select.
31
+ if ! rvm --create "$environment_id"
32
+ then
33
+ echo "Failed to create RVM environment '${environment_id}'."
34
+ exit 1
35
+ fi
36
+ fi
37
+
38
+ #
39
+ # If you use an RVM gemset file to install a list of gems (*.gems), you can have
40
+ # it be automatically loaded. Uncomment the following and adjust the filename if
41
+ # necessary.
42
+ #
43
+ #filename=".gems"
44
+ #filename="Gemfile"
45
+ if false && [[ -s "$filename" ]] ; then
46
+ rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
47
+ fi
48
+
49
+ # If you use bundler, this might be useful to you:
50
+ if command -v bundle && [[ -s Gemfile ]] ; then
51
+ bundle install
52
+ fi
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in example-gem.gemspec
4
+ gemspec
5
+
6
+ gem 'rspec'
data/README.mkd CHANGED
@@ -42,7 +42,7 @@ I want to take this a step further so that I can verify that mail got sent to th
42
42
 
43
43
  Mail::TestMailer.deliveries = MailStoreAgent.new
44
44
 
45
- # send some mail to someone@someplace.com ...
45
+ # send some mail to someone@someplace.com, and then ...
46
46
 
47
47
  Mail::TestMailer.deliveries.get('someone@someplace.com').is_a? Mail::Message # or nil
48
48
 
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ Bundler.require(:default, :test)
3
+ require 'rspec/core/rake_task'
4
+
5
+ desc "Run RSpec"
6
+ RSpec::Core::RakeTask.new(:rspec) do |t|
7
+ t.ruby_opts = %w[-w]
8
+ end
@@ -13,7 +13,15 @@ class MailStoreAgent < Array
13
13
 
14
14
  def get(address)
15
15
  self.sort_mail!
16
- return @queues[address] ? @queues[address].shift : nil
16
+ q = @queues[address]
17
+ return q && q.length > 0 ? q.shift : nil
18
+ end
19
+
20
+ # Peek at next message without removing it from queue
21
+ def peek(address)
22
+ self.sort_mail!
23
+ q = @queues[address]
24
+ return q && q.length > 0 ? q[0] : nil
17
25
  end
18
26
 
19
27
  protected
@@ -0,0 +1,5 @@
1
+ module Example
2
+ module Gem
3
+ VERSION = "0.1.1"
4
+ end
5
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mail-store-agent/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mail-store-agent"
7
+ s.version = Example::Gem::VERSION
8
+ s.authors = ["Larry Siden, Westside Consulting LLC"]
9
+ s.email = ["lsiden@westside-consulting.com"]
10
+ s.homepage = 'http://github.com/lsiden/mail-store-agent/'
11
+ s.summary = %q{
12
+ Allows test script to access mail messages from queues by recipient.
13
+ }
14
+ s.description = %q{
15
+ require 'mail'
16
+ require 'mail-store-agent'
17
+
18
+ Mail.defaults do
19
+ delivery_method :test
20
+ end
21
+
22
+ Mail::TestMailer.deliveries = MailStoreAgent.new
23
+
24
+ # send some mail to someone@someplace.com, and then ...
25
+
26
+ Mail::TestMailer.deliveries.get('someone@someplace.com').is_a? Mail::Message # or nil
27
+ }
28
+
29
+ s.rubyforge_project = "mail-store-agent"
30
+
31
+ s.files = `git ls-files`.split("\n")
32
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
33
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
34
+ s.require_paths = ["lib"]
35
+ s.licenses = ['Creative Commons Share-Alike Unported', 'Ruby License']
36
+
37
+ # specify any dependencies here; for example:
38
+ s.add_development_dependency "rspec"
39
+ s.add_runtime_dependency "mail"
40
+ end
@@ -30,7 +30,7 @@ describe MailStoreAgent do
30
30
  body 'get this?'
31
31
  end
32
32
  mail.should be_instance_of Mail::Message
33
- mail.perform_deliveries.should == true
33
+ mail.perform_deliveries.should be_true
34
34
  mail.errors.each {|e| puts e}
35
35
  Mail::TestMailer.deliveries.should have(1).message
36
36
 
@@ -58,14 +58,14 @@ describe MailStoreAgent do
58
58
  end
59
59
 
60
60
  it 'knows what accounts have been sent mail' do
61
- Mail::TestMailer.deliveries.accounts == ['tarzan@jungle.com', 'jane@jungle.com']
61
+ Mail::TestMailer.deliveries.accounts.should be == ['tarzan@jungle.com', 'jane@jungle.com']
62
62
  end
63
63
 
64
64
  it 'can return next e-mail for any given address' do
65
65
  mail = Mail::TestMailer.deliveries.get('jane@jungle.com')
66
66
  mail.should be_kind_of Mail::Message
67
- mail.to[0].should == 'jane@jungle.com'
68
- mail.subject.should == 'testing now'
67
+ mail.to[0].should be == 'jane@jungle.com'
68
+ mail.subject.should be == 'testing now'
69
69
  end
70
70
 
71
71
  it 'returns nil if there is no more mail for address' do
@@ -77,9 +77,9 @@ describe MailStoreAgent do
77
77
  end
78
78
 
79
79
  it 'returns emails in order' do
80
- Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should == 'just testing'
81
- Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should == 'still testing'
82
- Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should == 'keep on testing'
80
+ Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should be == 'just testing'
81
+ Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should be == 'still testing'
82
+ Mail::TestMailer.deliveries.get('tarzan@jungle.com').subject.should be == 'keep on testing'
83
83
  Mail::TestMailer.deliveries.get('tarzan@jungle.com').should be_nil
84
84
  end
85
85
 
@@ -91,7 +91,7 @@ describe MailStoreAgent do
91
91
  Mail::TestMailer.deliveries.push :foo
92
92
  Mail::TestMailer.deliveries.push 'baz'
93
93
  Mail::TestMailer.deliveries.push Object.new
94
- Mail::TestMailer.deliveries.accounts == ['tarzan@jungle.com', 'jane@jungle.com']
94
+ Mail::TestMailer.deliveries.accounts.should be == ['tarzan@jungle.com', 'jane@jungle.com']
95
95
  Mail::TestMailer.deliveries.get('tarzan@jungle.com').should be_nil
96
96
  Mail::TestMailer.deliveries.should have(7).items
97
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mail-store-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-21 00:00:00.000000000Z
12
+ date: 2011-12-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: mail
16
- requirement: &79348610 !ruby/object:Gem::Requirement
15
+ name: rspec
16
+ requirement: &73092940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,37 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *79348610
25
- description: Provides per-email-account sequential access to Mail::TestMailer.deliveries
26
- email: lsiden@westside-consulting.com
24
+ version_requirements: *73092940
25
+ - !ruby/object:Gem::Dependency
26
+ name: mail
27
+ requirement: &73092650 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *73092650
36
+ description: ! "\n require 'mail'\n require 'mail-store-agent'\n\n Mail.defaults
37
+ do\n delivery_method :test\n end\n\n Mail::TestMailer.deliveries = MailStoreAgent.new\n\n
38
+ \ # send some mail to someone@someplace.com, and then ...\n\n Mail::TestMailer.deliveries.get('someone@someplace.com').is_a?
39
+ Mail::Message # or nil\n "
40
+ email:
41
+ - lsiden@westside-consulting.com
27
42
  executables: []
28
43
  extensions: []
29
44
  extra_rdoc_files: []
30
45
  files:
46
+ - .gitignore
47
+ - .rvmrc
48
+ - Gemfile
49
+ - Gemfile.lock
31
50
  - README.mkd
51
+ - Rakefile
32
52
  - lib/mail-store-agent.rb
53
+ - lib/mail-store-agent/version.rb
54
+ - mail-store-agent.gemspec
33
55
  - spec/mail_store_agent_spec.rb
34
56
  homepage: http://github.com/lsiden/mail-store-agent/
35
57
  licenses:
@@ -45,16 +67,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
45
67
  - - ! '>='
46
68
  - !ruby/object:Gem::Version
47
69
  version: '0'
70
+ segments:
71
+ - 0
72
+ hash: 714226061
48
73
  required_rubygems_version: !ruby/object:Gem::Requirement
49
74
  none: false
50
75
  requirements:
51
76
  - - ! '>='
52
77
  - !ruby/object:Gem::Version
53
78
  version: '0'
79
+ segments:
80
+ - 0
81
+ hash: 714226061
54
82
  requirements: []
55
- rubyforge_project:
83
+ rubyforge_project: mail-store-agent
56
84
  rubygems_version: 1.8.10
57
85
  signing_key:
58
86
  specification_version: 3
59
- summary: Tiny mail agent for extracting delivered mail messages from Mail::TestMailer
87
+ summary: Allows test script to access mail messages from queues by recipient.
60
88
  test_files: []