locale_mailer 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84976aa5d9e1e0a87851e1fa39fc4468e39ec92d
4
- data.tar.gz: 77e1d7298c24e1dd3af103e5c328d07500a10ee5
3
+ metadata.gz: 7f44940e1c529b5301a5605a53e337a145f852c8
4
+ data.tar.gz: 1db46eba11085f0136ce2fff23ea80fb9e78067f
5
5
  SHA512:
6
- metadata.gz: d4f529b8cf0d3b852d2111797237cff27e83f1901cb2f081c3ad8291ce994420ef8eeddebdac39112c49325a33243cb057d5c1988a9bf43e20a0a292a511ee97
7
- data.tar.gz: 0e11a064d9cfd5f766a45f2be01f971eb124cf91cd0ef82a093e163c12eacf82928888b8d30061db1c0ff6b93f596016c8a4c2fe526ef0ad2a618fc201fac244
6
+ metadata.gz: 9b3a6fea5583cd4d180830955c40420b4fd6bf63a2ab0943fa5c95bc163e388ca8faabea3398dc70434046d5f7dedbded1d5e9e77bf2f0b30d6f4cf599bd7714
7
+ data.tar.gz: 9cda38e16adb62ebd9d5508f12f7f1f8671d632099795e0df8e8f0a4e4250896f55748d606c3bec1d40411d03b3cfad4d7caaf446a1766ae98c169fe9882f3c8
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # LocaleMailer
2
2
 
3
+ [![Build Status](https://travis-ci.org/itkin/locale_mailer.svg)](https://travis-ci.org/itkin/locale_mailer)
4
+
3
5
  Handling action mailer view templates can become a bit heavy when your app has to send a lot of different emails
4
6
 
5
7
  This gem aims at generating email view templates straight from your localization files when no template view is found
@@ -60,13 +62,13 @@ MyMailer.notify.text_part.decoded
60
62
  ```
61
63
 
62
64
  1 - If no template view is found by ActionMailer::Base, LocaleMailer will check if there is some locales specified at
63
- `mailer_name`.`action_name` per default (or whatever template_path / template_name you passed to the `mail` method)
65
+ `mailer_name`.`action_name` per default (or whatever :template_path / :template_name options you passed to the `mail` method)
64
66
 
65
- 2 - Your instance variables (usually available to views) will be passed to `I18n.translate`.
67
+ 2 - Your instance variables (usually available to views) will be passed to `I18n.translate` for locale interpolation.
66
68
 
67
69
  3 - If your locale returns an array it will be converted in `<p>` tags into the html_part
68
70
 
69
- 4 - Link tags present into the locale data will be converted to `text_content href_content`, other tags will be stripped
71
+ 4 - Link tags present into the locale data will be converted to `text_content href_content` into the text view part of the email, other tags will be stripped
70
72
 
71
73
 
72
74
  ## Contributing
@@ -32,7 +32,7 @@ module LocaleMailer
32
32
 
33
33
  i18n_path = [
34
34
  Rails.configuration.locale_mailer_path_prefix,
35
- options[:template_path] || mailer_name,
35
+ options[:template_path] || mailer_name.gsub('/','.').underscore,
36
36
  options[:template_name] || action_name
37
37
  ].compact.join('.')
38
38
 
@@ -58,11 +58,31 @@ module LocaleMailer
58
58
 
59
59
  def instance_public_variables_to_hash
60
60
  instance_variables.inject({}) do |memo, name|
61
- memo[name.to_s.gsub(/\A@/,'').to_sym] = instance_variable_get(name) if name.to_s.match(/\A@(?!_).*/)
61
+ if name.to_s.match(/\A@(?!_).*/)
62
+ if instance_variable_get(name).try(:as_json).is_a? Hash
63
+ flatten_hash(instance_variable_get(name).as_json).inject(memo) do |memo, array|
64
+ memo["#{name.to_s.gsub(/\A@/,'')}_#{array[0]}".to_sym] = array[1]
65
+ end
66
+ else
67
+ memo[name.to_s.gsub(/\A@/,'').to_sym] = instance_variable_get(name)
68
+ end
69
+ end
62
70
  memo
63
71
  end
64
72
  end
65
73
 
74
+ def flatten_hash(hash)
75
+ hash.each_with_object({}) do |(k, v), h|
76
+ if v.is_a? Hash
77
+ flatten_hash(v).map do |h_k, h_v|
78
+ h["#{k}_#{h_k}".to_sym] = h_v
79
+ end
80
+ else
81
+ h[k] = v
82
+ end
83
+ end
84
+ end
85
+
66
86
  def subject_from_locale i18n_path, locale_options
67
87
  view_context.t([i18n_path, :subject].join('.'), locale_options)
68
88
  end
@@ -1,3 +1,3 @@
1
1
  module LocaleMailer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locale_mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - itkin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-26 00:00:00.000000000 Z
11
+ date: 2016-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: loofah
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: combustion
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.10'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.10'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '10.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '10.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  description:
@@ -129,9 +129,9 @@ executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
- - ".gitignore"
133
- - ".rspec"
134
- - ".travis.yml"
132
+ - .gitignore
133
+ - .rspec
134
+ - .travis.yml
135
135
  - CODE_OF_CONDUCT.md
136
136
  - Gemfile
137
137
  - LICENSE.txt
@@ -155,17 +155,17 @@ require_paths:
155
155
  - lib
156
156
  required_ruby_version: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - ">="
158
+ - - '>='
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - ">="
163
+ - - '>='
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
167
  rubyforge_project:
168
- rubygems_version: 2.4.5.1
168
+ rubygems_version: 2.2.2
169
169
  signing_key:
170
170
  specification_version: 4
171
171
  summary: Ruby on Rails gem to allow email template views generation straight from