Emacs Ruby..

Similar documents
ruby learner - Ruby

Windows Cygwin Mac *1 Emacs Ruby ( ) 1 Cygwin Bash Cygwin Windows Cygwin Cygwin Mac 1 Mac 1.2 *2 ls *3 *1 OS Linux *2 *3 Enter ( ) 2

ruby novice ruby novice ruby novice.

help gem gem gem my help

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

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

r1.dvi

Windows [ ] [ (R)..] cmd [OK] Z:\> mkdir progi [Enter] \ ) mkdir progi ) (command ) help [Enter] help ( help ) mkdir make directory Windows ) mkdir mk

p...{..P01-48(TF)

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa

fx-9860G Manager PLUS_J

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

Microsoft Word - D JP.docx

syspro-0405.ppt

IIJ Technical WEEK アプリ開発を楽にするRuby PaaS「MOGOK」について

untitled

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for


Mail_Spam_Manual_120815b

Ver.1 1/17/2003 2

PBASIC 2.5 PBASIC 2.5 $PBASIC directive PIN type New DEBUG control characters DEBUGIN Line continuation for comma-delimited lists IF THEN ELSE * SELEC

コンピュータ概論

Kumagai09-hi-2.indd


X Window System X X &

IIJ GIO, SaaS, MOGOK

tebiki00.dvi

Contents P. P. 1

操作1 <設問作成>

Informatics 2010.key

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

Łñ“’‘‚2004

プリント


作業手順手引き


RQT8189-S.indd


NSR-500 Create DVD Installer Procedures

<Documents Title Here>

untitled

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

double float

Smalltalk_


unix15-script2_09.key

r2.dvi

+ -


ohp1.dvi

Microsoft Word - jpluginmanual.doc

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=>

r07.dvi

Microsoft Word - Win-Outlook.docx

ohp07.dvi

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

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè2²ó

2016 3

r9.dvi

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè1²ó

Java updated

programmingII2019-v01

Ruby演習テキスト1

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

Condition DAQ condition condition 2 3 XML key value

Rev.2 N 内蔵 RDX N 外付 RDX ファームウェアアップデート手順 RDX 装置をお買い上げいただきましてありがとうございます 本書は N 内蔵 RDX N 外付 RDX のファームウェアアップデート手順を記載しています 1. 概要

untitled

fp.gby

利用者

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>

Microsoft Word - KUINS-Air_W10_ docx

I J

Android Studioセットアップガイド

BASIC / / BA- SIC Web 1/10 1/10 / / JavaScript

スパコンに通じる並列プログラミングの基礎

Windows版SASシステム 6.12TS020 使用上の注意点

TeraTerm Pro V.2.32の利用法

untitled

K227 Java 2

FTDI Driver Error and Recovery Procedure Check FTDI driver operation Rev :OK, Rev :NG, Rev :NG May 11, 2017 CHECK FTDI DRIVER

II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè1²ó

Introduction Purpose This course explains how to use Mapview, a utility program for the Highperformance Embedded Workshop (HEW) development environmen

bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows ˆ Windows10 64bit Wi


/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

スパコンに通じる並列プログラミングの基礎

technews2012autumn

スパコンに通じる並列プログラミングの基礎

(1/2) 2/45 HPC top runner application programmer PC-9801F N88-BASIC Quick BASIC + DOS ( ) BCB Windows Percolation, Event-driven MD ActionScript Flash

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

untitled

GNU Emacs GNU Emacs

13 Student Software TI-Nspire CX CAS TI Web TI-Nspire CX CAS Student Software ( ) 1 Student Software 37 Student Software Nspire Nspire Nspir

Informatics 2014


-2 gnuplot( ) j ( ) gnuplot /shell/myscript 1

Ruby 50 Ruby UTF print, \n [Ruby-1] print("hello, Ruby.\n") [Ruby-2] Hello, Ruby. [Ruby-3] print("hello, \"Ruby\".\n") 2 [Ruby-4] seisuu = 10 pr

Transcription:

command line editor 27014533 2018 3

1 5 1.1................................... 5 1.2................................... 5 2 6 2.1 Emacs...................................... 6 2.2 Ruby....................................... 7 2.3 RubyGems.................................... 7 2.4 Keybind..................................... 8 2.5 CUI(Character User Interface)......................... 9 2.6 gem............................. 10 2.6.1 diff-lcs.................................. 10 2.6.2 Thor................................... 10 2.6.3 Minitest................................. 11 2.6.4 FileUtils................................. 11 2.6.5 Rubocop................................. 11 3 editor learner 12 3.1 Installation................................... 12 3.1.1 github install.......................... 12 3.1.2 gem install............................ 12 3.2 uninstall..................................... 12 3.2.1 github install uninstall............. 12 3.2.2 gem install uninstall............... 13 3.3..................................... 13 1

3.3.1 error............................ 13 3.4..................................... 14 3.5 delete...................................... 16 3.6 random h.rb sequential h.rb......................... 16 3.7 random check.............................. 19 3.8 sequential check............................. 20 4 22 4.1......................... 22 4.1.1............... 24 4.1.2 File................................ 25 4.2 delete............................ 26 4.3 random check.................................. 26 4.4 sequential check................................. 29 4.4.1.................. 31 4.4.2................................. 32 4.5 open terminal.................... 32 5 33 5.1....................................... 34 6 35 2

5.1............................. 33 3

2.1..................... 8 2.2....................... 9 3.1........................... 15 3.2 random h.rb................................. 17 3.3.................... 18 3.4 sequential h.rb................................ 18 3.5................................ 19 3.6........................... 20 4

1 1.1 editor learner editor(emacs) CUI ( ) Ruby editor CUI Ruby Ruby GUI CUI 1.2 shunkuntype( ) Web Ruby Emacs editor CUI 5

2 2.1 Emacs editor Emacs Emacs editor editor Editor [1] editor Emacs Editor. Emacs Ruby.rb Ruby 6

editor Emacs editor Emacs 2.2 Ruby Ruby Ruby [2]. 2.3 RubyGems Ruby gem gem RubyGems RubyGems Ruby Ruby ( gem ) gem gem. [3] Ruby ( ) gem 7

install 2.4 Keybind Keybind CUI GUI CUI Control+a Keybind ( ) [4] control c- Keybind CUI 2.1: 8

2.2: 2.5 CUI(Character User Interface) GUI CUI Keybind CUI [5] CUI GUI GUI CUI GUI CUI editor 9

GUI CUI editor GUI CUI 2.6 gem 2.6.1 diff-lcs diff-lcs random check sequential check,diff::lcs.sdiff Diff::LCS.diff.. Diff::LCS.sdiff Diff::LCS.diff (Diff:LCS.diff) 2.6.2 Thor Thor Thor git bundler [6] Thor 10

2.6.3 Minitest Ruby Minitest assert equal Ruby Minitest Rails [7] Minitest 2.6.4 FileUtils FileUtils FileUtils 1. File.join: 2. File.exist: true false 3. FileUtils.mkdir p: dir 4. FileUtils.touch: 5. FileUtils.cp: 6. File.expand path: 7. FileUtils.compare file: true false 2.6.5 Rubocop Rubocop gem Rubocop ruby [8] 11

3 editor learner 3.1 Installation 3.1.1 github install github 1. https://github.com/souki1103/editor learner 2. Clone or download SSH URL 3. git clone( URL) 3.1.2 gem install gem 1. gem install editor learner 2..rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems editor learner editor learner 3.2 uninstall 3.2.1 github install uninstall gituhub install uninstall 12

1. 1. rm -rf editor learner 2. editor learner uninstall 3.2.2 gem install uninstall gem install uninstall 1. 1. gem uninstall editor learner 2..rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems editor learner uninstall 3.3 Ruby version 2.4.0 gem 2.4.0 editor learner version open terminal MacOSX MacOSX 3.3.1 error error 1. rm -rf editor learner 13

1. gem uninstall editor learner 2. version uninstall 3. gem install editor learner version install Ruby version 2 Ruby version 2.4.0 3.4 1. editor learner 2. editor learner editor learner/workshop workshop 3. workshop question.rb answer.rb random h.rb ruby 1 ruby 6 ruby 1ruby 6 1.rb 3.rb 14

3.1: 1. Commands: editor_lerner delete [number~number] editor_learner help [COMMAND] editor_learner random_check editor_leraner sequential_check [lesson_number] [1~3numbers] 15

2. editor learner 3.5 delete editor learner editor learner/workshop delete workshop ruby 1 ruby 6 sequential check Ithave been finished! editor learner delete 1 3 (char ) 3.6 random h.rb sequential h.rb random h.rb sequential h.rb editor learner random check sequential check random check sequential check random check 16

3.2: random h.rb 1. question.rb c-x2 2 2. c-x c-f question.rb 3. answer.rb 3 4. c-x c-f answer.rb 5. c-x o answer.rb 6. question.rb answer.rb random h.rb 17

3.3: question.rb answer.rb 3.4: sequential h.rb random h.rb 18

random h.rb 3.7 random check random check 1. editor learne random check 2. ( /editor learner/workshop ) 3. random h.rb random h.rb question.rb answer.rb 4. check 5. diff-lcs 6. It have been finished! 3.5: 19

3.6: questino.rb BAR answer.rb BA 133 question.rb R answer.rb random check answer.rb. random check typing editor Ruby typing editor 3.8 sequential check sequential check 1. editor learner sequential check(1 6 ) (1 3 ) 2. ( /editor learner/workshop/ruby (1 6 )) 3. sequential h.rb sequential h.rb q.rb.rb 4. check 5. q.rb.rb 6. ruby 1/1.rb is done! sequential check 1 3 1.rb 2.rb 3.rb sequential check sequential check Ruby 20

CUI Ruby 21

4 4.1 initialize editor learner 22

def initialize(*args) super @prac_dir="#{env[ HOME ]}/editor_learner/workshop" @lib_location = Open3.capture3("gem environment gemdir") @versions = Open3.capture3("gem list editor_learner") p @latest_version = @versions[0].chomp.gsub( (, - ).gsub( ), ) @inject = File.join(@lib_location[0].chomp, "/gems/#{@latest_version} /lib") if File.exist?(@prac_dir)!= true then FileUtils.mkdir_p(@prac_dir) FileUtils.touch("#{@prac_dir}/question.rb") FileUtils.touch("#{@prac_dir}/answer.rb") FileUtils.touch("#{@prac_dir}/random_h.rb") if File.exist?("#{@inject}/random_h.rb") == true then FileUtils.cp("#{@inject}/random_h.rb", "#{@prac_dir}/random_h.rb") elsif FileUtils.cp("#{ENV[ HOME ]}/editor_learner/lib/random_h.rb", "#{@prac_dir}/random_h.rb") range = 1..6 range_ruby = 1..3 range.each do num if File.exist?("#{@prac_dir}/ruby_#{num}")!= true then FileUtils.mkdir("#{@prac_dir}/ruby_#{num}") FileUtils.touch("#{@prac_dir}/ruby_#{num}/q.rb") FileUtils.touch("#{@prac_dir}/ruby_#{num}/sequential_h.rb") if File.exist?("#{@inject}/sequential_h.rb") == true then FileUtils.cp("#{@inject}/sequential_h.rb", "#{@prac_dir} /ruby_#{num}/sequential_h.rb") else FileUtils.cp("#{ENV[ HOME ]}/editor_learner/lib/sequential_h.rb", "#{@prac_dir}/ruby_#{num}/sequential_h.rb") range_ruby.each do n 23

FileUtils.touch("#{@prac_dir}/ruby_#{num}/#{n}.rb") @prac dir /editor learner/workshop 3 (@lib location,@versions,@latest version) gem install /.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems editor learner gem install github install 3 @inject gem install File.exist prac dir question.rb answer.rb gem gem install github install if random h.rb sequential h.rb 4.1.1 @ nill 5 prac dir /editor learner/workshop 4 gem install editor learner lib location gem environment gemdir 24

( /Users/souki/.rbenv/versions/2.4.0/ lib/ruby/gems/2.4.0) system gem environment gemdir system true false open3 versions gem install editor learner version Ruby version 2.4.0 Ruby version 2.4.0 version editor learner gem install latest versions versions editor learner version inject gem install editor learner ( /Users/souki/.rbenv /versions/2.4.0/lib/ruby/gems/2.4.0/gems/editor learner-1.1.2 ) inject 4.1.2 File (question.rb answer.rb ) initialize editor learner/workshop random check (question.rb,answer.rb,random h.rb) random h.rb gem install editor learner sequential check editor learner/workshop ruby 1 ruby 6 1.rb 3.rb q.rb( ) sequential h.rb sequential h.rb random h.rb gem install editor learner 25

4.2 delete sequential check chapter (1.rb 3.rb) ( )ruby 1/1.rb is done! delete delete sequential check desc delete [number~number], delete the ruby_file choose number to delet\ e file def delete(n, m) range = n..m range.each{ num if File.exist?("#{@prac_dir}/ruby_#{num}") == true then } system "rm -rf #{@prac_dir}/ruby_#{num}" 2 File system rm -rf File.exist n m for each 4.3 random check random check 26

desc random_check, ramdom check your typing and edit skill. def random_check(*argv) random = rand(1..15) p random s = "#{random}.rb" puts "check starting..." puts "type following commands on the terminal" puts "> emacs question.rb answer.rb" src_dir = File.expand_path(../.., FILE ) # "Users/souki/editor_learner" if File.exist?("#{@inject}/random_check_question/#{s}") == true then FileUtils.cp("#{@inject}/random_check_question/#{s}", "#{@prac_dir}/question.rb") elsif FileUtils.cp(File.join(src_dir, "lib/random_check_question/#{s}"), "#{@prac_dir}/question.rb") open_terminal start_time = Time.now loop do a = STDIN.gets.chomp if a == "check" && FileUtils.compare_file("#{@prac_dir}/question.rb", "#{@prac_dir}/answer.rb") == true then puts "It have been finished!" break elsif FileUtils.compare_file("#{@prac_dir}/question.rb", "#{@prac_dir}/answer.rb")!= true then @inputdata = File.open("#{@prac_dir}/answer.rb").readlines @checkdata = File.open("#{@prac_dir}/question.rb").readlines diffs = Diff::LCS.diff("#{@inputdata}", "#{@checkdata}") diffs.each do diff p diff 27

_time = Time.now time = _time - start_time - 1 puts "#{time} sec" random check 15 Ruby 15 answer.rb 1 15 random src dir /editor learner File.expand path() 2 1. FILE File.expand path() 2 1 [9]. File.join gem install github clone if 15 question.rb answer.rb question.rb FileUtils.compare file tab check check gets gets chomp argv gets gets STDIN argv 28

STDIN.gets.chomp argv check FileUtils.compare file it have been finished! file.open question.rb answer.rb input output Diff::LCS diff break 4.4 sequential check sequential check 29

desc sequential_check [lesson_number] [1~3number], sequential check your typing skill and edit skill choose number def sequential_check(*argv, n, m) l = m.to_i - 1 @seq_dir = "lib/sequential_check_question" q_rb = "ruby_#{n}/#{m}.rb" @seqnm_dir = File.join(@seq_dir,q_rb) @pracnm_dir = "#{ENV[ HOME ]}/editor_learner/workshop/ruby_#{n}/#{m}.rb" @seqnq_dir = "lib/sequential_check_question/ruby_#{n}/q.rb" @pracnq_dir = "#{ENV[ HOME ]}/editor_learner/workshop/ruby_#{n}/q.rb" @seqnl_dir = "lib/sequential_check_question/ruby_#{n}/#{l}.rb" @pracnl_dir = "#{ENV[ HOME ]}/editor_learner/workshop/ruby_#{n}/#{l}.rb" puts "check starting..." puts "type following commands on the terminal" src_dir = File.expand_path(../.., FILE ) if File.exist?("#{@inject}/sequential_check_question/ruby_#{n}/#{m}.rb") == true then FileUtils.cp("#{@inject}/sequential_check_question/ruby_#{n}/#{m}.rb", "#{@pracnq_dir}") elsif FileUtils.cp(File.join(src_dir, "#{@seqnm_dir}"), "#{@pracnq_dir}") if l!= 0 && FileUtils.compare_file("#{@pracnm_dir}", "#{@pracnq_dir}")!= true FileUtils.compare_file("#{@pracnl_dir}", (File.join(src_dir, "#{@seqnl_dir}"))) == true FileUtils.cp("#{@pracnl_dir}", "#{@pracnm_dir}") if FileUtils.compare_file(@pracnm_dir, @pracnq_dir)!= true then system "osascript -e tell application \"Terminal\" to do script \"cd #{@prac_dir}/ruby_#{n} \" " 30

loop do a = STDIN.gets.chomp if a == "check" && FileUtils.compare_file("#{@pracnm_dir}", "#{@pracnq_dir}") == true then puts "ruby_#{n}/#{m}.rb is done!" break elsif FileUtils.compare_file("#{@pracnm_dir}", "#{@pracnq_dir}")!= true then @inputdata = File.open("#{@pracnm_dir}").readlines @checkdata = File.open("#{@pracnq_dir}").readlines diffs = Diff::LCS.diff("#{@inputdata}", "#{@checkdata}") diffs.each do diff p diff else p "ruby_#{n}/#{m}.rb is finished!" 4.4.1 1. seq dir github clone 2. seqnm dir seq dir n m 1 1 1. editor learner/sequential check question/ruby 1/1.rb 3. pracnm dir prac dir n m 1 1 31

1. /editor learner/workshop/ruby 1/1.rb 4. seq prac ruby ( )/( ).rb 5. seqnl dir ruby n/l.rb 2 seq prac 4.4.2 gem install github install 1.rb 2.rb 1.rb check FileUtils.compare file Diff::LCS check check random check 4.5 open terminal def open_terminal pwd = Dir.pwd system "osascript -e tell application \"Terminal\" to do script \ "cd #{@prac_dir} \" " prac dir(editor learner/workshop) random check editor learner/workshop sequential check editor learner/workshop/ 32

5 5.1: 1. PTYPING: 2. e-typing: 3. : GUI 33

Web editor editor editor learner 5.1 editor learner {} () editor editor GUI CUI editor learner editor learner 34

6 editor editor editor learner 35

36

[1] Andrew Hunt, David Thomas,, (, 2016 ). [2] Ruby, https://www.ruby-lang.org/ja/, accessed 2018.2.8. [3] S. Koichiro, Rubygems, https://qiita.com/sumyapp/items/5ec58bf3567e557c24d7, accessed 2018.2.8. [4] Weblio,, https://www.weblio.jp/content/, accessed 2018.2.8. [5] Weblio, CUI, https://www.weblio.jp/content/cui, accessed 2018.2.8. [6] S. Kouichiro, Thor, https://qiita.com/succi0303/items/32560103190436c9435b, accessed 2018.2.8. [7], Ruby, (, 2017 ) [8] SideCI, Rubocop, http://blog-ja.sideci.com/entry/2015/03/12/160441, accessed 2018.2.9 [9] Ruby,, https://www.xmisao.com/2013/11/21/ruby-require-relative.html, accessed 2018.2.8. 37