the_merger 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.
data/README.org CHANGED
@@ -15,46 +15,48 @@ There is a demo app here: https://github.com/map7/mailout
15
15
 
16
16
  Add this line to your application's Gemfile:
17
17
 
18
- gem 'the_merger'
18
+ : gem 'the_merger'
19
19
 
20
20
  And then execute:
21
21
 
22
- $ bundle
22
+ : bundle
23
23
 
24
24
  Or install it yourself as:
25
25
 
26
- $ gem install the_merger
26
+ : gem install the_merger
27
27
 
28
28
  ** Configure
29
29
 
30
- When using TheMerger in a controller you have to add the following line to the top
30
+ When using TheMerger in a controller you have to add the following line to the top. EG: the default would be the users controller as you are doing the mail merge there.
31
31
 
32
- include TheMerger
32
+ : include TheMerger
33
33
 
34
34
  Create a yaml file in your config directory called 'the_merger.yml' with something like this
35
35
 
36
- ---
37
- merge_model: "Client"
36
+ : ---
37
+ : merge_model: "Client"
38
38
 
39
39
 
40
40
  To use the javascript included in this gem put the following in your application.js
41
41
 
42
- //= require the_merger/application
42
+ : //= require the_merger/application
43
43
 
44
44
 
45
45
  Where you need to insert fields (I usually create a 'letters' table) put the following in the form, just above the text_area.
46
46
 
47
- <%= field_selection %>
47
+ : <%= field_selection %>
48
+
49
+ Give the text_area you want to interact with the class 'mail_merge_body' so that the insert button knows where to insert the field selected.
48
50
 
49
51
 
50
52
  ** Usage
51
53
 
52
54
  Currently it's just one method and this is how you pass it information
53
55
 
54
- TheMerger.mail_merge(
55
- from: "from@example.com",
56
- subject: "update_listing",
57
- body: "Dear [firstname] [lastname], Please update your listing, from Mick")
56
+ : TheMerger.mail_merge(
57
+ : from: "from@example.com",
58
+ : subject: "update_listing",
59
+ : body: "Dear [firstname] [lastname], Please update your listing, from Mick")
58
60
 
59
61
 
60
62
  ** Contributing
@@ -66,13 +68,14 @@ Currently it's just one method and this is how you pass it information
66
68
  5. Create new Pull Request
67
69
 
68
70
  ** Tasks
69
- *** DONE Get all users from the users table
70
- *** DONE Mail merge and output to the screen
71
- *** DONE Make the table a variable
72
- *** DONE Create a method to get all fields from the selected table.
73
- *** DONE Create a helper method to have a dropdown of fields
74
- *** DONE Turn this into an engine so that I can include asset pipeline javascript.
75
- *** DONE Get the Email all button to work
76
-
77
- *** TODO Write tests
78
- *** TODO Schedule repetitive mail outs
71
+ - [X] Get all users from the users table
72
+ - [X] Mail merge and output to the screen
73
+ - [X] Make the table a variable
74
+ - [X] Create a method to get all fields from the selected table.
75
+ - [X] Create a helper method to have a dropdown of fields
76
+ - [X] Turn this into an engine so that I can include asset pipeline javascript.
77
+ - [X] Get the Email all button to work
78
+ - [ ] Write tests
79
+ - [ ] Schedule repetitive mail outs
80
+ - [ ] Make compatible with tinymce
81
+
@@ -1,3 +1,3 @@
1
1
  module TheMerger
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/the_merger.rb CHANGED
@@ -27,7 +27,7 @@ module TheMerger
27
27
  #
28
28
  def merge_fields(body,user)
29
29
  fields.each do |field|
30
- body = body.gsub!("[#{field}]", user.send(field)) || body
30
+ body = body.gsub!("[#{field}]", user.send(field).to_s) || body
31
31
  end
32
32
  body
33
33
  end
@@ -10,6 +10,7 @@ ActiveRecord::Schema.define do
10
10
  t.string "firstname"
11
11
  t.string "lastname"
12
12
  t.string "email"
13
+ t.integer "age"
13
14
  t.datetime "created_at", :null => false
14
15
  t.datetime "updated_at", :null => false
15
16
  end
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
  include TheMerger
3
3
 
4
4
  class User < ActiveRecord::Base
5
- attr_accessible :email, :firstname, :lastname
5
+ attr_accessible :email, :firstname, :lastname, :age
6
6
  end
7
7
 
8
8
  describe TheMerger do
9
9
 
10
10
  before do
11
- @user = User.create(firstname: "Michael", lastname: "Pope", email: "map7777@gmail.com")
11
+ @user = User.create(firstname: "Michael", lastname: "Pope", email: "map7777@gmail.com", age: 99)
12
12
  end
13
13
 
14
14
  describe "#merge_fields" do
@@ -18,6 +18,12 @@ describe TheMerger do
18
18
  end
19
19
  end
20
20
 
21
+ context "body includes a number" do
22
+ it "replaces [age] with 99" do
23
+ merge_fields("Are you over [age] years old?",@user).should eq("Are you over 99 years old?")
24
+ end
25
+ end
26
+
21
27
  context "body is set to Dear [firstname] [lastname], [address]" do
22
28
  it "replaces fields which exist in the model" do
23
29
  merge_fields("Dear [firstname] [lastname], [address]",@user).should eq("Dear Michael Pope, [address]")
@@ -27,7 +33,7 @@ describe TheMerger do
27
33
 
28
34
  describe "#fields" do
29
35
  it "returns fields for the model excluding created_at, updated_at & id" do
30
- fields.should eq(%w[firstname lastname email])
36
+ fields.should eq(%w[firstname lastname email age])
31
37
  end
32
38
  end
33
39
  end
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.0
4
+ version: 0.1.1
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: 2013-07-02 00:00:00.000000000 Z
12
+ date: 2013-07-04 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Mail merge a table of fields into a standard letter
15
15
  email:
@@ -53,7 +53,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
53
  version: '0'
54
54
  segments:
55
55
  - 0
56
- hash: 1235780733984697328
56
+ hash: -1055697086999734969
57
57
  required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  version: '0'
63
63
  segments:
64
64
  - 0
65
- hash: 1235780733984697328
65
+ hash: -1055697086999734969
66
66
  requirements: []
67
67
  rubyforge_project:
68
68
  rubygems_version: 1.8.23