SlideShare una empresa de Scribd logo
1 de 20
How to create
Aptana Ruble
      2012.11.01 / 박재성
Index

 1. Aptana Ruble ?

 2. 생성하기

 3. Commands

 4. Code Assist

 5. Simple Demo

 6. Packaging & installation
1. Aptana Ruble?



 Ruble = RUby BundLE

 •   IDE와 에디터 영역의 사용 환경을 Ruby를 사
     용해 확장하는 런타임 환경을 의미

 •   TextMate bundles와 호환
2. 생성하기

 Creating a new Ruble :
 https://wiki.appcelerator.org/display/tis/Creating+a+new+Ruble

 a. Wizard :
    New > Ruby Project >




 b. Modifying existing ruble
    Commands > [Ruble Name] > Edit this bundle
2. 생성하기 : bundle.rb

 bundle.rb
 require 'ruble'

 bundle do |bundle|
   bundle.display_name = 'Test Plugin'
   bundle.author = 'My Name'
   bundle.copyright = <<END
 (c) Copyright 2011 sample.org. Distributed under MIT license.
 END

   bundle.description = <<END
 Sample description
 END

  # uncomment with the url to the git repo if one exists
  # bundle.repository = 'git@github.com:username/repo-name.git'

   # Use Commands > Bundle Development > Insert Bundle Section > Menu
   # to easily add new sections
   bundle.menu 'Test Plugin' do |menu|
     menu.command 'Swap Case'
     menu.command 'Sample Snippet'
     menu.separator
     menu.menu 'Sub Menu' do |sub_menu|
         sub_menu.command 'Sample Snippet'
     end
   end
 end
2. 생성하기 : Menu
2. 생성하기 : How command is invoked




                                         /commands/commands.rb
/bundle.rb
                                         require 'ruble'
bundle.menu 'Test Plugin' do |menu|
    menu.command 'Swap Case'             command 'Swap Case' do |cmd|
    menu.command 'Sample Snippet'          cmd.key_binding = 'SHIFT+CTRL+A'
    menu.separator                         cmd.scope = 'source'
    menu.menu 'Sub Menu' do |sub_menu|     cmd.output = :replace_selection
        sub_menu.command 'Sample           cmd.input = :selection, :word
Snippet'                                   cmd.invoke do |context|
    end                                      word = $stdin.gets
  end                                        context.exit_discard if word.nil?
end                                          print word.swapcase
                                           end
                                         end
3. Commands : scope

 •   명령이 수행되는 스코프를 지정. 스코프가 지정되지 않으면, 모든 스코프를 대상으로 실행
      Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-Scopes



 • Name Selector / Dotted Name Selector

       ex. text
     text, text.html, text.html.ruby 등의 파일명과 매칭. texts.physics는 매칭되지 않음. 프리픽스는 점(dot)
     표현 식으로 종료되는 표현 식만 매칭됨.

 • Descendant Selector

       ex. text.html source.ruby

     “text.html” 내에 존재하는 Ruby 코드 내에 에디터의 커서가 위치하는 경우
     The editor's cursor is within Ruby code which is within HTML

 • Union Selector
     콤마는 OR과 같이 수행됨. 파이프 연산자는 콤마 연산자 보다 연산자의 우선 순위에서 뒤쳐짐

       ex. text.html.ruby, text.html source.ruby
           text.html.ruby | text.html source.ruby
3. Commands : scope (cont’d)
 • Intersection Selector
     2개의 조건이 부합되는 경우에만

       ex. text & source

 • Grouping
     그룹핑

       ex. source & (js | ruby)

 • Negative Lookahead

       ex. text.html – source.ruby
     "source.ruby " 와 매칭되지 않는 모든 "text.html" 스코프


                           Operator   Name(s)
                           ()         Parentheses, Group
                           &          Ampersand, Intersection
 •    연산자 우선 순위
                           <space>    Descendant
                           -          Negative Lookahead, Asymmetric Difference
                           ,          Comma, Or, Union
                           |          Pipe, Or, Union
3. Commands : input

 •       명령이 실행되는 대상의 입력 정의 (INPUT_SPECIFIER에 따름)
         Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-INPUTSPECIFIER




 Specifier                         Description
 :selection                        selected text in the editor
 :left_character                   the character to the immediate left of the caret
 :right_character                  the character to the immediate right of the caret
 :word                             word surrounding the current caret
 :line                             the line containing the caret
 :document                         the entire current document
 :clipboard                        the contents of the clipboard
 :scope                            (NOT YET IMPLEMENTED) As in TextMate: search backwards and forwards for the first cha
                                   racter which is not matched by the scope selector of the command and use those as bou
                                   ndaries for the input.
 :input_from_console               take input from a shell window? How do we specify which console?
 :none                             no input is needed by this command. When encountered in the multiple symbol specifie
                                   r case, this symbol always terminates fallback evaluation
 :selected_lines                   I'm not sure what this does or how it differs from :selection!!!
3. Commands : output

 •   명령의 수행결과 출력대상 정의 (OUTPUT_SPECIFIER에 따름)
     Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-OUTPUTSPECIFIER



Specifier                     Description
:insert_as_text               insert text at the caret position. If there is a selection, the text is inserted immediately foll
                              owing the selection and the selection is lost.
:insert_as_snippet            as with :insert_as_text, but the output is interpreted as snippet expansion text
:replace_selection            replace the currently selected text with the output. If no text is selected, this is equivalent
                              to the :insert_as_text specifier
:replace_document             replace the entire document with the output
:copy_to_clipboard            replace the contents of the clipboard with the output
:show_as_html                 open an html browser window and intepret the output as html
:show_as_tooltip              show a tooltip containing the output
:create_new_document          create a new editor document containing the output
:output_to_console            display the output in a console. HOW DO WE SPECIFY WHICH CONSOLE
:discard                      throw any output away
:replace_selected_lines       what does this do? probably unnecessary
:replace_line                 replace the line around the caret. probably unnecessary
:replace_word                 replace the word around the caret. probably unnecessary
3. Commands : key_binding

•    명령 수행 단축키. 플랫폼에 따라 다르게 지정할 수
     도 있음
                                                                        Key           ...            ...
Specification :
https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSp   ARROW_DOWN    F1             NUMPAD_0
ecification-KeyBindings                                                 ARROW_LEFT    F2             NUMPAD_1
                                                                        ARROW_RIGHT   F3             NUMPAD_2
                                                                        ARROW_UP      F4             NUMPAD_3
                                                                        BREAK         F5             NUMPAD_4
Shortcut            Platform             Key                            BS            F6             NUMPAD_5
M1                  OS X                 COMMAND                        CAPS_LOCK     F7             NUMPAD_6
M1                  Other Platforms CONTROL (CTRL)                      CR            F8             NUMPAD_7
M2                  All Platforms        SHIFT                          DEL           F9             NUMPAD_8
M3                  OS X                 OPTION                         END           F10            NUMPAD_9
M3                  Other Platforms ALT                                 ESC           F11            NUMPAD_ADD
M4                  OS X                 CONTROL (CTRL)                 HOME          F12            NUMPAD_DECIMAL
                                                                        INSERT        F13            NUMPAD_DIVIDE
                                                                        LF            F14            NUMPAD_ENTER
                                                                        FF            F15            NUMPAD_EQUAL
                                                                        NUL           PRINT_SCREEN   NUMPAD_MULTIPLY
                                                                        PAGE_UP       PAUSE          NUMPAD_SUBTRACT
                                                                        PAGE_DOWN     SCROLL_LOCK    NUM_LOCK
                                                                        SPACE         TAB            VT
3. Commands : invoke

•   실제 명령의 수행을 담당하는 코드
•   Output에 따라 Ruby, HTML 또는 shell script 등을 사용할 수 있다.

     Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-KeyBindings



    command 'Jindo API' do |cmd|
      cmd.key_binding = "ALT+SHIFT+HOME"
      cmd.output = :show_as_html
      cmd.input = :none

      cmd.invoke do |context|
        url = "file://#{File.dirname(ENV['TM_BUNDLE_SUPPORT'])}/views/ko/symbols/$A.html"
        <<-END
        <html><head><title>Jindo
    API</title><style>html,body{width:100%;height:100%}body{margin:0;padding:0}</style></h
    ead>
        <body>
          <iframe src='#{url}' marginwidth=0 marginheight=0 frameborder=0
    style='width:100%;height:100%'></iframe>
        </body>
        </html>
        END
      end
    end
4. Code Assist

 • ScriptDoc spec 소개

   - 2006년경 발표
   - Aptana가 표준화 하려던 JavaScript Documentation 명세
    http://www.scriptdoc.org/ (now has gone!)



 • ScriptDoc (SDOC) 2.0 Specification
   https://wiki.appcelerator.org/display/tis/ScriptDoc+%28SDOC%29+2.0+Specification


 • ScriptDoc XML (SDOCML) 2.0 Specification
   https://wiki.appcelerator.org/display/tis/ScriptDoc+XML+%28SDOCML%29+2.0+Specification
4. Code Assist : ScriptDoc XML

 <?xml version="1.0" encoding="UTF-8"?>
 <javascript>

 <!-- $Jindo -->
 <class type="$Jindo">
   <constructors>
      <constructor>
         <description>$Jindo 객체를 반환한다. $Jindo 객체는 프레임웍에 대한 정보와 유틸리티 함수를 제공한
 다.</description>
         <return-types>
            <return-type type="$Jindo.API" />
         </return-types>
      </constructor>
   </constructors>
 </class>

 <class type="$Jindo.API" superclass="$Jindo">
   <properties>
      <property name="version" type="Number" scope="instance">
         <description>Jindo 버전</description>
      </property>
   </properties>
 </class>

 ...

 </javascript>
4. Code Assist : Enable usage


 bundle.rb
  bundle.project_build_path["Jindo Code Assist"] = "#{File.dirname($0)}/support/jindo.sdocml"




 Project > properties > Project Build Path
5. Simple demo
6. Packaging & installation


  • zip으로 디렉토리를 모두 압축

    설치는 압축된 파일을 플랫폼에 따라 아래 위치에 압축해제

    a. Windows : C:Users사용자Aptana Rubles
    b. MacOS : /User/사용자/Documents/Aptana Rubles/


  • 몇 가지 기억할 점

    - cache.*.yml은 패키징에 포함시키면 안된다.
    - command의 코드에 따라 운영체제에 따른 분기처리가 필요할 수도 있다.
Reference

  Documentation
    https://wiki.appcelerator.org/display/tis/Rubles

  Ruble Specification
    https://wiki.appcelerator.org/display/tis/Ruble+Specification
Thanks.


http://opalang.org/assets/img/psy-jumping.gif

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

perltut
perltutperltut
perltut
 
Characters formats &amp; strimgs
Characters formats  &amp; strimgsCharacters formats  &amp; strimgs
Characters formats &amp; strimgs
 
Php opcodes sep2008
Php opcodes sep2008Php opcodes sep2008
Php opcodes sep2008
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
 
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
 
429 e8d01
429 e8d01429 e8d01
429 e8d01
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!
 
slidesharenew1
slidesharenew1slidesharenew1
slidesharenew1
 
C++ Quick Reference Sheet from Hoomanb.com
C++ Quick Reference Sheet from Hoomanb.comC++ Quick Reference Sheet from Hoomanb.com
C++ Quick Reference Sheet from Hoomanb.com
 
Falcon初印象
Falcon初印象Falcon初印象
Falcon初印象
 
PHP MATERIAL
PHP MATERIALPHP MATERIAL
PHP MATERIAL
 
SQL -PHP Tutorial
SQL -PHP TutorialSQL -PHP Tutorial
SQL -PHP Tutorial
 
C Reference Card (Ansi) 2
C Reference Card (Ansi) 2C Reference Card (Ansi) 2
C Reference Card (Ansi) 2
 
ANSI C REFERENCE CARD
ANSI C REFERENCE CARDANSI C REFERENCE CARD
ANSI C REFERENCE CARD
 
C reference card
C reference cardC reference card
C reference card
 
Shell Script Linux
Shell Script LinuxShell Script Linux
Shell Script Linux
 
Lecture3 php by okello erick
Lecture3 php by okello erickLecture3 php by okello erick
Lecture3 php by okello erick
 

Destacado

S 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineS 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineJessica xiong
 
Establishing effective ort requirements
Establishing effective ort requirementsEstablishing effective ort requirements
Establishing effective ort requirementsAccendo Reliability
 
S 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineS 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineJessica xiong
 
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)Discussion on Support Long Range Cell Operation for GCSE (S1-141011)
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)Yi-Hsueh Tsai
 
Ultrasound of spinal cord in neonates Dr. Muhammad Bin Zulfiqar
Ultrasound of spinal cord in neonates Dr. Muhammad Bin ZulfiqarUltrasound of spinal cord in neonates Dr. Muhammad Bin Zulfiqar
Ultrasound of spinal cord in neonates Dr. Muhammad Bin ZulfiqarDr. Muhammad Bin Zulfiqar
 
Anti-hypertensive drugs for Nursing Students
Anti-hypertensive drugs for Nursing StudentsAnti-hypertensive drugs for Nursing Students
Anti-hypertensive drugs for Nursing StudentsKalaivanisathishr
 
12:25 Yamane - Japanese strategy
12:25 Yamane - Japanese strategy12:25 Yamane - Japanese strategy
12:25 Yamane - Japanese strategyEuro CTO Club
 
Luca Grancini - Contrast management
Luca Grancini - Contrast management Luca Grancini - Contrast management
Luca Grancini - Contrast management Euro CTO Club
 
LesterFranks-CompanyProfile-2015-Web
LesterFranks-CompanyProfile-2015-WebLesterFranks-CompanyProfile-2015-Web
LesterFranks-CompanyProfile-2015-WebJustin Legg
 

Destacado (16)

Ct Cardiac Nvmbr2012
Ct Cardiac Nvmbr2012Ct Cardiac Nvmbr2012
Ct Cardiac Nvmbr2012
 
S 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineS 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt line
 
Case 3
Case 3Case 3
Case 3
 
Establishing effective ort requirements
Establishing effective ort requirementsEstablishing effective ort requirements
Establishing effective ort requirements
 
S 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt lineS 1200-sv high end led lamp smt line
S 1200-sv high end led lamp smt line
 
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)Discussion on Support Long Range Cell Operation for GCSE (S1-141011)
Discussion on Support Long Range Cell Operation for GCSE (S1-141011)
 
PRSENTATIION ON INTERNET
PRSENTATIION ON INTERNETPRSENTATIION ON INTERNET
PRSENTATIION ON INTERNET
 
Emergency Teleradiology SER 2015
Emergency Teleradiology SER 2015Emergency Teleradiology SER 2015
Emergency Teleradiology SER 2015
 
Aortic dissection
Aortic dissectionAortic dissection
Aortic dissection
 
Ultrasound of spinal cord in neonates Dr. Muhammad Bin Zulfiqar
Ultrasound of spinal cord in neonates Dr. Muhammad Bin ZulfiqarUltrasound of spinal cord in neonates Dr. Muhammad Bin Zulfiqar
Ultrasound of spinal cord in neonates Dr. Muhammad Bin Zulfiqar
 
Anti-hypertensive drugs for Nursing Students
Anti-hypertensive drugs for Nursing StudentsAnti-hypertensive drugs for Nursing Students
Anti-hypertensive drugs for Nursing Students
 
13 aimradial2016 thu M Hestbjerg-Poulsen
13 aimradial2016 thu M Hestbjerg-Poulsen13 aimradial2016 thu M Hestbjerg-Poulsen
13 aimradial2016 thu M Hestbjerg-Poulsen
 
03 aimradial2016 fri Y Ikari
03 aimradial2016 fri Y Ikari03 aimradial2016 fri Y Ikari
03 aimradial2016 fri Y Ikari
 
12:25 Yamane - Japanese strategy
12:25 Yamane - Japanese strategy12:25 Yamane - Japanese strategy
12:25 Yamane - Japanese strategy
 
Luca Grancini - Contrast management
Luca Grancini - Contrast management Luca Grancini - Contrast management
Luca Grancini - Contrast management
 
LesterFranks-CompanyProfile-2015-Web
LesterFranks-CompanyProfile-2015-WebLesterFranks-CompanyProfile-2015-Web
LesterFranks-CompanyProfile-2015-Web
 

Similar a How to create Aptana Ruble

C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointJavaTpoint.Com
 
Compiler Design and Construction COSC 5353Project Instructions -
Compiler Design and Construction COSC 5353Project Instructions -Compiler Design and Construction COSC 5353Project Instructions -
Compiler Design and Construction COSC 5353Project Instructions -LynellBull52
 
The Ring programming language version 1.10 book - Part 97 of 212
The Ring programming language version 1.10 book - Part 97 of 212The Ring programming language version 1.10 book - Part 97 of 212
The Ring programming language version 1.10 book - Part 97 of 212Mahmoud Samir Fayed
 
Modularization & Catch Statement
Modularization & Catch StatementModularization & Catch Statement
Modularization & Catch Statementsapdocs. info
 
Exploit techniques - a quick review
Exploit techniques - a quick reviewExploit techniques - a quick review
Exploit techniques - a quick reviewCe.Se.N.A. Security
 
Tutorial de forms 10g
Tutorial de forms 10gTutorial de forms 10g
Tutorial de forms 10gmiguel
 
Lecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxLecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxKhurramKhan173
 
PHP Internals and Virtual Machine
PHP Internals and Virtual MachinePHP Internals and Virtual Machine
PHP Internals and Virtual Machinejulien pauli
 
Hello. I was wondering if I could get some help on this C programmin.pdf
Hello. I was wondering if I could get some help on this C programmin.pdfHello. I was wondering if I could get some help on this C programmin.pdf
Hello. I was wondering if I could get some help on this C programmin.pdffashionfootwear1
 
C programming language tutorial
C programming language tutorial C programming language tutorial
C programming language tutorial javaTpoint s
 
ConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfJuanUnafVargas
 
Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted co...
Chapter 5   modularization & catch statement (paradiso-a45b1d's conflicted co...Chapter 5   modularization & catch statement (paradiso-a45b1d's conflicted co...
Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted co...marco_paradiso
 
Abap function module help
Abap function module helpAbap function module help
Abap function module helpKranthi Kumar
 
Python programming variables and comment
Python programming variables and commentPython programming variables and comment
Python programming variables and commentMalligaarjunanN
 

Similar a How to create Aptana Ruble (20)

C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpoint
 
Compiler Design and Construction COSC 5353Project Instructions -
Compiler Design and Construction COSC 5353Project Instructions -Compiler Design and Construction COSC 5353Project Instructions -
Compiler Design and Construction COSC 5353Project Instructions -
 
The Ring programming language version 1.10 book - Part 97 of 212
The Ring programming language version 1.10 book - Part 97 of 212The Ring programming language version 1.10 book - Part 97 of 212
The Ring programming language version 1.10 book - Part 97 of 212
 
Modularization & Catch Statement
Modularization & Catch StatementModularization & Catch Statement
Modularization & Catch Statement
 
Exploit techniques - a quick review
Exploit techniques - a quick reviewExploit techniques - a quick review
Exploit techniques - a quick review
 
Tutorial de forms 10g
Tutorial de forms 10gTutorial de forms 10g
Tutorial de forms 10g
 
Lecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxLecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptx
 
PHP Internals and Virtual Machine
PHP Internals and Virtual MachinePHP Internals and Virtual Machine
PHP Internals and Virtual Machine
 
Python Functions.pptx
Python Functions.pptxPython Functions.pptx
Python Functions.pptx
 
Python Functions.pptx
Python Functions.pptxPython Functions.pptx
Python Functions.pptx
 
OpenGL SC 2.0 Quick Reference
OpenGL SC 2.0 Quick ReferenceOpenGL SC 2.0 Quick Reference
OpenGL SC 2.0 Quick Reference
 
Hello. I was wondering if I could get some help on this C programmin.pdf
Hello. I was wondering if I could get some help on this C programmin.pdfHello. I was wondering if I could get some help on this C programmin.pdf
Hello. I was wondering if I could get some help on this C programmin.pdf
 
C programming language tutorial
C programming language tutorial C programming language tutorial
C programming language tutorial
 
ConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdfConSteel_14_User_Manual-351-359.pdf
ConSteel_14_User_Manual-351-359.pdf
 
Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted co...
Chapter 5   modularization & catch statement (paradiso-a45b1d's conflicted co...Chapter 5   modularization & catch statement (paradiso-a45b1d's conflicted co...
Chapter 5 modularization & catch statement (paradiso-a45b1d's conflicted co...
 
Abap function module help
Abap function module helpAbap function module help
Abap function module help
 
Meta Object Protocols
Meta Object ProtocolsMeta Object Protocols
Meta Object Protocols
 
printf tricks
printf tricksprintf tricks
printf tricks
 
Python programming variables and comment
Python programming variables and commentPython programming variables and comment
Python programming variables and comment
 
3. functions modules_programs (1)
3. functions modules_programs (1)3. functions modules_programs (1)
3. functions modules_programs (1)
 

Más de Jae Sung Park

[SOSCON 2018] 오픈소스 개발: Behind the scenes
[SOSCON 2018] 오픈소스 개발: Behind the scenes[SOSCON 2018] 오픈소스 개발: Behind the scenes
[SOSCON 2018] 오픈소스 개발: Behind the scenesJae Sung Park
 
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기Jae Sung Park
 
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지Jae Sung Park
 
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기Jae Sung Park
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjsJae Sung Park
 
How jQuery event works
How jQuery event worksHow jQuery event works
How jQuery event worksJae Sung Park
 
현실적 Angular js
현실적 Angular js현실적 Angular js
현실적 Angular jsJae Sung Park
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJSJae Sung Park
 
Web Components & Polymer
Web Components & PolymerWeb Components & Polymer
Web Components & PolymerJae Sung Park
 
모바일 웹 디버깅
모바일 웹 디버깅모바일 웹 디버깅
모바일 웹 디버깅Jae Sung Park
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - PolymerJae Sung Park
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구Jae Sung Park
 
스마트 TV 앱 개발 맛보기
스마트 TV 앱 개발 맛보기스마트 TV 앱 개발 맛보기
스마트 TV 앱 개발 맛보기Jae Sung Park
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 

Más de Jae Sung Park (20)

[SOSCON 2018] 오픈소스 개발: Behind the scenes
[SOSCON 2018] 오픈소스 개발: Behind the scenes[SOSCON 2018] 오픈소스 개발: Behind the scenes
[SOSCON 2018] 오픈소스 개발: Behind the scenes
 
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기
[DEVIEW 2018] JavaScript 배틀그라운드로부터 살아남기
 
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지
[SOSCON 2017] 네이버의 FE 오픈소스: jindo에서 billboard.js까지
 
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
How jQuery event works
How jQuery event worksHow jQuery event works
How jQuery event works
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
 
현실적 Angular js
현실적 Angular js현실적 Angular js
현실적 Angular js
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS
 
Web Components & Polymer
Web Components & PolymerWeb Components & Polymer
Web Components & Polymer
 
모바일 웹 디버깅
모바일 웹 디버깅모바일 웹 디버깅
모바일 웹 디버깅
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer
 
CSS Functions
CSS FunctionsCSS Functions
CSS Functions
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구
 
What's new in IE11
What's new in IE11What's new in IE11
What's new in IE11
 
스마트 TV 앱 개발 맛보기
스마트 TV 앱 개발 맛보기스마트 TV 앱 개발 맛보기
스마트 TV 앱 개발 맛보기
 
Web Audio API
Web Audio APIWeb Audio API
Web Audio API
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 

Último

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Último (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

How to create Aptana Ruble

  • 1. How to create Aptana Ruble 2012.11.01 / 박재성
  • 2. Index 1. Aptana Ruble ? 2. 생성하기 3. Commands 4. Code Assist 5. Simple Demo 6. Packaging & installation
  • 3. 1. Aptana Ruble? Ruble = RUby BundLE • IDE와 에디터 영역의 사용 환경을 Ruby를 사 용해 확장하는 런타임 환경을 의미 • TextMate bundles와 호환
  • 4. 2. 생성하기 Creating a new Ruble : https://wiki.appcelerator.org/display/tis/Creating+a+new+Ruble a. Wizard : New > Ruby Project > b. Modifying existing ruble Commands > [Ruble Name] > Edit this bundle
  • 5. 2. 생성하기 : bundle.rb bundle.rb require 'ruble' bundle do |bundle| bundle.display_name = 'Test Plugin' bundle.author = 'My Name' bundle.copyright = <<END (c) Copyright 2011 sample.org. Distributed under MIT license. END bundle.description = <<END Sample description END # uncomment with the url to the git repo if one exists # bundle.repository = 'git@github.com:username/repo-name.git' # Use Commands > Bundle Development > Insert Bundle Section > Menu # to easily add new sections bundle.menu 'Test Plugin' do |menu| menu.command 'Swap Case' menu.command 'Sample Snippet' menu.separator menu.menu 'Sub Menu' do |sub_menu| sub_menu.command 'Sample Snippet' end end end
  • 7. 2. 생성하기 : How command is invoked /commands/commands.rb /bundle.rb require 'ruble' bundle.menu 'Test Plugin' do |menu| menu.command 'Swap Case' command 'Swap Case' do |cmd| menu.command 'Sample Snippet' cmd.key_binding = 'SHIFT+CTRL+A' menu.separator cmd.scope = 'source' menu.menu 'Sub Menu' do |sub_menu| cmd.output = :replace_selection sub_menu.command 'Sample cmd.input = :selection, :word Snippet' cmd.invoke do |context| end word = $stdin.gets end context.exit_discard if word.nil? end print word.swapcase end end
  • 8. 3. Commands : scope • 명령이 수행되는 스코프를 지정. 스코프가 지정되지 않으면, 모든 스코프를 대상으로 실행 Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-Scopes • Name Selector / Dotted Name Selector ex. text text, text.html, text.html.ruby 등의 파일명과 매칭. texts.physics는 매칭되지 않음. 프리픽스는 점(dot) 표현 식으로 종료되는 표현 식만 매칭됨. • Descendant Selector ex. text.html source.ruby “text.html” 내에 존재하는 Ruby 코드 내에 에디터의 커서가 위치하는 경우 The editor's cursor is within Ruby code which is within HTML • Union Selector 콤마는 OR과 같이 수행됨. 파이프 연산자는 콤마 연산자 보다 연산자의 우선 순위에서 뒤쳐짐 ex. text.html.ruby, text.html source.ruby text.html.ruby | text.html source.ruby
  • 9. 3. Commands : scope (cont’d) • Intersection Selector 2개의 조건이 부합되는 경우에만 ex. text & source • Grouping 그룹핑 ex. source & (js | ruby) • Negative Lookahead ex. text.html – source.ruby "source.ruby " 와 매칭되지 않는 모든 "text.html" 스코프 Operator Name(s) () Parentheses, Group & Ampersand, Intersection • 연산자 우선 순위 <space> Descendant - Negative Lookahead, Asymmetric Difference , Comma, Or, Union | Pipe, Or, Union
  • 10. 3. Commands : input • 명령이 실행되는 대상의 입력 정의 (INPUT_SPECIFIER에 따름) Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-INPUTSPECIFIER Specifier Description :selection selected text in the editor :left_character the character to the immediate left of the caret :right_character the character to the immediate right of the caret :word word surrounding the current caret :line the line containing the caret :document the entire current document :clipboard the contents of the clipboard :scope (NOT YET IMPLEMENTED) As in TextMate: search backwards and forwards for the first cha racter which is not matched by the scope selector of the command and use those as bou ndaries for the input. :input_from_console take input from a shell window? How do we specify which console? :none no input is needed by this command. When encountered in the multiple symbol specifie r case, this symbol always terminates fallback evaluation :selected_lines I'm not sure what this does or how it differs from :selection!!!
  • 11. 3. Commands : output • 명령의 수행결과 출력대상 정의 (OUTPUT_SPECIFIER에 따름) Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-OUTPUTSPECIFIER Specifier Description :insert_as_text insert text at the caret position. If there is a selection, the text is inserted immediately foll owing the selection and the selection is lost. :insert_as_snippet as with :insert_as_text, but the output is interpreted as snippet expansion text :replace_selection replace the currently selected text with the output. If no text is selected, this is equivalent to the :insert_as_text specifier :replace_document replace the entire document with the output :copy_to_clipboard replace the contents of the clipboard with the output :show_as_html open an html browser window and intepret the output as html :show_as_tooltip show a tooltip containing the output :create_new_document create a new editor document containing the output :output_to_console display the output in a console. HOW DO WE SPECIFY WHICH CONSOLE :discard throw any output away :replace_selected_lines what does this do? probably unnecessary :replace_line replace the line around the caret. probably unnecessary :replace_word replace the word around the caret. probably unnecessary
  • 12. 3. Commands : key_binding • 명령 수행 단축키. 플랫폼에 따라 다르게 지정할 수 도 있음 Key ... ... Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSp ARROW_DOWN F1 NUMPAD_0 ecification-KeyBindings ARROW_LEFT F2 NUMPAD_1 ARROW_RIGHT F3 NUMPAD_2 ARROW_UP F4 NUMPAD_3 BREAK F5 NUMPAD_4 Shortcut Platform Key BS F6 NUMPAD_5 M1 OS X COMMAND CAPS_LOCK F7 NUMPAD_6 M1 Other Platforms CONTROL (CTRL) CR F8 NUMPAD_7 M2 All Platforms SHIFT DEL F9 NUMPAD_8 M3 OS X OPTION END F10 NUMPAD_9 M3 Other Platforms ALT ESC F11 NUMPAD_ADD M4 OS X CONTROL (CTRL) HOME F12 NUMPAD_DECIMAL INSERT F13 NUMPAD_DIVIDE LF F14 NUMPAD_ENTER FF F15 NUMPAD_EQUAL NUL PRINT_SCREEN NUMPAD_MULTIPLY PAGE_UP PAUSE NUMPAD_SUBTRACT PAGE_DOWN SCROLL_LOCK NUM_LOCK SPACE TAB VT
  • 13. 3. Commands : invoke • 실제 명령의 수행을 담당하는 코드 • Output에 따라 Ruby, HTML 또는 shell script 등을 사용할 수 있다. Specification : https://wiki.appcelerator.org/display/tis/Ruble+Specification#RubleSpecification-KeyBindings command 'Jindo API' do |cmd| cmd.key_binding = "ALT+SHIFT+HOME" cmd.output = :show_as_html cmd.input = :none cmd.invoke do |context| url = "file://#{File.dirname(ENV['TM_BUNDLE_SUPPORT'])}/views/ko/symbols/$A.html" <<-END <html><head><title>Jindo API</title><style>html,body{width:100%;height:100%}body{margin:0;padding:0}</style></h ead> <body> <iframe src='#{url}' marginwidth=0 marginheight=0 frameborder=0 style='width:100%;height:100%'></iframe> </body> </html> END end end
  • 14. 4. Code Assist • ScriptDoc spec 소개 - 2006년경 발표 - Aptana가 표준화 하려던 JavaScript Documentation 명세 http://www.scriptdoc.org/ (now has gone!) • ScriptDoc (SDOC) 2.0 Specification https://wiki.appcelerator.org/display/tis/ScriptDoc+%28SDOC%29+2.0+Specification • ScriptDoc XML (SDOCML) 2.0 Specification https://wiki.appcelerator.org/display/tis/ScriptDoc+XML+%28SDOCML%29+2.0+Specification
  • 15. 4. Code Assist : ScriptDoc XML <?xml version="1.0" encoding="UTF-8"?> <javascript> <!-- $Jindo --> <class type="$Jindo"> <constructors> <constructor> <description>$Jindo 객체를 반환한다. $Jindo 객체는 프레임웍에 대한 정보와 유틸리티 함수를 제공한 다.</description> <return-types> <return-type type="$Jindo.API" /> </return-types> </constructor> </constructors> </class> <class type="$Jindo.API" superclass="$Jindo"> <properties> <property name="version" type="Number" scope="instance"> <description>Jindo 버전</description> </property> </properties> </class> ... </javascript>
  • 16. 4. Code Assist : Enable usage bundle.rb bundle.project_build_path["Jindo Code Assist"] = "#{File.dirname($0)}/support/jindo.sdocml" Project > properties > Project Build Path
  • 18. 6. Packaging & installation • zip으로 디렉토리를 모두 압축 설치는 압축된 파일을 플랫폼에 따라 아래 위치에 압축해제 a. Windows : C:Users사용자Aptana Rubles b. MacOS : /User/사용자/Documents/Aptana Rubles/ • 몇 가지 기억할 점 - cache.*.yml은 패키징에 포함시키면 안된다. - command의 코드에 따라 운영체제에 따른 분기처리가 필요할 수도 있다.
  • 19. Reference  Documentation  https://wiki.appcelerator.org/display/tis/Rubles  Ruble Specification  https://wiki.appcelerator.org/display/tis/Ruble+Specification