winton-active_wrapper 0.1.1 → 0.1.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.
data/README.markdown CHANGED
@@ -17,7 +17,7 @@ Usage
17
17
  require 'rubygems'
18
18
  require 'active_wrapper'
19
19
 
20
- $db, $log = ActiveWrapper.setup(
20
+ $db, $log, $mail = ActiveWrapper.setup(
21
21
  :base => File.dirname('__FILE__'),
22
22
  :env => 'development',
23
23
  :log => 'custom',
@@ -30,11 +30,13 @@ $db.migrate('001')
30
30
  $db.migrate_reset
31
31
  $log.info('log this')
32
32
  $log.clear
33
+ $mail.deliver(:from => 'me@me.com', :to => 'you@you.com', :subject => 'subject', :body => 'body')
33
34
  </pre>
34
35
 
35
36
  <code>ActiveWrapper</code> looks for the following files within the <code>:base</code> directory:
36
37
 
37
38
  * <b>config/database.yml</b>
39
+ * <b>config/mail.yml</b>
38
40
  * <b>db/migrate/*.rb</b>
39
41
 
40
42
  The <code>:env</code> option is <code>"development"</code> by default.
@@ -50,6 +52,25 @@ You may also set <code>:log</code> to false to disable logging entirely.
50
52
 
51
53
  Setting <code>:stdout</code> to true causes stdout and stderr to redirect to the logger. It is false by default.
52
54
 
55
+ Mailer
56
+ ------
57
+
58
+ Your <b>mail.yml</b> should look something like this:
59
+
60
+ <pre>
61
+ development:
62
+ smtp:
63
+ address: smtp.gmail.com
64
+ authentication: :plain
65
+ domain: gmail.com
66
+ password: password
67
+ port: 587
68
+ enable_starttls_auto: true
69
+ user_name: user@gmail.com
70
+ </pre>
71
+
72
+ This file is optional.
73
+
53
74
  Rakefile
54
75
  --------
55
76
 
@@ -2,14 +2,14 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{active_wrapper}
5
- s.version = "0.1.1"
5
+ s.version = "0.1.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Winton Welsh"]
9
- s.date = %q{2009-06-14}
9
+ s.date = %q{2009-06-27}
10
10
  s.email = %q{mail@wintoni.us}
11
11
  s.extra_rdoc_files = ["README.markdown"]
12
- s.files = ["active_wrapper.gemspec", "gemspec.rb", "lib", "lib/active_wrapper", "lib/active_wrapper/db.rb", "lib/active_wrapper/log.rb", "lib/active_wrapper/tasks.rb", "lib/active_wrapper.rb", "MIT-LICENSE", "Rakefile", "README.markdown", "resources", "resources/migration.template", "spec", "spec/spec.opts", "spec/spec_helper.rb"]
12
+ s.files = ["active_wrapper.gemspec", "gemspec.rb", "lib", "lib/active_wrapper", "lib/active_wrapper/db.rb", "lib/active_wrapper/log.rb", "lib/active_wrapper/mail.rb", "lib/active_wrapper/tasks.rb", "lib/active_wrapper.rb", "MIT-LICENSE", "Rakefile", "README.markdown", "resources", "resources/migration.template", "spec", "spec/spec.opts", "spec/spec_helper.rb"]
13
13
  s.homepage = %q{http://github.com/winton/active_wrapper}
14
14
  s.require_paths = ["lib"]
15
15
  s.rubygems_version = %q{1.3.1}
@@ -20,8 +20,14 @@ Gem::Specification.new do |s|
20
20
  s.specification_version = 2
21
21
 
22
22
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
23
+ s.add_runtime_dependency(%q<activerecord>, ["= 2.3.2"])
24
+ s.add_runtime_dependency(%q<actionmailer>, ["= 2.3.2"])
23
25
  else
26
+ s.add_dependency(%q<activerecord>, ["= 2.3.2"])
27
+ s.add_dependency(%q<actionmailer>, ["= 2.3.2"])
24
28
  end
25
29
  else
30
+ s.add_dependency(%q<activerecord>, ["= 2.3.2"])
31
+ s.add_dependency(%q<actionmailer>, ["= 2.3.2"])
26
32
  end
27
33
  end
data/gemspec.rb CHANGED
@@ -7,11 +7,13 @@ GEM_SPEC = Gem::Specification.new do |s|
7
7
  s.homepage = "http://github.com/winton/#{GEM_NAME}"
8
8
  s.summary = "Wraps ActiveRecord and Logger for use in non-Rails environments"
9
9
  # == CONFIGURE ==
10
+ s.add_dependency('activerecord', '=2.3.2')
11
+ s.add_dependency('actionmailer', '=2.3.2')
10
12
  s.extra_rdoc_files = [ "README.markdown" ]
11
13
  s.files = GEM_FILES.to_a
12
14
  s.has_rdoc = false
13
15
  s.name = GEM_NAME
14
16
  s.platform = Gem::Platform::RUBY
15
17
  s.require_path = "lib"
16
- s.version = "0.1.1"
18
+ s.version = "0.1.2"
17
19
  end
@@ -21,8 +21,8 @@ module ActiveWrapper
21
21
  end
22
22
 
23
23
  def migrate_reset
24
- db_migrate(0)
25
- db_migrate
24
+ migrate(0)
25
+ migrate
26
26
  end
27
27
 
28
28
  def generate_migration(name=nil)
@@ -0,0 +1,40 @@
1
+ module ActiveWrapper
2
+ class Mail
3
+
4
+ attr_reader :base, :env, :config
5
+
6
+ def initialize(options)
7
+ @base = options[:base]
8
+ @env = options[:env].to_s
9
+
10
+ path = "#{base}/config/mail.yml"
11
+
12
+ if File.exists?(path)
13
+ @config = YAML::load(File.open(path))
14
+ if @config && @config = @config[@env]
15
+
16
+ @config = @config.to_options
17
+ @config[:imap] = @config[:imap].to_options if @config[:imap]
18
+ @config[:smtp] = @config[:smtp].to_options if @config[:smtp]
19
+ if @config[:smtp]
20
+ ActionMailer::Base.delivery_method = :smtp
21
+ ActionMailer::Base.smtp_settings = @config[:smtp]
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ def deliver(options)
28
+ Mailer.deliver_email(options)
29
+ end
30
+
31
+ class Mailer < ActionMailer::Base
32
+ def email(options)
33
+ from options[:from]
34
+ recipients options[:to]
35
+ subject options[:subject]
36
+ body options[:body]
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,10 +1,18 @@
1
+ Dir["#{File.dirname(__FILE__)}/../vendor/*/lib"].each do |path|
2
+ $:.unshift path
3
+ end
4
+
1
5
  require 'rubygems'
6
+ gem 'activerecord', '=2.3.2'
7
+ gem 'actionmailer', '=2.3.2'
2
8
  require 'activerecord'
9
+ require 'actionmailer'
3
10
  require 'logger'
4
11
  require 'yaml'
5
12
 
6
13
  require File.dirname(__FILE__) + "/active_wrapper/db"
7
14
  require File.dirname(__FILE__) + "/active_wrapper/log"
15
+ require File.dirname(__FILE__) + "/active_wrapper/mail"
8
16
 
9
17
  module ActiveWrapper
10
18
  class <<self
@@ -14,10 +22,18 @@ module ActiveWrapper
14
22
  options = {
15
23
  :base => File.dirname($0),
16
24
  :env => 'development',
17
- :log => 'development'
25
+ :log => options[:env] || 'development'
18
26
  }.merge(options.reject { |k, v| v.nil? })
27
+
28
+ db = Db.new(options)
29
+ log = Log.new(options)
30
+ mail = Mail.new(options)
31
+
32
+ ActionMailer::Base.logger = log
19
33
 
20
- [ Db.new(options), Log.new(options) ]
34
+ [ db, log, mail ]
21
35
  end
22
36
  end
23
- end
37
+ end
38
+
39
+ ActiveRecord::Base.default_timezone = :utc
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: winton-active_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Winton Welsh
@@ -9,10 +9,29 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-14 00:00:00 -07:00
12
+ date: 2009-06-27 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activerecord
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: actionmailer
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.3.2
34
+ version:
16
35
  description:
17
36
  email: mail@wintoni.us
18
37
  executables: []
@@ -28,6 +47,7 @@ files:
28
47
  - lib/active_wrapper
29
48
  - lib/active_wrapper/db.rb
30
49
  - lib/active_wrapper/log.rb
50
+ - lib/active_wrapper/mail.rb
31
51
  - lib/active_wrapper/tasks.rb
32
52
  - lib/active_wrapper.rb
33
53
  - MIT-LICENSE