Class: Jpmobile::Email

Inherits:
Object
  • Object
show all
Defined in:
lib/jpmobile/email.rb

Overview

email関連の処理

Constant Summary collapse

@@japanese_mail_address_regexp =
nil
@@converting_content_type =
['text/plain', 'text/html']

Class Method Summary collapse

Class Method Details

.convertable?(content_type) ⇒ Boolean

Returns:

  • (Boolean)

48
49
50
51
52
53
54
55
56
# File 'lib/jpmobile/email.rb', line 48

def convertable?(content_type)
  if @@converting_content_type.respond_to?(:each)
    @@converting_content_type.each do |c|
      return true if content_type.match(c)
    end
  end

  nil
end

.detect(email) ⇒ Object

メールアドレスよりキャリア情報を取得する

param1

email メールアドレス

return

Jpmobile::Mobileで定義されている携帯キャリアクラス


14
15
16
17
18
19
20
# File 'lib/jpmobile/email.rb', line 14

def detect(email)
  Mobile.carriers.each do |const|
    c = Mobile.const_get(const)
    return c if c::MAIL_ADDRESS_REGEXP && email.match(/^#{c::MAIL_ADDRESS_REGEXP}$/)
  end
  nil
end

.detect_from_mail_header(header) ⇒ Object

含まれているメールアドレスからキャリア情報を取得する


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/jpmobile/email.rb', line 23

def detect_from_mail_header(header)
  Mobile.carriers.each do |const|
    c = Mobile.const_get(const)
    if c::MAIL_ADDRESS_REGEXP &&
        header.match(/(\[email protected][A-Za-z0-9\-\.\_]+)/) &&
        $1.match(/^#{c::MAIL_ADDRESS_REGEXP}$/)
      return c
    end
  end

  if japanese_mail?(header)
    return Jpmobile::Mobile::AbstractMobile
  end

  nil
end

.japanese_mail?(header) ⇒ Boolean

Returns:

  • (Boolean)

44
45
46
# File 'lib/jpmobile/email.rb', line 44

def japanese_mail?(header)
  @@japanese_mail_address_regexp and header.match(@@japanese_mail_address_regexp)
end

.japanese_mail_address_regexp=(regexp) ⇒ Object


40
41
42
# File 'lib/jpmobile/email.rb', line 40

def japanese_mail_address_regexp=(regexp)
  @@japanese_mail_address_regexp = regexp
end