JavaScriptファイルに引数を渡す(なるほどねー)を参考にする

大量のマニュアル作成で悩ましいのが「同じ事を複数のマニュアルに書く」という問題があって、Wordで管理している同僚の苦労を見かねて「HTMLでいいんじゃね?」と提言したもんだから、さらに悩む。
 
ハイパーリンクで構成すれば同じ記述の重複は発生しないけど「リンク無し!」「1ページに全ての情報を掲示したい」「微妙に写真とか文章が異なる」って条件で悩む。
 
以前作ったヤツ
HTML

<div class="copyright" id="copyright_change"><script type="text/javascript" charset="utf-8" src="js/copyright.js"></script></div>

JavaScript(copyright.js)

//http://www.fromdfj.net/javascript/innertext.html

var copylength="Copyright© 2006-2010 kenmituo. All rights reserved.";

if(document.all || document.getElementById){ // IE4/5、NN6用の分岐 
	if(document.all)document.all("copyright_change").innerHTML = copylength;
	else document.getElementById("copyright_change").innerHTML = copylength; 
} 
else if(document.layers){ // NN4.7用の分岐 
	with(document.layers["copyright_change"]){
		document.open(); 
		document.write(copylength);  
		document.close(); 
	} 
} 

 
静的な文章を挿入するときに活用している書き方なんだけど、「微妙に写真とか文章が異なる」という条件には合わない。
そこで見つけたのがJavaScriptファイルに引数を渡す(なるほどねー)というサイト、試してみる。
 
HTML

<html>
<body>
<p>Script test</p>
<div name="script" id="script"><script type="text/javascript" src="hoge.js?pc=1&vhs=1&ohc=0"></script>
</div>
</body>
</html>

「?」の後ろに「"変数"=パラメーター」って記述で「&」で追加する。
 
hoge.js

//http://nplll.com/mutter/archives/2009/04/javascript_2.php

var pc = new Array();
	pc[0] = "Lavie";
	pc[1] = "DELL";
	pc[2] = "SONY";

var ohc = new Array();
	ohc[0] = "Wolf Visione";
	ohc[1] = "Anoymous";

var vhs = new Array();
	vhs[0] = "victor";
	vhs[1] = "toshiba";

var configs = new Object;
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
  var s = scripts[i];
  if (s.src && s.src.match(/hoge\.js(\?.*)?/)) {
    var params = s.src.replace(/.+\?/, '');
    break;
  }
}
alert (params);
params = params.split("&");
for(var i = 0; i < params.length; i++) {
  var tmp = params[i].split("=");
  configs[tmp[0]] = unescape(tmp[1]);
}

alert (pc[configs["pc"]]);
alert (vhs[configs["vhs"]]);
alert (ohc[configs["ohc"]]);

って感じで体感できた。

google-charts-on-railsを試したい

Open Flash Chart 2とOpen Flash Chart Lazyで非常に苦労してヽ(`Д´)ノな状態なのでgoogle-charts-on-railsに乗り換えようと思う。
 

C:\Users\kenmituo\Documents\Aptana Studio\projyect_home>ruby script/plugin install h
ttp://google-charts-on-rails.googlecode.com/svn/google_charts_on_rails/
+ ./MIT-LICENSE
+ ./README
+ ./Rakefile
+ ./init.rb
+ ./install.rb
+ ./lib/google_chart.rb
+ ./tasks/google_charts_on_rails_tasks.rake
+ ./test/google_charts_on_rails_test.rb
+ ./uninstall.rb

プロキシがあっても、インストールすることが出来た。非常に嬉しい。
 
んで、使い方がよく分からないので調べる。DES GRAPHIQUES AVEC RAILS ET GOOGLE CHARTS ON RAILSという何語かもわからないBlogの記事を発見

コントローラー
  def google_chart
  end
ビュー
 <%= image_tag GoogleChart.pie(10,20,40,30).to_url %>

とりあえず描画されるようになった。
 
次にこんな事を試す

コントローラー
  def google_chart
    @lc= GoogleChart.pie(10,20,40,30).to_url
  end
ビュー
  <%= image_tag @lc %>

これも描画されるようになった。
 
そして表モノで悩むのが「どうやってアレは指定するんだ?」
Google Chart Tools / Image Charts (aka Chart API)を眺めて考えられる。
って、やれることが多すぎてさらに悩むwww
 
自分のやりたいことは

 
OFC2と違って出来ることが多すぎて、Chart Feature Listを見てさらに悩む。
 
プラグインの中を見直す。
/vendor/plugins/google_charts_on_rails/README
次の例はイケてないらしい。

GoogleChart.pie_with_size_blah_blah_600x400('year 1997'=>10,'year 1998'=>20,'year 1999'=>15,'year 2000'=>55).to_url

 

sales_chart = GoogleChart.new
sales_chart.type = :pie
sales_chart.data = [10, 20, 15, 55]

sales_chart.height = 200
sales_chart.width = 150

#change the default colour with the hex code
sales_chart.colors = '346090'

small_sales_chart_url = sales_chart.to_url

#reuse and change size, set labels for big chart
sales_chart.labels = ['year 1997','year 1998','year 1999','year 2000']
sales_chart.height = 600
sales_chart.width = 350
big_sales_chart_url = sales_chart.to_url

うまくいかないのでgoogle-charts-on-railsを試したいパート2に続く。