Class: Jpmobile::Mobile::Terminfo

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

Defined Under Namespace

Modules: Docomo

Instance Method Summary collapse

Constructor Details

#initialize(carrier, env) ⇒ Terminfo

Returns a new instance of Terminfo.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jpmobile/mobile/terminfo.rb', line 7

def initialize(carrier, env)
  case carrier.class.name
  when /Docomo/
    display_info    = Docomo::DISPLAY_INFO[carrier.model_name] || {}
    @browser_width  = display_info[:browser_width]
    @browser_height = display_info[:browser_height]
    @color_p        = display_info[:color_p]
    @colors         = display_info[:colors]
  when /Au/
    if r = env['HTTP_X_UP_DEVCAP_SCREENPIXELS']
      @physical_width, @physical_height = r.split(/,/,2).map {|x| x.to_i}
    end
    if r = env['HTTP_X_UP_DEVCAP_ISCOLOR']
      @color_p = (r == '1')
    end
    if r = env['HTTP_X_UP_DEVCAP_SCREENDEPTH']
      a = r.split(/,/)
      @colors = 2 ** a[0].to_i
    end
  when /Softbank/, /Vodafone/
    if r = env['HTTP_X_JPHONE_DISPLAY']
      @physical_width, @physical_height = r.split(/\*/,2).map {|x| x.to_i}
    end
    if r = env['HTTP_X_JPHONE_COLOR']
      case r
      when /^C/
        @color_p = true
      when /^G/
        @color_p = false
      end
      if r =~ /^.(\d+)$/
        @colors = $1.to_i
      end
    end
  end
end

Instance Method Details

#browser_heightObject

ブラウザの画面高さを返す。不明の場合は nil



55
# File 'lib/jpmobile/mobile/terminfo.rb', line 55

def browser_height; @browser_height; end

#browser_widthObject

ブラウザの画面幅を返す。不明の場合は nil



53
# File 'lib/jpmobile/mobile/terminfo.rb', line 53

def browser_width; @browser_width; end

#color?Boolean

画面がカラーならば true、白黒ならば false を返す。不明の場合は nil

Returns:

  • (Boolean)


45
# File 'lib/jpmobile/mobile/terminfo.rb', line 45

def color?; @color_p; end

#colorsObject

画面の色数を返す。不明の場合は nil



47
# File 'lib/jpmobile/mobile/terminfo.rb', line 47

def colors; @colors; end

#heightObject

画面の高さを返す。ブラウザ画面の高さがわかる場合はそれを優先する。不明の場合は nil



59
# File 'lib/jpmobile/mobile/terminfo.rb', line 59

def height; browser_height || physical_height; end

#physical_heightObject

ディスプレイの画面高さを返す。不明の場合は nil



51
# File 'lib/jpmobile/mobile/terminfo.rb', line 51

def physical_height; @physical_height; end

#physical_widthObject

ディスプレイの画面幅を返す。不明の場合は nil



49
# File 'lib/jpmobile/mobile/terminfo.rb', line 49

def physical_width; @physical_width; end

#widthObject

画面の幅を返す。ブラウザ画面の幅がわかる場合はそれを優先する。不明の場合は nil



57
# File 'lib/jpmobile/mobile/terminfo.rb', line 57

def width; browser_width || physical_width; end