Kyosuke MOROHASHI

Size: px
Start display at page:

Download "Kyosuke MOROHASHI"

Transcription

1 Practical Meta Programming on Rails Ruby 1 in MOROHASHI Kyosuke

2 Kyosuke MOROHASHI

3

4

5 Aga toolbox

6

7 Ruby " " Ruby

8

9 Ruby " " Ruby

10

11 Ruby

12 Ruby

13

14 class Book def def = title

15 class Book def def = title

16 'title'?

17 class Book attr_accessor :title

18 def attr_accessor(name) define_method(name) do define_method("#{name}=") do val val)

19 define_method(:title) do define_method("title=") do val val)

20 define_method(:title) do define_method("title=") do val val)

21 define_method(:title) do define_method("title=") do val val)

22

23 Ruby

24 toolbox

25 (reflection) _( )

26

27 Class.is_a?(Object) #=> true Ruby Module Class

28 klasses = { 'array klass' => Array, 'hash klass' => Hash, } def class_name(klass) klass.name klasses['array klass'].new #=> [] class_name(klasses['hash klass']) #=> "Hash"

29 Class.is_a?(Object) #=> true include ext define_method Module

30 (Proc) Ruby

31 (Proc) # イテレータや処理の差し替え multiplier = ->(i) { i * 2 } square = ->(i) { i ** 2 } [1, 2, 3].map(&multiplier) [1, 2, 3].map(&square) # リソースの開閉 File.open(path, 'w') { f f.puts('content') } # 遅延評価 scope :fresh, -> { where('created_at >?', 3.hour.ago) }

32 You must unlearn what you have learned.

33 Object#s

34 Object#s def up_or_down(condition) up_or_down = condition? :upcase? :downcase 'Ruby'.s(up_or_down) up_or_down(true) # => 'RUBY' up_or_down(false) # => 'ruby'

35 define_method def

36 define_method class Foo foo = 'FOO' define_method(:foo1) do puts foo + '1' def foo2 puts foo + '2' obj = Foo.new obj.foo1 #=> 'FOO1' obj.foo2 #=> NameError

37 class_eval/ instance_eval Ruby

38 class_eval/ instance_eval class_eval (module_eval) Class private Class instance_eval private

39 class Foo def = message Foo.class_eval %q[ def greet "#{@message} you!" ] foo = Foo.new('hi') p foo.greet #=> 'hi you!' p foo.instance_eval } #=> 'hi'

40 instance_variable_set/ instance_variable_get class_varaible_set/ get

41 class Foo def = message foo = Foo.new('hi') foo.instance_variable_get('@message') #=> 'hi'

42 method_missing!! ActiveRecord

43 method_missing!! class Foo def method_missing(method, *args, &block) if method = :hi 'hello' else super Foo.new.hi #=> 'hello'

44 include,ext mixin include ext ( )

45 included, exted include ext inherited

46 included, exted module MyModule def self.included(base) "included by #{base}" def self.exted(obj) "exted by #{obj}" class MyClass include MyModule # => "included by MyClass" MyClass.new.ext(MyModule) # => "exted by #<MyClass:0x007fd

47 ActiveSupport::Concern Rails include ClassMethods ext included {} included

48 ActiveSupport::Concern module MyModule included(base) "included by #{base}" module ClassMethods def hi; 'hello' ; class MyClass include MyModule # => "included by MyClass" MyClass.hi # => "hello"

49 Ruby Ruby

50

51

52 Book = Class.new do define_method(:initialize) do attrs attrs.each do key, value if respond_to?("#{key}=") s("#{key}=", value) else instance_variable_set("@#{key}", value) define_method(:price=) do price_str instance_variable_set( '@price', price_str.delete(',').to_i ) p Book.new(author: 'moro', price: '1,980')

53 class Book def = attrs[:author] self.price = attrs[:price] def = Integer(price_str.delete(',')) Book.new(author: 'moro', price: '1,980')

54 " " s, eval

55

56 ActiveRecord::Base.has_many assoc_name assoc_name で指定された 複数の子レコードへの関連を定義する

57 class Books < ActiveRecord::Base has_many :reviews Book#reviews #reviews= #review_ids #review_ids=... Book#reviews.build reviews.create reviews.each { review... } reviews.where(...)

58 def has_many(name, opts = {}) class_eval <<-RUBY def #{name} klass = #{name.to_s.classify} klass.where(#{fk}: id) def #{name}=(value) values.each do value #{name.to_s.classify}.create!(...) RUBY

59 ActiveRecord::Base.has_many assoc_name assoc_name で指定された 複数の子レコードへの関連を扱うオブジェクトのためのラッパーメソッドを定義する

60 Book#reviews

61 def define_readers mixin.class_eval <<-CODE, FILE, LINE + def #{name}(*args) association(:#{name}).reader(*args) CODE

62 Association owner target owner id target fk scope target

63 = Active Record Associations This is the root class of all associations ('+ Foo' signifies an included module Foo): Association SingularAssociation HasOneAssociation HasOneThroughAssociation + ThroughAssociation BelongsToAssociation BelongsToPolymorphicAssociation CollectionAssociation HasAndBelongsToManyAssociation HasManyAssociation HasManyThroughAssociation + ThroughAssociation

64

65 def define_readers mixin.class_eval <<-CODE, FILE, LINE + def #{name}(*args) association(:#{name}).reader(*args) CODE

66

67

68

69 (Post) (Comment) (Photo) Post URL

70 class Post < AR::Base after_save :submit_content_monitoring private def submit_content_monitoring content = [title, body].join("\n\n") url = Rails.config.censoring_point req = Net:: req.set_form_data('content' => content) Net::HTTP.start(url.hostname, url.port) do htt http.request(req)

71 class Comment < AR::Base... def submit_content_monitoring content = body... class Photo < AR::Base... def submit_content_monitoring content = "<img src=' />"...

72

73 class Post < AR::Base after_save :submit_content_monitoring private def submit_content_monitoring content = [title, body].join("\n\n") url = Rails.config.censoring_point req = Net:: req.set_form_data('content' => content) Net::HTTP.start(url.hostname, url.port) do htt http.request(req)

74 class Post < AR::Base after_save :submit_content_monitoring private def submit_content_monitoring Censoring.new( [title, body].join("\n\n"), Rails.config.censoring_point ).submit

75 class Censoring def initialize(content, = = url def submit req = Net:: req.set_form_data('content' do h http.request(req)

76 class Post < AR::Base after_save :submit_content_monitoring private def submit_content_monitoring Censoring.new( [title, body].join("\n\n"), Rails.config.censoring_point ).submit

77

78 class CensorAdapter def initialize(point, = = block def submit(record) content # post_adapter = CensorAdapter.new(point) do post [post.title, post.body].join("\n\n") post_adapter.submit(post)

79 class Post < AR::Base = CensorAdapter.new(config.point) do post [post.title, post.body].join("\n\n") after_save :submit_content_monitoring private def

80 class Comment < AR::Base = CensorAdapter.new(config.point) do comment comment.body after_save :submit_content_monitoring private def

81 class Photo < AR::Base = CensorAdapter.new(config.point) do photo "<img src=' />" after_save :submit_content_monitoring private def

82

83 module CeonsoringDsl def censor_content(url, &block) adapter = CensorAdapter.new(url, block) after_save { record adapter.submit(record) }

84 class Post < AR::Base ext CensoringDsl censor_content(config.point) do post [post.title, post.body].join("\n\n")

85

86 module Censorable ext ActiveSupport::Concern module ClassMethods def censor_content(url, &block) adapter = Censorable::Adapter.new(url, block after_save { record adapter.submit(record) class Adapter... class Request...

87 class Post < ActiveRecord::Base include Censorable censor_content(config.censoring_point) do pos [post.title, post.body].join("\n\n")

88

89 Censorable::Request Censorable::Adapter AR(AMo)

90 Censorable::Request #initialize(content, url) 送信内容とエンドポイントを受け取り #submit そこに POST する #submit

91 Censorable::Adapter #initialize(url, &block) エンドポイントとデータ変換方法 (Proc) を受け取り #submit(record) 初期化時の url と record から作った送信内容で Request を作り submit() &block record

92 AR(AMo) #create! 保存されるデータから適切に作られた内容が監視サービスに送信される

93

94

95

96 Ruby " " Ruby

97

98

99 ( " " )

100

101

102 Matz says: Ruby Ruby Ruby Ruby Ruby

3360 druby Web Who is translating it? http://dx.doi.org/10.1007/s10766-008-0086-1 $32.00 International Journal of PARALLEL PROGRAMING Must buy! http://dx.doi.org/10.1007/s10766-008-0086-1 toruby The

More information

Presentation

Presentation メタプログラミング Ruby LLPlanets 2011-8-20 征典 kdmsnr@gmail.com 1/50 征典 -kdmsnr 2/50 MF'sbliki 3/50 Ruby における メタプログラミングとは? 4/50 内部 DSL を書くことである 5/50 プログラミング 語 Ruby 8 章 リフレクションとメタプログラミング 豊富なリフレクション APIを使い メタプログラミングを実現する

More information

自己紹介 前田修吾(Shugo Maeda) Schemeと同い年 家族 奥さん 娘 息子 NaCl勤務(1999 )

自己紹介 前田修吾(Shugo Maeda) Schemeと同い年 家族 奥さん 娘 息子 NaCl勤務(1999 ) Railsによるメタプログラミング入門 株式会社ネットワーク応用通信研究所 前田 修吾 自己紹介 前田修吾(Shugo Maeda) Schemeと同い年 家族 奥さん 娘 息子 NaCl勤務(1999 ) リクエストがありましたので... 一応息子も Rubyとの出会い 1997年 JavaHouse-Brewers MLにて 恩人 高木浩光先生 Rubyへの貢献 標準添付ライブラリ curses

More information

Microsoft PowerPoint - ruby_instruction.ppt

Microsoft PowerPoint - ruby_instruction.ppt Ruby 入門 流れ Ruby の文法 画面に出力 キーボードから入力 数値 文字列 変数 配列 ハッシュ 制御構造 ( 分岐 繰り返しなど ) if while case for each 関数 クラス Ruby とは プログラミング言語 インタプリタ言語 オブジェクト指向 国産 ウェブアプリケーションフレームワーク RubyOnRails で注目 弊社での Web アプリケーション開発に利用 画面に出力

More information

3360 druby Web Who is translating it? http://dx.doi.org/10.1007/s10766-008-0086-1 $32.00 International Journal of PARALLEL PROGRAMING Must buy! http://dx.doi.org/10.1007/s10766-008-0086-1 toruby LT Linux

More information

{:from => Java, :to => Ruby } Java Ruby KAKUTANI Shintaro; Eiwa System Management, Inc.; a strong Ruby proponent http://kakutani.com http://www.amazon.co.jp/o/asin/4873113202/kakutani-22 http://www.amazon.co.jp/o/asin/477413256x/kakutani-22

More information

8 4 end 5 6 private def message 7 'Hello' 8 end 9 end g = Greeting.new 12 g.hello $ ruby lib/lessons/greeting.rb Hello Ruby public method protec

8 4 end 5 6 private def message 7 'Hello' 8 end 9 end g = Greeting.new 12 g.hello $ ruby lib/lessons/greeting.rb Hello Ruby public method protec 8 Rails 8.1 PicoPlanner Ruby lib lessons $ mkdir -p lib/lessons lib/lessons greeting.rb lib/lessons/greeting.rb (New) 1 class Greeting 2 def hello 3 puts message 87 8 4 end 5 6 private def message 7 'Hello'

More information

2015-s6-4g-pocket-guidebook_H1-4.indd

2015-s6-4g-pocket-guidebook_H1-4.indd 56C504-01 2 47 47 32 3435 35 2124 26 26 26 424343 434446 4646 12 14 16 18 20 4 28 30 31 36 37 38 42 47 48 49 4 4 4 3 4 5 16 16 6 6 18 18 32 32 30 30 7 20 20 8 9 28 31 10 Do you have a? 36 Do you have

More information

untitled

untitled 30 callcc yhara ( ( ) (1) callcc (2) callcc (3) callcc callcc Continuation callcc (1) (2) (3) (1) (2) (3) (4) class Foo def f p 1 callcc{ cc return cc} p 2 class Bar def initialize @cc = Foo.new.f def

More information

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN

More information

Sinatra と MongoDB 今回は Sinatra で MongoDB の操作を体験してみます 進捗に合わせて ドライバから Ruby で使える便利な ORM の紹介をします

Sinatra と MongoDB 今回は Sinatra で MongoDB の操作を体験してみます 進捗に合わせて ドライバから Ruby で使える便利な ORM の紹介をします Sinatra MongoDB Powered by Rabbit 2.1.2 and COZMIXNG Sinatra と MongoDB 今回は Sinatra で MongoDB の操作を体験してみます 進捗に合わせて ドライバから Ruby で使える便利な ORM の紹介をします Sinatra と MongoDB まずは初回なので Sinatra の基本からおさらいします Hello world

More information

6 (1) app.html.eex 28 lib/nano_planner_web/templates/layout/app.html.eex 27 <footer> Oiax Inc <%= this_year() %> Oiax Inc. 29 </footer>

6 (1) app.html.eex 28 lib/nano_planner_web/templates/layout/app.html.eex 27 <footer> Oiax Inc <%= this_year() %> Oiax Inc. 29 </footer> 6 (1) of_today 6.1 Copyright 2017 lib/nano_planner_web/views layout_view.ex this_year/0 lib/nano_planner_web/views/layout_view.ex 1 defmodule NanoPlannerWeb.LayoutView do 2 use NanoPlannerWeb, view 3 +

More information

15 Phoenix HTML 15.1 ModestGreeter RAVT web/router.ex web/router.ex : 12 scope "/", ModestGreeter do 13 pipe_through :browser get "/", TopCont

15 Phoenix HTML 15.1 ModestGreeter RAVT web/router.ex web/router.ex : 12 scope /, ModestGreeter do 13 pipe_through :browser get /, TopCont 15 Phoenix HTML 15.1 ModestGreeter RAVT web/router.ex web/router.ex : 12 scope "/", ModestGreeter do 13 pipe_through :browser 14 15 + get "/", TopController, :index 16 get "/hello/:name", HelloController,

More information

Working Effectively with Legacy tdiary Code using Cucumber and RSpec KAKUTANI Shintaro; Eiwa System Management,Inc.; Nihon Ruby-no-kai pragprog.com Working Effectively with Legacy tdiary code using

More information

10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name = "" => "" > item.valid? => true valid? true false

10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name =  =>  > item.valid? => true valid? true false 10 (1) 16 7 PicoPlanner validations 10.1 PicoPlanner Web Web invalid values validations Rails validates validate 107 10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #

More information

産業21-81号.72.indd

産業21-81号.72.indd 2015.7 81 http://www.rofuku.go.jp/tabid/128/default.aspx C O N T E N T S 21 2 6 8 10 12 16 18 20 22 24 26 27 28 29 211 221 1 213 421 215 2 621 217 821 3 219 1021 4 2111 1221 2113 1421 2115 1621 5 2117

More information

16 NanoPlanner name PlanItem.changeset/2 > validate_required([:name]) name :name Ecto.Changeset validate_required/3 Ecto.Changeset "validate_"

16 NanoPlanner name PlanItem.changeset/2 > validate_required([:name]) name :name Ecto.Changeset validate_required/3 Ecto.Changeset validate_ 16 NanoPlanner 16.1 13 name PlanItem.changeset/2 > validate_required([name]) name name Ecto.Changeset validate_required/3 Ecto.Changeset "validate_" 10 16.1 205 16 16.1 / ID validate_acceptance/3 true

More information

Ruby 2.3 のてざわり新機能と使いどころ Kunihiko Ito ESM 富山合同勉強会

Ruby 2.3 のてざわり新機能と使いどころ Kunihiko Ito ESM 富山合同勉強会 Ruby 2.3 のてざわり新機能と使いどころ Kunihiko Ito ESM 富山合同勉強会 2016 2016-01-30 はじめまして p self p self 名前 : 伊藤邦彦出身 : 富山在住 : 東京所属 : ESM アジャイル事業部仕事 : [Rails, neo4j] @kunitoo @kunitoo From Java To Ruby 変わったこと IDE を使わなくなった

More information

r2.dvi

r2.dvi 15 2 1 2015.6.2 ( ( ( Ruby ( ( https://www.ruby-lang.org/ja/documentation/ 2 Chris Pine,, 2,, 2010. Yugui, Ruby,, 2008. Ruby 1 ( Ruby ( 2 ( i i j ( ) /( (regular expression Ruby /.../ ( 1 if / / =~ =~

More information

Ruby演習テキスト1

Ruby演習テキスト1 Ruby言語 基礎演習 社会人技術者研修 2014年度 テキスト 社会人技術者研修 2014年度テキスト 2014.11 Ruby基礎演習 1 2014.11 2015.2.1 puts "Hello Ruby >ruby hello.rb ( リターン ) > ruby hello.rb Hello Ruby # はじめての ruby プログラム puts "Hello Ruby" > ruby

More information

parser.y 3. node.rb 4. CD-ROM

parser.y 3. node.rb 4. CD-ROM 1. 1 51 2. parser.y 3. node.rb 4. CD-ROM 1 10 2 i 0 i 10 " i i+1 3 for(i = 0; i

More information

第5回お試しアカウント付き並列プログラミング講習会

第5回お試しアカウント付き並列プログラミング講習会 qstat -l ID (qstat -f) qscript ID BATCH REQUEST: 253443.batch1 Name: test.sh Owner: uid=32637, gid=30123 Priority: 63 State: 1(RUNNING) Created at: Tue Jun 30 05:36:24 2009 Started at: Tue Jun 30 05:36:27

More information

Ver.1 1/17/2003 2

Ver.1 1/17/2003 2 Ver.1 1/17/2003 1 Ver.1 1/17/2003 2 Ver.1 1/17/2003 3 Ver.1 1/17/2003 4 Ver.1 1/17/2003 5 Ver.1 1/17/2003 6 Ver.1 1/17/2003 MALTAB M GUI figure >> guide GUI GUI OK 7 Ver.1 1/17/2003 8 Ver.1 1/17/2003 Callback

More information

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I  Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse I Exercise on Programming I http://bit.ly/oitprog1 1, 2 of 14 ( RD S ) I 1, 2 of 14 1 / 44 Ruby Ruby ( RD S ) I 1, 2 of 14 2 / 44 7 5 9 2 9 3 3 2 6 5 1 3 2 5 6 4 7 8 4 5 2 7 9 6 4 7 1 3 ( RD S ) I 1, 2

More information

オンラインテスト

オンラインテスト 1. 2. JavaScript 3. Perl 4. CGI 1. WWW HTML WWW World Wide Web HTML Hyper Text Markup Language XML, XHTML Java (.java) JavaApplet (.class,.jar) JavaServlet (.jsp) JavaScript (.html) CGI (.cgi) SSI (.shtml)

More information

Rubyのしくみ:Ruby Under a Microscope

Rubyのしくみ:Ruby Under a Microscope Ruby Ruby Under a Microscope Pat Shaughnessy 20150109 b5891c1 (m-sl b-n bc-n) Title of English-language original: Ruby Under a Microscope ISBN 978-1-59327-527-3, published by No Starch Press, Inc. Copyright

More information

Microsoft PowerPoint - 11RubyIntro-No02.ppt [互換モード]

Microsoft PowerPoint - 11RubyIntro-No02.ppt [互換モード] Ruby 入門 東京電機大学櫻井彰人 Ruby とは? Ruby: 松本ゆきひろ氏による (1993) 純粋オブジェクト指向 スクリプト言語 Web プログラムで どんどんポピュラーに Ruby on Rails (http://www.rubyonrails.org/) なぜか きわめて Lisp like 松本行弘 (Matz) Introduction 実行環境 Windows/Unix/Linux/

More information

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200, WEB DB PRESS Vol.1 79 3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200, http://www.postgresql.org/http://www.jp.postgresql.org/ 80 WEB DB PRESS

More information

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7 Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba 2013 2013-06-02 自己紹介とみたまさひろ 長野県北部在住 プログラマー (Ruby & C) http://tmtms.hatenablog.com http://twitter.com/tmtms 好きなもの Ruby, MySQL, Linux Mint, Emacs, Git OSS 貢献者賞

More information

インターネットマガジン2001年9月号―INTERNET magazine No.80

インターネットマガジン2001年9月号―INTERNET magazine No.80 +CD-ROM Å 5 M0.9. A N S W E R function calc () { t = ocument.getelementbyi("tboy"); for(i = 0; i < t.rows.length; i++) { win = Number(t.rows[i].cells[3].firstChil.noeValue); lost = Number(t.rows[i].cells[].firstChil.noeValue);

More information

21 A contents organization method for information sharing systems

21 A contents organization method for information sharing systems 21 A contents organization method for information sharing systems 1125140 2010 3 4 IT i Abstract A contents organization method for information sharing systems Aoki, Wataru Organizations to share information,

More information

JavaScript の使い方

JavaScript の使い方 JavaScript Release10.5 JavaScript NXJ JavaScript JavaScript JavaScript 2 JavaScript JavaScript JavaScript NXJ JavaScript 1: JavaScript 2: JavaScript 3: JavaScript 4: 1 1: JavaScript JavaScript NXJ Static

More information

自 己 紹 介 高 島 亮 祐 (たかしま りょうすけ) id:rst76 (twitter, hatena, github) 日 本 ユニシス 株 式 会 社 2001 年 度 入 社 2010 年 くらいから Ruby / Rails に 携 わる( 同 僚 のお 手 伝 い) プライベートでは

自 己 紹 介 高 島 亮 祐 (たかしま りょうすけ) id:rst76 (twitter, hatena, github) 日 本 ユニシス 株 式 会 社 2001 年 度 入 社 2010 年 くらいから Ruby / Rails に 携 わる( 同 僚 のお 手 伝 い) プライベートでは Ruby on Rails の 紹 介 2015/10 高 島 亮 祐 自 己 紹 介 高 島 亮 祐 (たかしま りょうすけ) id:rst76 (twitter, hatena, github) 日 本 ユニシス 株 式 会 社 2001 年 度 入 社 2010 年 くらいから Ruby / Rails に 携 わる( 同 僚 のお 手 伝 い) プライベートでは Haskell / Lazy

More information

2009 Web B012-1

2009 Web B012-1 2009 Web 2010 2 1 5108B012-1 1 4 1.1....................................... 4 1.2................................... 4 2 Web 5 2.1 Web............................... 5 2.2 Web.................................

More information

Microsoft PowerPoint - Ruby n

Microsoft PowerPoint - Ruby n 一般財団法人 Ruby アソシエーションホームページからの抜粋 技術者向け情報 -> 開発 -> Ruby -> チュートリアル http://www.ruby.or.jp/ja/tech/development/ruby/tutorial/ Tom. Stuart 著, 笹田耕一監訳, 笹井崇司訳 : アンダースタンディングコンピュテーション, オライリー ジャパン ( 第 1 章 ) Ruby

More information

ÇPÇRèÕÉIÉuÉWÉFÉNÉgéwå¸ã@î\.pdf

ÇPÇRèÕÉIÉuÉWÉFÉNÉgéwå¸ã@î\.pdf COPYRIGHT 200 COBOL CLASS-ID.. FACTORY. METHOD-ID.. OBJECT. METHOD-ID.. COPYRIGHT 200 COBOL 2 COPYRIGHT 200 COBOL 3 COPYRIGHT 200 COBOL 4 COPYRIGHT 200 COBOL 5 COPYRIGHT 200 COBOL 6 COPYRIGHT 200 COBOL

More information

CSSNiteLP51-s7-kubo.key

CSSNiteLP51-s7-kubo.key CSS Nite LP51 Reboot Dreamweaver Dreamweaver 10th .foo width: 980px margin: auto p margin: 1em 0 a color: #000 text-decoration: none .foo { width: 980px; margin: auto; p { margin: 1em 0; a { color:

More information

ohp1.dvi

ohp1.dvi 2008 1 2008.10.10 1 ( 2 ) ( ) ( ) 1 2 1.5 3 2 ( ) 50:50 Ruby ( ) Ruby http://www.ruby-lang.org/ja/ Windows Windows 3 Web Web http://lecture.ecc.u-tokyo.ac.jp/~kuno/is08/ / ( / ) / @@@ ( 3 ) @@@ :!! ( )

More information

PowerPoint Presentation

PowerPoint Presentation プログラミング Java III 第 4 回 : サーブレットの HTTP Request の処理 Ivan Tanev 講義の構造 1. サーブレットの HTTP Request の処理 2. 演習 2 第 3 回のまとめ Internet Explorer のアドレス バー : http://isd-si.doshisha.ac.jp/teaching/programming_3/xxxxxxxx/lecture3_form1.html

More information

CAS Yale Open Source software Authentication Authorization (nu-cas) Backend Database Authentication Authorization to@math.nagoya-u.ac.jp, Powered by A

CAS Yale Open Source software Authentication Authorization (nu-cas) Backend Database Authentication Authorization to@math.nagoya-u.ac.jp, Powered by A Central Authentication System naito@math.nagoya-u.ac.jp to@math.nagoya-u.ac.jp, Powered by Adobe Reader & ipod Photo March 10, 2005 RIMS p. 1/55 CAS Yale Open Source software Authentication Authorization

More information

JEB Plugin 開発チュートリアル 第4回

JEB Plugin 開発チュートリアル 第4回 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

Read the following text messages. Study the names carefully. 次のメッセージを読みましょう 名前をしっかり覚えましょう Dear Jenny, Iʼm Kim Garcia. Iʼm your new classmate. These ar

Read the following text messages. Study the names carefully. 次のメッセージを読みましょう 名前をしっかり覚えましょう Dear Jenny, Iʼm Kim Garcia. Iʼm your new classmate. These ar LESSON GOAL: Can read a message. メッセージを読めるようになろう Complete the conversation using your own information. あなた自身のことを考えて 会話を完成させましょう 1. A: Whatʼs your name? B:. 2. A: Whatʼs your phone number, (tutor says studentʼs

More information

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr Eclipse 1,a) 1,b) 1,c) ( IDE) IDE Graphical User Interface( GUI) GUI GUI IDE View Eclipse Development of Eclipse Plug-in to present an Object Diagram to Debug Environment Kubota Yoshihiko 1,a) Yamazaki

More information

listings-ext

listings-ext (6) Python (2) ( ) ohsaki@kwansei.ac.jp 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1

More information

untitled

untitled Junaio 2011 11/4 Location Base AR GLUE AR www.junaio.com Junaio.com www.junaio.com JunaioDevelopper JunaioDevelopper Public Description public metaio Private D D D OK Create Junaio 3D Description

More information

プラズマ核融合学会誌4月【84-4】/講座5

プラズマ核融合学会誌4月【84-4】/講座5 Practical Data Analysis Using Open Source Software 5. Ruby for Geophysical Fluid Sciences HORINOUCHI Takeshi corresponding author s e-mail: horinout rish.kyoto-u.ac.jp air lon lat level time global_temp.rb

More information

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I  Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse I Exercise on Programming I http://bit.ly/oitprog1 12 of 14 ( RD S ) I 12 of 14 1 / 35 https://bit.ly/oitprog1 ( RD S ) I 12 of 14 2 / 35 game.rb ( RD S ) I 12 of 14 3 / 35 game.rb 11 ( ) 1 require "io/console"

More information

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装 Ruby Scheme 2013-04-16 ( )! SICP *1 ;-) SchemeR SICP MIT * 1 Structure and Interpretaion of Computer Programs 2nd ed.: 2 i SchemeR Ruby Ruby Ruby Ruby & 3.0 Ruby ii https://github.com/ichusrlocalbin/scheme_in_ruby

More information

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool VDM-SL VDM++ 23 6 28 VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web 2 1 3 1.1............................................... 3 1.1.1 bool......................................... 3 1.1.2 real rat int

More information

class Cpd MW = { 'C'=>12.011, 'H'=>1.00794, 'N'=>14.00674, 'O' => 15.9994, 'P' => 30.973762 } def initialize @comp = Hash.new attr_accessor :name, :definition, :formula # formula def composition @formula.scan(/([a-z]+)(\d+)/)

More information

1

1 1 2 3 4 確認しよう 今回のサンプルプログラムにアクセスしてみましょう 1. デスクトップ上のフォルダをクリックし /var/www/html に example1.html と example2.php ファイルがあることを確認します 2. ブラウザを起動し 次の URL にアクセスします http://localhost/example1.html 3. 自分の手を選択して じゃんけんぽん

More information

Ruby on Rails と私 2006 年夏 Web 家計簿 小槌 で ドリコム Award on Rails 大賞 & 審査員特別賞 絶賛? 運用中!!

Ruby on Rails と私 2006 年夏 Web 家計簿 小槌 で ドリコム Award on Rails 大賞 & 審査員特別賞  絶賛? 運用中!! Ruby on Rails 活用のコツ 2007/7/2 ( 株 ) 万葉 / メタデータ ( 株 ) 大場寧子 y.ohba@everyleaf.com Ruby on Rails と私 2006 年夏 Web 家計簿 小槌 で ドリコム Award on Rails 大賞 & 審査員特別賞 http://www.kozuchi.net/ 絶賛? 運用中!! Ruby on Rails をはじめた理由

More information

,,,,., C Java,,.,,.,., ,,.,, i

,,,,., C Java,,.,,.,., ,,.,, i 24 Development of the programming s learning tool for children be derived from maze 1130353 2013 3 1 ,,,,., C Java,,.,,.,., 1 6 1 2.,,.,, i Abstract Development of the programming s learning tool for children

More information

Condition DAQ condition condition 2 3 XML key value

Condition DAQ condition condition 2 3 XML key value Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................

More information

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ 2 : TCP/IP : HTTP HTTP/2 1 / 22 httpget.txt: http.rb: ruby http get Java http ( ) HttpURLConnection 2 / 22 wireshark httpget.txt httpget cookie.txt ( ) telnet telnet localhost 80 GET /index.html HTTP/1.1

More information

AuthorManual_JSTP.ppt

AuthorManual_JSTP.ppt ScholarOne Manuscripts Log In Create Account Main Menu Author Dashboard Step 1: Type, Title & Abstract Step 2: Attributes Step 3: Authors & Institutions Step 4: Reviewers Step 5: Details & Comments Step

More information

目次 * 本資料について * お問い合わせ * SecureAssist Enterprise Portal API 概要 APIについて API 通信の流れ * SecureAssist Enterprise Portal 各 API 説明認証プロジェクトのレポートの取得プロジェクトの一覧の取得ア

目次 * 本資料について * お問い合わせ * SecureAssist Enterprise Portal API 概要 APIについて API 通信の流れ * SecureAssist Enterprise Portal 各 API 説明認証プロジェクトのレポートの取得プロジェクトの一覧の取得ア 2016.03.23 SecureAssist Enterprise Portal API ガイド Version 3.0 対応版 API の概要 各 API の説明と実行例 目次 * 本資料について * お問い合わせ * SecureAssist Enterprise Portal API 概要 APIについて API 通信の流れ * SecureAssist Enterprise Portal

More information

ld-2.dvi

ld-2.dvi Ld-2 Common Lisp TR-98-19 1998 8 19 1 3 2 4 2.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

More information

1 6 1.1........................................... 6 1.1.1 Wiki.............................. 6 1.1.2............................. 7 1.2..............

1 6 1.1........................................... 6 1.1.1 Wiki.............................. 6 1.1.2............................. 7 1.2.............. Wiki 1 6 1.1........................................... 6 1.1.1 Wiki.............................. 6 1.1.2............................. 7 1.2.......................................... 7 1.2.1................

More information

超初心者用

超初心者用 3 1999 10 13 1. 2. hello.c printf( Hello, world! n ); cc hello.c a.out./a.out Hello, world printf( Hello, world! n ); 2 Hello, world printf n printf 3. ( ) int num; num = 100; num 100 100 num int num num

More information

Microsoft Word - D JP.docx

Microsoft Word - D JP.docx Application Service Gateway Thunder/AX Series vthunder ライセンスキー インストール 手順 1 1.... 3 2. vthunder... 3 3. ACOS... 3 4. ID... 5 5.... 8 6.... 8 61... 8 62 GUI... 10 2 1. 概要 2. vthunder へのアクセス 方法 SSHHTTPSvThunder

More information

1986 NHK 2000 2004 NTT NTT CONTENTS 01 03 05 07 09 11 4 1 13 2 14 34 15 17 19 21 SNS 1 4 12 34 4 23 25 1 26 27 29 01 School of Information and Communi

1986 NHK 2000 2004 NTT NTT CONTENTS 01 03 05 07 09 11 4 1 13 2 14 34 15 17 19 21 SNS 1 4 12 34 4 23 25 1 26 27 29 01 School of Information and Communi 1986 NHK 2000 2004 NTT NTT CONTENTS 01 03 05 07 09 11 4 1 13 2 14 34 15 17 19 21 SNS 1 4 12 34 4 23 25 1 26 27 29 01 School of Information and Communication 02 Point 1 P.1112 2011 Point 2 P.1316 Point

More information

CX-Checker CX-Checker (1)XPath (2)DOM (3) 3 XPath CX-Checker. MISRA-C 62%(79/127) SQMlint 76%(13/17) XPath CX-Checker 3. CX-Checker 4., MISRA-C CX- Ch

CX-Checker CX-Checker (1)XPath (2)DOM (3) 3 XPath CX-Checker. MISRA-C 62%(79/127) SQMlint 76%(13/17) XPath CX-Checker 3. CX-Checker 4., MISRA-C CX- Ch CX-Checker: C 1 1 2 3 4 5 1 CX-Checker CX-Checker XPath DOM 3 CX-Checker MISRA-C CX-Checker: A Customizable Coding Checker for C TOSHINORI OSUKA, 1 TAKASHI KOBAYASHI, 1 JUNICHI MASE, 2 NORITOSHI ATSUMI,

More information

ruby novice ruby novice ruby novice.

ruby novice ruby novice ruby novice. GitHub Ruby 2549 2017 3 1 1 3 2 4 2.1 ruby novice........................... 4 2.2.............................. 6 3 8 3.1 ruby novice....................... 8 3.2 ruby novice............................

More information

r1.dvi

r1.dvi Ruby 2009.9.7 1 ( ) --- ( ( ) ( ) 1 --- ( ) 1 ( ) (?) IT 7K( )?? ( ) ( )? IT ( ) --- ( ) 1 ( ) --- ( ) (?) 2-3% Top-Level ICT Professional 5% ICT Professional 10% 100% 50% 20% Devl. Experiment Adv. ICT

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

Ruby Ruby ruby Ruby G: Ruby>ruby Ks sample1.rb G: Ruby> irb (interactive Ruby) G: Ruby>irb -Ks irb(main):001:0> print( ) 44=>

Ruby Ruby ruby Ruby G: Ruby>ruby Ks sample1.rb G: Ruby> irb (interactive Ruby) G: Ruby>irb -Ks irb(main):001:0> print( ) 44=> Ruby Ruby 200779 ruby Ruby G: Ruby>ruby Ks sample1.rb G: Ruby> irb (interactive Ruby) G: Ruby>irb -Ks irb(main):001:0> print( 2+3+4+5+6+7+8+9 ) 44 irb(main):002:0> irb irb(main):001:0> 1+2+3+4 => 10 irb(main):002:0>

More information

Python Speed Learning

Python   Speed Learning Python Speed Learning 1 / 76 Python 2 1 $ python 1 >>> 1 + 2 2 3 2 / 76 print : 1 print : ( ) 3 / 76 print : 1 print 1 2 print hello 3 print 1+2 4 print 7/3 5 print abs(-5*4) 4 / 76 print : 1 print 1 2

More information

Emacs Ruby..

Emacs Ruby.. command line editor 27014533 2018 3 1 5 1.1................................... 5 1.2................................... 5 2 6 2.1 Emacs...................................... 6 2.2 Ruby.......................................

More information

_IMv2.key

_IMv2.key 飯島基 文 customb2b@me.com $ ssh ladmin@im.example.com $ cd /Library/Server/Web/Data/Sites/Default/ $ git clone https://github.com/msyk/inter-mediator.git

More information

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_ 13 : Web : RDB (MySQL ) DB (memcached ) 1: MySQL ( ) 2: : /, 3: : Google, 1 / 23 testmysql.rb: mysql ruby testmem.rb: memcached ruby 2 / 23 ? Web / 3 ( ) Web s ( ) MySQL PostgreSQL SQLite MariaDB (MySQL

More information

43-03‘o’ì’¹‘®”q37†`51†i„¤‰ƒ…m†[…g†j.pwd

43-03‘o’ì’¹‘®”q37†`51†i„¤‰ƒ…m†[…g†j.pwd n 808 3.0 % 86.8 % 8.3 % n 24 4.1 % 54.0 % 37.5 % 0% % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90 % 0% 37.4 % 7.2 % 27.2 % 8.4 % n 648 13.6 % 18.1% 45.4 % 4.1% n 18 0% % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90

More information

comp -MYPEDIA Programing- Ruby 1 attr_accessor :< 1>, :< 2> class Car def = carname end attr_accessor :name end car = Car.ne

comp -MYPEDIA Programing- Ruby 1 attr_accessor :< 1>, :< 2> class Car def = carname end attr_accessor :name end car = Car.ne Ruby 1 attr_accessor :< 1>, :< 2> class Car def initialize(carname) @name = carname attr_accessor :name car = Car.new("car1") car.name = "car2" puts car.name attr_reader :< 1>, :< 2> class Car def initialize(carname)

More information

What s your name? Help me carry the baggage, please. politeness What s your name? Help me carry the baggage, please. iii

What s your name? Help me carry the baggage, please. politeness What s your name? Help me carry the baggage, please. iii What s your name? Help me carry the baggage, please. politeness What s your name? Help me carry the baggage, please. iii p. vi 2 50 2 2016 7 14 London, Russell Square iv iii vi Part 1 1 Part 2 13 Unit

More information

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web 2014 3

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web 2014 3 Web 2.0 Web Web Web Web Web Web Web I II I ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web 2014 3 1. 1.1 Web... 1 1.1.1... 3 1.1.2... 3 1.1.3... 4 1.2... 4 I 2 5 2. HTMLCSS 2.1 HTML...

More information

WordPress Web

WordPress Web 0948011 1 1 1.............................. 1 2 WordPress....................... 2 3........................ 3 4........................ 4 2 4 1 Web......... 4 3 5 1 WordPress...................... 5 2..........................

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 4 回目クラスの機能 (2) コンストラクタ クラス変数 クラスメソッド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) コンストラクタはメソッドと同様に戻り値をもつ (2) コンストラクタはオブジェクトが生成されると最初に実行される (3) コンストラクタはメソッドと同様にオーバーロードができる (4) コンストラクタは常に public メンバとしなければならない

More information

untitled

untitled DSpace 1 1 DSpace HOME...4 1.1 DSpace is Live...4 1.2 Search...4 1.3 Communities in DSpace...6 1.4...6 1.4.1 Browse...7 1.4.2 Sign on to...14 1.4.3 Help...16 1.4.4 About DSpace...16 2 My DSpace...17 2.1

More information

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I  Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse I Exercise on Programming I http://bit.ly/oitprog1 13 of 14 ( RD S ) I 13 of 14 1 / 39 https://bit.ly/oitprog1 ( RD S ) I 13 of 14 2 / 39 game.rb ( RD S ) I 13 of 14 3 / 39 game.rb 12 ( ) 1 require "io/console"

More information

ForCustomer_rDNS_EC2 _Request_ update[1]

ForCustomer_rDNS_EC2 _Request_ update[1] AWS EC2 E メール上限緩和 / 逆引き (rdns) 設定申請 順 1. Amazon EC2 E メール上限緩和申請 2. 逆引き (rdns) 設定申請 3. Amazon EC2 E メール上限緩和 + 逆引き設定 4. 逆引き (rdns) 設定解除申請 AWS サポート 2016/6 (2017/8 修正版 ) AWS EC2 E メール上限緩和 / 逆引き (rdns) 設定申請

More information

RubyKaigi2009 COBOL

RubyKaigi2009 COBOL RubyKaigi2009 COBOL seki@druby.org 3360 Pragmatic Bookshelf druby Web $32.00 International Journal of PARALLEL PROGRAMING !? MapReduce Rinda (map, reduce) map reduce key value [, ] [, ID] map()

More information

PowerPoint Presentation

PowerPoint Presentation UML 2004 7 9 10 ... OOP UML 10 Copyright 2004 Akira HIRASAWA all rights reserved. 2 1. 2. 3. 4. UML 5. Copyright 2004 Akira HIRASAWA all rights reserved. 3 1..... Copyright 2004 Akira HIRASAWA all rights

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

2017_08_ICN研究会_印刷用

2017_08_ICN研究会_印刷用 class Producer : noncopyable public: run() m_face.setinterestfilter("/example/testapp", bind(&producer::oninterest, this, _1, _2), RegisterPrefixSuccessCallback(), bind(&producer::onregisterfailed, this,

More information

一 先 行 研 究 と 問 題 の 所 在 19

一 先 行 研 究 と 問 題 の 所 在 19 Title 太 宰 治 葉 桜 と 魔 笛 論 : 反 転 する 美 談 / 姉 妹 のエ クリチュール Author(s) 川 那 邉, 依 奈 Citation 待 兼 山 論 叢. 文 学 篇. 48 P.19-P.37 Issue 2014-12-25 Date Text Version publisher URL http://hdl.handle.net/11094/56609 DOI

More information

untitled

untitled C -1 - -2 - concept lecture keywords FILE, fopen, fclose, fscanf, fprintf, EOF, r w a, typedef gifts.dat Yt JZK-3 Jizake tsumeawase 45 BSP-15 Body soap set 3 BT-2 Bath towel set 25 TEA-2 Koutya

More information

K227 Java 2

K227 Java 2 1 K227 Java 2 3 4 5 6 Java 7 class Sample1 { public static void main (String args[]) { System.out.println( Java! ); } } 8 > javac Sample1.java 9 10 > java Sample1 Java 11 12 13 http://java.sun.com/j2se/1.5.0/ja/download.html

More information