mailhogwarts 1.0.0 → 1.1.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: 06d33f9b29f4f608d28c36cbe43ffc320cf429c8
4
- data.tar.gz: 0e95e0e7a17014f46bcdf12a70703cd7cbdb4d8a
3
+ metadata.gz: ae6eebfe87070b24ba8dfa21520bce8bc6f49585
4
+ data.tar.gz: 79ce5e9aebe0284617c314ff767a3087cec53a48
5
5
  SHA512:
6
- metadata.gz: b274fa42d80fff94f3d9d27be1ce133341825b98ba0906978bf321f299166f7a3b864ba51531b00cc834d10b1476c12ff9d917ec34f518d87c7182a167275198
7
- data.tar.gz: 39b807b9b5eacffe09a51be521d702a556ce18d6faa9e5c7b92ca836150b28694b0b67192d6400f032fa03bd40691d5274bd71d50830158916665edb7ecfd864
6
+ metadata.gz: e13a16784712ff3349008ef7929abcf9af45cdecdc9465303f499ddb7ecb318c0ab1d868d3b27c3d068c12a234186c38f9a1e77023ab0b0f5ea0a1a70cc5755a
7
+ data.tar.gz: 15c60bfc65ce9bf76940b6fce1fcb8f8804b86331f7b29abee54e72bcc6d66ac66466981506c73707b37a32bb27868de36facbb8cee50fcd806c2da798fa425f
data/MailHogwarts.gemspec CHANGED
@@ -20,5 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency 'rake', '~> 10.0'
21
21
  spec.add_development_dependency 'rspec', '~> 3.0'
22
22
 
23
+ spec.add_runtime_dependency 'nokogiri', '~> 1.8'
24
+
23
25
  spec.add_dependency 'rest-client', '~> 2.0'
24
26
  end
data/lib/mail_hogwarts.rb CHANGED
@@ -2,11 +2,12 @@ require 'rest-client'
2
2
  require 'json'
3
3
  require 'base64'
4
4
  require 'yaml'
5
+ require 'nokogiri'
5
6
 
6
7
  require_relative 'mailhogwarts/version'
7
8
  require_relative 'mailhogwarts/mailer'
8
9
  require_relative 'mailhogwarts/messages'
9
- require_relative 'mailhogwarts/message'
10
+ require_relative 'mailhogwarts/message/message'
10
11
  require_relative 'mailhogwarts/search'
11
12
 
12
13
  module MailHogwarts
@@ -0,0 +1,34 @@
1
+ module MailHogwarts
2
+ class Message
3
+ class Body
4
+ attr_accessor :body
5
+
6
+ def initialize(string)
7
+ @body = String.new(string)
8
+ end
9
+
10
+ def to_html
11
+ Nokogiri::HTML(@body)
12
+ end
13
+
14
+ def links(expression = '')
15
+ urls = to_html.css('a').map do |link|
16
+ {
17
+ href: link['href'],
18
+ text: link.text,
19
+ html: link.to_html
20
+ }
21
+ end
22
+
23
+ if expression.is_a? Regexp
24
+ urls.reject do |link|
25
+ string = link[:href][expression]
26
+ string.nil? || string.empty?
27
+ end
28
+ elsif expression.is_a? String
29
+ urls.select { |link| link[:href].include? expression }
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,5 @@
1
+ require_relative 'body'
2
+
1
3
  module MailHogwarts
2
4
  class Message
3
5
  include Comparable
@@ -5,6 +7,7 @@ module MailHogwarts
5
7
 
6
8
  def initialize(fields)
7
9
  @message = fields
10
+ @message[:body] = Body.new(@message[:body])
8
11
 
9
12
  @message.keys.each do |key|
10
13
  define_singleton_method(key.to_s) do
@@ -17,7 +20,7 @@ module MailHogwarts
17
20
  @message.keys
18
21
  end
19
22
 
20
- alias_method :fields, :keys
23
+ alias fields keys
21
24
 
22
25
  def <=>(other)
23
26
  created_at.to_i <=> other.created_at.to_i
@@ -1,3 +1,3 @@
1
1
  module MailHogwarts
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailhogwarts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Furtikov Kirill
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.8'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.8'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rest-client
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +101,8 @@ files:
87
101
  - lib/mail_hogwarts.rb
88
102
  - lib/mailhogwarts.rb
89
103
  - lib/mailhogwarts/mailer.rb
90
- - lib/mailhogwarts/message.rb
104
+ - lib/mailhogwarts/message/body.rb
105
+ - lib/mailhogwarts/message/message.rb
91
106
  - lib/mailhogwarts/messages.rb
92
107
  - lib/mailhogwarts/search.rb
93
108
  - lib/mailhogwarts/version.rb