actionmailer-markdown 0.3.0 → 0.4.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
- SHA1:
3
- metadata.gz: bceab9613ce531fdbe9702d005d92c6912c73a4f
4
- data.tar.gz: 11d4c007f396d05099801df95ba96dcb960c9ad1
2
+ SHA256:
3
+ metadata.gz: c68de9ba116911f74c5aee2f479471ff7a2082fd66feaf8db9feaf732be4534f
4
+ data.tar.gz: 8b316a5c36591e2c581ddd5fc7b67b7287bdecd9fea18b13e5c9e8a6f1b3b2e7
5
5
  SHA512:
6
- metadata.gz: ca9ce1c031eca37131bf9a6fc941f931563acc03cf189ce5a5fce40cf06048c26ed6f3b673cd5a4d17ce4c48126efb6a509236effb5e32c85acd4bdebab35592
7
- data.tar.gz: 1b897a6b32ea047278e43f709fde5de33a61a29a59a0086c2285112feb2616388b6bd0ba6ce05c848a4f81802c0718d500fca534fa0cd38d362799ea1f5ee08f
6
+ metadata.gz: cdfcf4ca2c72ef441abcfc756c9d766fb0701e19549a80a2c73eea0ff236c2fd9d442251677e79c87c9b2f22772be50ff47b7ece15bc8373852a9f4126d38c57
7
+ data.tar.gz: 3424e09e9965403fd50a9d9c81155841687e37f7376835706220e78aa07aafcf9233d6650c6a9f7f0a885a079264dde5a1b4a3d030d817122e16b28b054f5e07
@@ -0,0 +1,93 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.4
3
+ TargetRailsVersion: 5.2
4
+
5
+ Exclude:
6
+ - db/schema.rb
7
+ - db/seeds.rb
8
+ - config/environments/**/*.rb
9
+ - bin/**/*
10
+ - vendor/**/*
11
+
12
+ Style/Documentation:
13
+ Enabled: false
14
+
15
+ Style/StringLiterals:
16
+ EnforcedStyle: double_quotes
17
+
18
+ Layout/SpaceInsideBlockBraces:
19
+ EnforcedStyle: space
20
+ EnforcedStyleForEmptyBraces: space
21
+ SpaceBeforeBlockParameters: false
22
+
23
+ Layout/SpaceInsideHashLiteralBraces:
24
+ EnforcedStyle: no_space
25
+ EnforcedStyleForEmptyBraces: no_space
26
+
27
+ Layout/FirstArrayElementLineBreak:
28
+ Enabled: true
29
+
30
+ Layout/FirstHashElementLineBreak:
31
+ Enabled: true
32
+
33
+ Style/PercentLiteralDelimiters:
34
+ PreferredDelimiters:
35
+ '%': '[]'
36
+ '%i': '[]'
37
+ '%q': '[]'
38
+ '%Q': '[]'
39
+ '%r': '{}'
40
+ '%s': '[]'
41
+ '%w': '[]'
42
+ '%W': '[]'
43
+ '%x': '[]'
44
+
45
+ Metrics/LineLength:
46
+ Enabled: false
47
+
48
+ Metrics/MethodLength:
49
+ Enabled: false
50
+
51
+ Style/EmptyMethod:
52
+ EnforcedStyle: expanded
53
+
54
+ Layout/IndentArray:
55
+ EnforcedStyle: consistent
56
+
57
+ Style/AccessModifierDeclarations:
58
+ EnforcedStyle: inline
59
+
60
+ Naming/UncommunicativeMethodParamName:
61
+ Enabled: false
62
+
63
+ Style/Alias:
64
+ EnforcedStyle: prefer_alias_method
65
+
66
+ Metrics/CyclomaticComplexity:
67
+ Enabled: false
68
+
69
+ Metrics/AbcSize:
70
+ Enabled: false
71
+
72
+ Metrics/PerceivedComplexity:
73
+ Enabled: false
74
+
75
+ Style/AsciiComments:
76
+ Enabled: false
77
+
78
+ Style/HashSyntax:
79
+ Exclude:
80
+ - Rakefile
81
+ - "**/*.rake"
82
+
83
+ Style/SymbolArray:
84
+ Exclude:
85
+ - Rakefile
86
+ - "**/*.rake"
87
+
88
+ Naming/FileName:
89
+ Exclude:
90
+ - lib/actionmailer-markdown.rb
91
+
92
+ Lint/AmbiguousRegexpLiteral:
93
+ Enabled: false
@@ -2,10 +2,18 @@ language: ruby
2
2
  cache: bundler
3
3
  sudo: false
4
4
  rvm:
5
- - 2.3.1
6
- before_install: gem install bundler
5
+ - 2.6.1
6
+ - 2.5.3
7
+ - 2.4.1
8
+ script: bundle exec rake
9
+ before_script:
10
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
11
+ - chmod +x ./cc-test-reporter
12
+ - "./cc-test-reporter before-build"
13
+ after_script:
14
+ - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
7
15
  notifications:
8
16
  email: false
9
17
  env:
10
18
  global:
11
- secure: I9mcU1pn5N3LNhYv2AlaYm9myrnJ09XyCP3UC6JoWwI85xObKNShMcO0ADKEDU1T0QhrMVgX7Vrp/5mCgEkSYhDFy0NG62xZZKPC3CHPizqN56v0vX+7/tecAcSQ0Fz+ZrVZ1qiGrPesA9ssYWMROE0/DYWJRl0axxbstP6YBBN8TDdF2RAIYcLIb0NJc7ZlrJYoKPWSgEsio476/gschDxV5tK/AA0uvUJjejQFDWxhm87DRcfbwW+sb/URvCkUN4+dT5lKKFZ/UfOGVWmkyFOjleluSe0vyaR4/W3THB4djGpE5e3feGb8bTPbkyqBmpy6Js0+DihCaK58e3DbhT2vk0gSOVi/xMr6Rx7FOZrRQMnH8QkEnoxS4BH3ySAN08cQcict3LIN5GGW340QebDS5u7KwwyJ9BNyqocC1Ob1LZJFDHMfj3S96TLQ2W08vNkcOY5dBvUw9JzJvl6neRjIJila62Gt+Gezij9KnXrr1lBx7R8frR/LwL/32ET4E4lTXVp1soapqSHs9TF72EXOywIrsnJZDRFEngbxKdxuNB0diVWhuTipmVkSdExleXfsfGTGfS4iHYJEGOOWxGSEdiPWc5tNWxsAmA1lyM2jpJl7/XWzaRU5eZl9psYvGCL+nKW6gZrqbFl95D/txD5pAAHRg+Rpl1LE8VDIs3w=
19
+ secure: pSJLckgoZMZ67Le7TgjbX1ptaeRtPW+IhORZvxoiAR1nVmLCFHOq1ZHSJiw3J0t1A2GMdsTbXH/JDBcrbUzuKgJ3+XIyoAuUa1Hz1UjDkXh4RjwZrG/71hU3x0fVU1JXWDjFkGlqYJqwBYXkX1RK8K30NMnRGi7cr9wOLi0OI7fQ4ImrjIrh7m2hx1mZ97jeZt2HewomPO5OVK4hEDCxKFEzcThE8qOjr1eJRM9yYkwUGvO4Lw7louT95RKbJgjmndKEzbgJ4ggt2wGMvMarOqkM3QNCenp7JaaeaeQNt/szGNYH7bwjDEBNi8bSIIx+jFFpaCoIr/lp12XLDYPgw9dzSeQKLWwXHRDl6GmLNYldXaFfF4OnCaOq68L+0PNz0vD808W3SoTosE7jb5cS3ufRJUMujLRI1Kk2EuG2V0wFpmtCXtBV/LVkhUSqotvjI+ymO1zqyGcPbxVGO6WpIxMhiFC7+ZGsdOm0aliAMd6dAZ/6UPWGTSdMR6MECaCDtqBFv8JCnybWr5xxG3gnR9vqanA3sgrGjWxEIJrtF59vcPgrI6SUM7d4a7FBWHMU0AZSRvVX2umiTZVy/DOJEL/j0COunbcogCbTuAN1/gSNWTUTmF6kIV4BYUYEYx4HnpegIKcYKHKv74nbV4bhaSNuj+M/xOVPb2+Ms5kuG8E=
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  # Specify your gem's dependencies in actionmailer-markdown.gemspec
data/Rakefile CHANGED
@@ -1,5 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/setup"
1
4
  require "bundler/gem_tasks"
2
5
  require "rake/testtask"
6
+ require "rubocop/rake_task"
7
+
8
+ RuboCop::RakeTask.new(:rubocop) do |t|
9
+ t.options << "--config"
10
+ t.options << File.expand_path(".rubocop.yml", __dir__)
11
+ end
3
12
 
4
13
  Rake::TestTask.new(:test) do |t|
5
14
  t.libs << "test"
@@ -8,4 +17,4 @@ Rake::TestTask.new(:test) do |t|
8
17
  t.warning = false
9
18
  end
10
19
 
11
- task default: :test
20
+ task :default => [:test, :rubocop]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "./lib/action_mailer/markdown/version"
2
4
 
3
5
  Gem::Specification.new do |spec|
@@ -18,11 +20,13 @@ Gem::Specification.new do |spec|
18
20
  spec.add_dependency "redcarpet"
19
21
 
20
22
  spec.add_development_dependency "bundler"
21
- spec.add_development_dependency "rake"
22
- spec.add_development_dependency "rails"
23
+ spec.add_development_dependency "kramdown"
23
24
  spec.add_development_dependency "minitest"
24
25
  spec.add_development_dependency "minitest-utils"
25
26
  spec.add_development_dependency "pry-meta"
26
- spec.add_development_dependency "kramdown"
27
- spec.add_development_dependency "codeclimate-test-reporter"
27
+ spec.add_development_dependency "rails"
28
+ spec.add_development_dependency "rake"
29
+ spec.add_development_dependency "rubocop"
30
+ spec.add_development_dependency "simplecov"
31
+ spec.add_development_dependency "simplecov-console"
28
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
5
  require "action_mailer"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ActionMailer::Base.class_eval do
2
4
  mail_method = instance_method(:mail)
3
5
 
@@ -17,7 +19,8 @@ ActionMailer::Base.class_eval do
17
19
 
18
20
  def variables_set_by_user
19
21
  instance_variables.each_with_object({}) do |name, buffer|
20
- next if name.match(/^@_/)
22
+ next if name =~ /^@_/
23
+
21
24
  name = name.to_s[/^@(.*?)$/, 1]
22
25
  buffer[name.to_sym] = instance_variable_get("@#{name}")
23
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
5
  class Renderer < Redcarpet::Render::HTML
@@ -11,7 +13,8 @@ module ActionMailer
11
13
 
12
14
  renderer = Renderer.new(hard_wrap: true, safe_links_only: true)
13
15
 
14
- markdown_engine = Redcarpet::Markdown.new(renderer, {
16
+ markdown_engine = Redcarpet::Markdown.new(
17
+ renderer,
15
18
  tables: true,
16
19
  footnotes: true,
17
20
  space_after_headers: true,
@@ -20,9 +23,9 @@ module ActionMailer
20
23
  strikethrough: true,
21
24
  autolink: true,
22
25
  no_intra_emphasis: true
23
- })
26
+ )
24
27
 
25
- self.default_processor = -> text { markdown_engine.render(text) }
28
+ self.default_processor = ->(text) { markdown_engine.render(text) }
26
29
  self.processor = default_processor
27
30
 
28
31
  def self.html(text)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
5
  class Renderer
@@ -27,6 +29,7 @@ module ActionMailer
27
29
  def process_code
28
30
  root.css("code").each do |code|
29
31
  next if code.parent.name == "pre"
32
+
30
33
  code.content = "`#{code.content}`"
31
34
  end
32
35
  end
@@ -43,7 +46,7 @@ module ActionMailer
43
46
 
44
47
  def process_h2
45
48
  root.css("h2").each do |heading|
46
- heading.content = "\n#{build_heading(heading.text, "-")}"
49
+ heading.content = "\n#{build_heading(heading.text, '-')}"
47
50
  end
48
51
  end
49
52
 
@@ -64,7 +67,7 @@ module ActionMailer
64
67
 
65
68
  if href.starts_with?("mailto:")
66
69
  link.content = href.sub("mailto:", "")
67
- elsif link.content.match(%r[^(?!\w+://)])
70
+ elsif link.content.match?(%r{^(?!\w+://)})
68
71
  links << href unless links.include?(href)
69
72
  index = links.index(href) + 1
70
73
  link.content = "#{link.content}[#{index}]"
@@ -77,9 +80,7 @@ module ActionMailer
77
80
  root << node
78
81
  end
79
82
 
80
- private
81
-
82
- def build_heading(text, separator)
83
+ private def build_heading(text, separator)
83
84
  "#{text}\n#{separator * text.size}"
84
85
  end
85
86
  end
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
5
  class Resolver < ActionView::Resolver
4
6
  FORMAT_TO_EXTENSION = {
5
7
  text: :mdt,
6
8
  html: :md
7
- }
9
+ }.freeze
8
10
 
9
- def find_templates(name, prefix, _partial, details, outside_app_allowed = false)
11
+ def find_templates(name, prefix, _partial, details, _outside_app_allowed = false)
10
12
  contents = find_contents(name, prefix, details)
11
13
  return [] unless contents
12
14
 
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
5
  module TemplateHandler
4
- UNDERSCORE = "_".freeze
5
- OBJECT_ATTRIBUTE_MATCHER = /%\{([a-z0-9_]+\.[a-z0-9_]+)\}/i
6
+ UNDERSCORE = "_"
7
+ OBJECT_ATTRIBUTE_MATCHER = /%\{([a-z0-9_]+\.[a-z0-9_]+)\}/i.freeze
6
8
 
7
9
  def self.render(template, context, format)
8
10
  variables = expand_variables(template, extract_variables(context))
@@ -11,7 +13,8 @@ module ActionMailer
11
13
  end
12
14
 
13
15
  def self.expand_variables(template, variables)
14
- template.scan(OBJECT_ATTRIBUTE_MATCHER)
16
+ template
17
+ .scan(OBJECT_ATTRIBUTE_MATCHER)
15
18
  .map(&:first)
16
19
  .each_with_object(variables) do |match, buffer|
17
20
  target, attribute = match.split(".")
@@ -24,12 +27,13 @@ module ActionMailer
24
27
  .instance_variable_get(:@_assigns)
25
28
  .each_with_object({}) do |(name, value), buffer|
26
29
  next if name.start_with?(UNDERSCORE)
30
+
27
31
  buffer[name.to_sym] = value
28
32
  end
29
33
  end
30
34
 
31
35
  class Text
32
- def self.call(template)
36
+ def self.call(template, _source = nil)
33
37
  %[
34
38
  ActionMailer::Markdown::TemplateHandler
35
39
  .render(#{template.source.inspect}, self, :text)
@@ -38,7 +42,7 @@ module ActionMailer
38
42
  end
39
43
 
40
44
  class HTML
41
- def self.call(template)
45
+ def self.call(template, _source = nil)
42
46
  %[
43
47
  ActionMailer::Markdown::TemplateHandler
44
48
  .render(#{template.source.inspect}, self, :html)
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActionMailer
2
4
  module Markdown
3
- VERSION = "0.3.0"
5
+ VERSION = "0.4.0"
4
6
  end
5
7
  end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "action_mailer/markdown"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmailer-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-28 00:00:00.000000000 Z
11
+ date: 2019-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: kramdown
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rails
70
+ name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest
84
+ name: minitest-utils
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: minitest-utils
98
+ name: pry-meta
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: pry-meta
112
+ name: rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,35 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: kramdown
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="
@@ -137,7 +165,7 @@ dependencies:
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
- name: codeclimate-test-reporter
168
+ name: simplecov-console
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
171
  - - ">="
@@ -158,6 +186,7 @@ extensions: []
158
186
  extra_rdoc_files: []
159
187
  files:
160
188
  - ".gitignore"
189
+ - ".rubocop.yml"
161
190
  - ".travis.yml"
162
191
  - CODE_OF_CONDUCT.md
163
192
  - Gemfile
@@ -194,8 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
223
  - !ruby/object:Gem::Version
195
224
  version: '0'
196
225
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.5.1
226
+ rubygems_version: 3.0.1
199
227
  signing_key:
200
228
  specification_version: 4
201
229
  summary: A different take on using ActionMailer, Markdown and I18n.