locale_mailer 0.1.0 → 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.
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