the_merger 0.1.2 → 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/Gemfile CHANGED
@@ -5,7 +5,7 @@ group :test do
5
5
  gem 'actionmailer'
6
6
  gem 'actionpack' # action_controller, action_view
7
7
  gem 'sqlite3'
8
- gem 'debugger'
8
+ # gem 'debugger'
9
9
  gem 'sprockets'
10
10
  gem 'rspec-rails'
11
11
  gem 'combustion', '~> 0.5.0'
data/README.org CHANGED
@@ -53,11 +53,37 @@ Give the text_area you want to interact with the class 'mail_merge_body' so that
53
53
 
54
54
  Currently it's just one method and this is how you pass it information
55
55
 
56
+ *** Email all
57
+ To send a mail merge to all elements within your 'merge_model'. EG: all clients
58
+
59
+ : TheMerger.mail_merge(
60
+ : from: "from@example.com",
61
+ : subject: "update_listing",
62
+ : body: "Dear [firstname] [lastname], Please update your listing, from Mick")
63
+
64
+ *** Email subset
65
+ To send a mail merge to all elements within your 'merge_model'. EG: all clients
66
+
56
67
  : TheMerger.mail_merge(
57
68
  : from: "from@example.com",
58
69
  : subject: "update_listing",
59
70
  : body: "Dear [firstname] [lastname], Please update your listing, from Mick")
71
+ : group: Client.where(suburb: "Fitzroy")
72
+
73
+ *** Email single
74
+ To send a mail merge to all elements within your 'merge_model'. EG: all clients
75
+
76
+ : TheMerger.mail_merge(
77
+ : from: "from@example.com",
78
+ : subject: "update_listing",
79
+ : body: "Dear [firstname] [lastname], Please update your listing, from Mick")
80
+ : single: Client.find(params[:id])
81
+
82
+ ** Emails can be written using markdown
83
+
84
+ Markdown reference: http://daringfireball.net/projects/markdown/
60
85
 
86
+ This will create a HTML email.
61
87
 
62
88
  ** Contributing
63
89
 
@@ -76,7 +102,7 @@ Currently it's just one method and this is how you pass it information
76
102
  - [X] Turn this into an engine so that I can include asset pipeline javascript.
77
103
  - [X] Get the Email all button to work
78
104
  - [X] Write tests
79
- - [ ] Allow filtering or passing a subset of users to send email to.
105
+ - [X] Allow filtering or passing a subset of users to send email to.
80
106
  - [ ] Schedule repetitive mail outs
81
107
  - [ ] Make compatible with tinymce
82
108
 
@@ -1,9 +1,14 @@
1
1
  class TheMerger::Mailer < ActionMailer::Base
2
-
2
+ require 'redcarpet' # Markdown to HTML
3
+
3
4
  def batch_mail(from,subject,body,person)
5
+ markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
6
+
4
7
  mail(from: from,
5
8
  to: person.email,
6
- subject: subject,
7
- body: body)
9
+ subject: subject) do |format|
10
+ format.text {body}
11
+ format.html {markdown.render(body).html_safe}
12
+ end
8
13
  end
9
14
  end
@@ -1,3 +1,3 @@
1
1
  module TheMerger
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
data/the_merger.gemspec CHANGED
@@ -12,8 +12,9 @@ Gem::Specification.new do |gem|
12
12
  gem.summary = %q{Mail Merge}
13
13
  gem.homepage = "https://github.com/map7/the_merger"
14
14
 
15
- # gem.add_development_dependency "mail"
16
-
15
+ gem.add_dependency "mail"
16
+ gem.add_dependency "redcarpet"
17
+
17
18
  gem.files = `git ls-files`.split($/)
18
19
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
19
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_merger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,40 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-09 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2013-08-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mail
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: redcarpet
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
14
46
  description: Mail merge a table of fields into a standard letter
15
47
  email:
16
48
  - map7777@gmail.com
@@ -53,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
85
  version: '0'
54
86
  segments:
55
87
  - 0
56
- hash: -155754027735557007
88
+ hash: 2741644887704114784
57
89
  required_rubygems_version: !ruby/object:Gem::Requirement
58
90
  none: false
59
91
  requirements:
@@ -62,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
94
  version: '0'
63
95
  segments:
64
96
  - 0
65
- hash: -155754027735557007
97
+ hash: 2741644887704114784
66
98
  requirements: []
67
99
  rubyforge_project:
68
100
  rubygems_version: 1.8.23