| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package WWW::MobileCarrierJP::Softbank::Java; | 
| 2 | 1 |  |  | 1 |  | 327 | use WWW::MobileCarrierJP::Declare; | 
|  | 1 |  |  |  |  | 1 |  | 
|  | 1 |  |  |  |  | 6 |  | 
| 3 | 1 |  |  | 1 |  | 4 | use charnames ':full'; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 6 |  | 
| 4 |  |  |  |  |  |  |  | 
| 5 |  |  |  |  |  |  | parse_one( | 
| 6 |  |  |  |  |  |  | urls => ['http://creation.mb.softbank.jp/mc/terminal/terminal_info/terminal_sapp.html'], | 
| 7 |  |  |  |  |  |  | xpath => q(//div[@class='terminaltable']/table/tr[ not(@bgcolor="#cccccc") and count(child::td) != 1 and position() != 1]), | 
| 8 |  |  |  |  |  |  | scraper => scraper { | 
| 9 |  |  |  |  |  |  | my $limit; | 
| 10 |  |  |  |  |  |  | col 1 => 'model'        => 'TEXT'; | 
| 11 |  |  |  |  |  |  | col 2 => 'heap'         => [ | 
| 12 |  |  |  |  |  |  | 'TEXT', sub { | 
| 13 |  |  |  |  |  |  | /(\d+)(M|K)(\((\d+)(M|K)\))?/; +{ base => _exchange($1, $2), ex => _exchange($4, $5) }; | 
| 14 |  |  |  |  |  |  | }]; | 
| 15 |  |  |  |  |  |  | col 3 => 'cldc'         => [ | 
| 16 |  |  |  |  |  |  | 'TEXT', sub { s/\N{MULTIPLICATION SIGN}//; s/\s\z// } | 
| 17 |  |  |  |  |  |  | ]; | 
| 18 |  |  |  |  |  |  | col 4 => 'midp'         => [ | 
| 19 |  |  |  |  |  |  | 'TEXT', sub { s/\N{MULTIPLICATION SIGN}//; s/\s\z// } | 
| 20 |  |  |  |  |  |  | ]; | 
| 21 |  |  |  |  |  |  | col 5 => 'profile'      => [ 'TEXT', sub { s/\N{MULTIPLICATION SIGN}//; s/\s\z// } ]; | 
| 22 |  |  |  |  |  |  | col 6 => 'felica_api'   => [ 'TEXT', sub { s/\N{MULTIPLICATION SIGN}//; s/\s\z// } ]; | 
| 23 |  |  |  |  |  |  | col 7 => 'location_api' => [ | 
| 24 |  |  |  |  |  |  | 'TEXT', sub { | 
| 25 |  |  |  |  |  |  | s/\N{MULTIPLICATION SIGN}//; &_marubatsu; | 
| 26 |  |  |  |  |  |  | }]; | 
| 27 |  |  |  |  |  |  | col 9 => 'limit'        => [ | 
| 28 |  |  |  |  |  |  | 'TEXT', sub { | 
| 29 |  |  |  |  |  |  | s/\N{MULTIPLICATION SIGN}//; /(\d+)(M|K)/; _exchange($1, $2); | 
| 30 |  |  |  |  |  |  | }]; | 
| 31 |  |  |  |  |  |  | col 8 => 'size'         => [ | 
| 32 |  |  |  |  |  |  | 'TEXT', sub { | 
| 33 |  |  |  |  |  |  | /(\d+)(M|K)\/(\d+)(M|K)\/(\d+)(M|K)/; | 
| 34 |  |  |  |  |  |  | +{ jad => _exchange($1, $2), jar => _exchange($3, $4), rs => _exchange($5, $6) }; | 
| 35 |  |  |  |  |  |  | }]; | 
| 36 |  |  |  |  |  |  | }, | 
| 37 |  |  |  |  |  |  | ); | 
| 38 |  |  |  |  |  |  |  | 
| 39 | 0 | 0 |  | 0 |  |  | sub _marubatsu { $_ =~ /\N{WHITE CIRCLE}|\N{BULLSEYE}/ ? 1 : 0 } | 
| 40 |  |  |  |  |  |  |  | 
| 41 |  |  |  |  |  |  | sub _exchange { | 
| 42 | 0 |  |  | 0 |  |  | my ($heap, $sufix) = @_; | 
| 43 | 0 | 0 | 0 |  |  |  | return 0 if !$heap || !$sufix; | 
| 44 | 0 | 0 |  |  |  |  | return $heap * 1024 if $sufix eq 'K'; | 
| 45 | 0 | 0 |  |  |  |  | return $heap * 1024 * 1024 if $sufix eq 'M'; | 
| 46 | 0 |  |  |  |  |  | return 0; | 
| 47 |  |  |  |  |  |  | } | 
| 48 |  |  |  |  |  |  |  | 
| 49 |  |  |  |  |  |  | 1; | 
| 50 |  |  |  |  |  |  | __END__ |