アットウィキロゴ

電子書籍

電子書籍をRubyでクラス化してみる


 class DigitalBook
   
   def initialize
     @current_page_number, @maximum_page_number = current_page_number, maximum_page_number
   end
   class Preferences
     DefaultFontColorIndex, DefaultBackColorIndex = 0, 1
     FontColorPallet = []
     BackColorPallet = []
     def initialize()
       @font_color_index, @back_color_index = font_color_index, back_color_index
       
     end
     def font_color; FontColorPallet[@font_color_index] end
     def back_color; BackColorPallet[@back_color_index] end
   end
   
   
   
   
   
   
   
 end


 d = DigitalBook.new
 d.max_page_number = 500
 d.current_page_number = 1
 d.font_color_index = 0
 d.back_color_index = 1


ページの描画に必要なデータ

現在のページ番号 current_page_number ページ左上のページ番号を描画
現在のページ番号に対応するセクション名 section_name ページ右上のセクション名を描画
表示する文字 line = lines[current_line_number]
 表示するグリフ glyphs = get_glyphs(text[line])
 表示するルビ ruby_string = rubys[char_index]
挿絵 Illustration(Illustrations) illustration_or_nil = illustrations[pagenumber]
 開始行番号と終了行番号 line_number_range(start_at..ended_at)
line_number_start_at
line_number_ended_at = line_start_at + lines_per_page
 開始文字数と終了文字数 char_index_range(start_at, ended_at)
start_at
ended_at

付随データ

一行に表示可能な最大行数 MaxNumberOfLinesPerPage

データの取得方法に関して

取得データ 具体的方法 問題点
現在のページ数から行の範囲を取得 current_page_number
line_number_range_in_this_page.start_at = MaxNumberOfLinesPerPage*current_page_number
line_number_range_in_this_page.ended_at = start_at+MaxNumberOfLinesPerPage - 1
line_number_range_in_this_page.length = MaxNumberOfLinesPerPage
このページで表示するルビを取得 このページに表示する文字インデックスの範囲を取得
get_char_index_range_with_page_index(index)


if (glyph == 400) return 7473;
if (glyph == 401) return 7474;
if (glyph == 402) return 7692;
if (glyph == 403) return 7694;
if (glyph == 415) return 7475;
if (glyph == 416) return 7476;
if (glyph == 426) return 7477;
if (glyph == 427) return 7478;
if (glyph == 428) return 7479;
if (glyph == 431) return 7480;
if (glyph == 432) return 7481;
if (glyph == 433) return 7482;
if (glyph == 434) return 7483;
if (glyph == 435) return 7484;
if (glyph == 438) return 7536;
if (glyph == 439) return 7537;
if (glyph == 440) return 7485;
if (glyph == 441) return 7486;
if (glyph == 442) return 7487;
if (glyph == 443) return 7488;
if (glyph == 444) return 7489;
if (glyph == 445) return 7490;
if (glyph == 446) return 7491;
if (glyph == 447) return 7492;
if (glyph == 448) return 7493;
if (glyph == 449) return 7494;
if (glyph == 450) return 7495;
if (glyph == 451) return 7496;
if (glyph == 452) return 7497;
if (glyph == 453) return 7498;
if (glyph == 454) return 7499;
if (glyph == 455) return 7500;
if (glyph == 456) return 7501;
if (glyph == 457) return 7502;
if (glyph == 463) return 7503;
if (glyph == 502) return 505;
if (glyph == 503) return 504;
if (glyph == 504) return 502;
if (glyph == 505) return 503;
if (glyph == 608) return 7504;
if (glyph == 610) return 7505;
if (glyph == 612) return 7506;
if (glyph == 614) return 7507;
if (glyph == 616) return 7508;
if (glyph == 642) return 7509;
//if (glyph == ) return ;





if (glyph == 400) return 7473;#0
if (glyph == 401) return 7474;
if (glyph == 402) return 7692;
if (glyph == 403) return 7694;
if (glyph == 415) return 7475;
if (glyph == 416) return 7476;
if (glyph == 426) return 7477;
if (glyph == 427) return 7478;
if (glyph == 428) return 7479;
if (glyph == 431) return 7480;
if (glyph == 432) return 7481;#10
if (glyph == 433) return 7482;
if (glyph == 434) return 7483;
if (glyph == 435) return 7484;
if (glyph == 438) return 7536;
if (glyph == 439) return 7537;
if (glyph == 440) return 7485;
if (glyph == 441) return 7486;
if (glyph == 442) return 7487;
if (glyph == 443) return 7488;
if (glyph == 444) return 7489;#20
if (glyph == 445) return 7490;
if (glyph == 446) return 7491;
if (glyph == 447) return 7492;
if (glyph == 448) return 7493;
if (glyph == 449) return 7494;
if (glyph == 450) return 7495;
if (glyph == 451) return 7496;
if (glyph == 452) return 7497;
if (glyph == 453) return 7498;
if (glyph == 454) return 7499;#30
if (glyph == 455) return 7500;
if (glyph == 456) return 7501;
if (glyph == 457) return 7502;
if (glyph == 463) return 7503;
if (glyph == 502) return 505;
if (glyph == 503) return 504;
if (glyph == 504) return 502;
if (glyph == 505) return 503;
if (glyph == 608) return 7504;
if (glyph == 610) return 7505;#40
if (glyph == 612) return 7506;
if (glyph == 614) return 7507;
if (glyph == 616) return 7508;
if (glyph == 642) return 7509;#44
if (glyph == 674) return 7510;
if (glyph == 676) return 7511;
if (glyph == 678) return 7512;
if (glyph == 685) return 7513;
if (glyph == 691) return 7514;
if (glyph == 693) return 7515;#50
if (glyph == 695) return 7516;
if (glyph == 697) return 7517;
if (glyph == 699) return 7518;
if (glyph == 725) return 7519;
if (glyph == 757) return 7520;
if (glyph == 759) return 7521;
if (glyph == 761) return 7522;
if (glyph == 768) return 7523;
if (glyph == 775) return 7524;
if (glyph == 776) return 7525;#60
if (glyph == 7244) return 7246;#61
if (glyph == 7245) return 7247;
if (glyph == 7246) return 7244;
if (glyph == 7247) return 7245;
if (glyph == 7248) return 7250;
if (glyph == 7249) return 7251;
if (glyph == 7250) return 7254;
if (glyph == 7251) return 7255;
if (glyph == 7252) return 7248;
if (glyph == 7253) return 7249;# 70
if (glyph == 7254) return 7252;
if (glyph == 7255) return 7253;
if (glyph == 7256) return 7264;
if (glyph == 7257) return 7266;
if (glyph == 7258) return 7265;
if (glyph == 7259) return 7267;
if (glyph == 7260) return 7268;
if (glyph == 7261) return 7270;
if (glyph == 7262) return 7269;
if (glyph == 7263) return 7271;# 80
if (glyph == 7264) return 7260;
if (glyph == 7265) return 7262;
if (glyph == 7266) return 7261;
if (glyph == 7267) return 7263;
if (glyph == 7268) return 7256;
if (glyph == 7269) return 7258;
if (glyph == 7270) return 7257;
if (glyph == 7271) return 7259;
if (glyph == 7273) return 7274;
if (glyph == 7274) return 7273;# 90
if (glyph == 7306) return 7526;
if (glyph == 7307) return 7527;
if (glyph == 7308) return 7528;
if (glyph == 7309) return 7529;
if (glyph == 7310) return 7530;
if (glyph == 7311) return 7531;
if (glyph == 7312) return 7532;
if (glyph == 7313) return 7533;
if (glyph == 7314) return 7534;
if (glyph == 7315) return 7535;#100
if (glyph == 7323) return 7536;
if (glyph == 7324) return 7537;
if (glyph == 7539) return 7688;#103
if (glyph == 7540) return 7689;
if (glyph == 7563) return 7565;
if (glyph == 7564) return 7566;
if (glyph == 7565) return 7564;
if (glyph == 7566) return 7563;
if (glyph == 7589) return 7719;
if (glyph == 7590) return 7720;#110
if (glyph == 7591) return 7725;
if (glyph == 7592) return 7726;
if (glyph == 7593) return 7724;
if (glyph == 7594) return 7730;
if (glyph == 7595) return 7728;
if (glyph == 7596) return 7729;
if (glyph == 7597) return 7727;
if (glyph == 7598) return 7731;
if (glyph == 7599) return 7732;
if (glyph == 7600) return 7736;
if (glyph == 7601) return 7735;#121
if (glyph == 7602) return 7733;
if (glyph == 7603) return 7734;
if (glyph == 7604) return 7716;
if (glyph == 7658) return 7721;
if (glyph == 7717) return 7722;
if (glyph == 7718) return 7723;
if (glyph == 8280) return 8339;
if (glyph == 8281) return 8340;
if (glyph == 8282) return 8341;#130
if (glyph == 8283) return 8342;
if (glyph == 8284) return 8343;
if (glyph == 8285) return 8344;
if (glyph == 8286) return 8345;
if (glyph == 8287) return 8346;
if (glyph == 8288) return 8347;
if (glyph == 8289) return 8348;
if (glyph == 8290) return 8349;
if (glyph == 8291) return 8350;
if (glyph == 8292) return 8351;#140
if (glyph == 8293) return 8352;
if (glyph == 8294) return 8353;
if (glyph == 8295) return 8354;
if (glyph == 8296) return 8355;
if (glyph == 8297) return 8356;
if (glyph == 8298) return 8357;
if (glyph == 8299) return 8358;
if (glyph == 8300) return 8359;#148
if (glyph == 8301) return 8360;
if (glyph == 8302) return 8361;#150
if (glyph == 8303) return 8362;
if (glyph == 8304) return 8363;
if (glyph == 8305) return 8364;
if (glyph == 8306) return 8365;
if (glyph == 8307) return 8366;
if (glyph == 8308) return 8367;
if (glyph == 8309) return 8368;
if (glyph == 8310) return 8369;
if (glyph == 8311) return 8370;
if (glyph == 8312) return 8371;#160
if (glyph == 8313) return 8372;
if (glyph == 8314) return 8373;
if (glyph == 8315) return 8374;
if (glyph == 8316) return 8375;
if (glyph == 8317) return 8376;
if (glyph == 8318) return 8377;#166
if (glyph == 8319) return 8378;
if (glyph == 8320) return 8379;
if (glyph == 8321) return 8380;
if (glyph == 8322) return 8381;#170
if (glyph == 8323) return 8382;
if (glyph == 8324) return 8383;
if (glyph == 8325) return 8384;
if (glyph == 8326) return 8385;
if (glyph == 8327) return 8386;
if (glyph == 8328) return 8387;
if (glyph == 8329) return 8388;
if (glyph == 8330) return 8389;
if (glyph == 8331) return 8390;
if (glyph == 8332) return 8391;
if (glyph == 8333) return 8392;#180
if (glyph == 8334) return 8393;
if (glyph == 8335) return 8394;
if (glyph == 8336) return 8395;
if (glyph == 8337) return 8396;
if (glyph == 8338) return 8397;
if (glyph == 8409) return 8413;
if (glyph == 8410) return 8414;
if (glyph == 8411) return 8415;
if (glyph == 8412) return 8416;
if (glyph == 9691) return 9773;#190
if (glyph == 9692) return 9774;
if (glyph == 9698) return 9775;
if (glyph == 9728) return 9776;#194
if (glyph == 9729) return 9777;
if (glyph == 9730) return 9778;
if (glyph == 9731) return 9779;
if (glyph == 9732) return 9780;
if (glyph == 9733) return 9781;
if (glyph == 9734) return 9782;#200
if (glyph == 9735) return 9783;
if (glyph == 9736) return 9784;
if (glyph == 9737) return 9785;
if (glyph == 9738) return 9786;
if (glyph == 9739) return 9787;
if (glyph == 9740) return 9788;
if (glyph == 9741) return 9789;
if (glyph == 9742) return 9790;
if (glyph == 9743) return 9791;
if (glyph == 9744) return 9792;#210











タグ:

+ タグ編集
  • タグ:
最終更新:2010年07月14日 19:56
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。