mail-store-agent 0.1.0 → 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.
@@ -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: []