mailhogwarts 1.0.0 → 1.1.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: 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