Metaprogramming Ruby
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Practical Example of Tcl Command Design in a Qt/C++ Graphical Application Tony Johnson October 18Th, 2017 Tony [email protected]
Practical Example of Tcl Command Design in a Qt/C++ Graphical Application Tony Johnson October 18th, 2017 [email protected] Abstract Tcl provides excellent support for creating complicated user commands in applications that have correct-by-construction built-in help, support for hidden commands, support for position- independent switches, and more. This paper discusses the technical details for how we created one such command in our Qt-based application. Summary In this paper I will discuss the technical details around the design for the Tcl “wave” command in our Qt-based [1] application. Visualizer is a GUI for displaying and analyzing simulation waveforms. It is driven by the user either via standard GUI operations such as menu selections, button clicks, drag and drop, key accelerators, etc or via commands passed in through a command prompt which is a Tcl shell. Because GUI operations are inherently difficult to automate among other reasons, there was a strong need to have a command for our waveform window that could do everything that could be done via the GUI. Since we already had a Tcl shell in our application, the obvious answer was to create a Tcl command to provide this capability. Luckily Tcl is well suited for implementing such a complex command. Background and Motivation Command-based control of graphical user interface interactions is important for many different reasons. The four key reasons that motivated this work were: Testing; User Control; 3rd Party Access; Save/Restore; and Expandability. Testing Unless you want to retest the GUI operations in your application by hand with every major release, minor release, feature addition and bug fix (trust me, you don’t), then you will want to have some way to create automated tests for GUI interactions. -
GNU Grep: Print Lines That Match Patterns Version 3.7, 8 August 2021
GNU Grep: Print lines that match patterns version 3.7, 8 August 2021 Alain Magloire et al. This manual is for grep, a pattern matching engine. Copyright c 1999{2002, 2005, 2008{2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Introduction ::::::::::::::::::::::::::::::::::::: 1 2 Invoking grep :::::::::::::::::::::::::::::::::::: 2 2.1 Command-line Options ::::::::::::::::::::::::::::::::::::::::: 2 2.1.1 Generic Program Information :::::::::::::::::::::::::::::: 2 2.1.2 Matching Control :::::::::::::::::::::::::::::::::::::::::: 2 2.1.3 General Output Control ::::::::::::::::::::::::::::::::::: 3 2.1.4 Output Line Prefix Control :::::::::::::::::::::::::::::::: 5 2.1.5 Context Line Control :::::::::::::::::::::::::::::::::::::: 6 2.1.6 File and Directory Selection:::::::::::::::::::::::::::::::: 7 2.1.7 Other Options ::::::::::::::::::::::::::::::::::::::::::::: 9 2.2 Environment Variables:::::::::::::::::::::::::::::::::::::::::: 9 2.3 Exit Status :::::::::::::::::::::::::::::::::::::::::::::::::::: 12 2.4 grep Programs :::::::::::::::::::::::::::::::::::::::::::::::: 13 3 Regular Expressions ::::::::::::::::::::::::::: 14 3.1 Fundamental Structure :::::::::::::::::::::::::::::::::::::::: -
Cygwin User's Guide
Cygwin User’s Guide Cygwin User’s Guide ii Copyright © Cygwin authors Permission is granted to make and distribute verbatim copies of this documentation provided the copyright notice and this per- mission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this documentation under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this documentation into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Cygwin User’s Guide iii Contents 1 Cygwin Overview 1 1.1 What is it? . .1 1.2 Quick Start Guide for those more experienced with Windows . .1 1.3 Quick Start Guide for those more experienced with UNIX . .1 1.4 Are the Cygwin tools free software? . .2 1.5 A brief history of the Cygwin project . .2 1.6 Highlights of Cygwin Functionality . .3 1.6.1 Introduction . .3 1.6.2 Permissions and Security . .3 1.6.3 File Access . .3 1.6.4 Text Mode vs. Binary Mode . .4 1.6.5 ANSI C Library . .4 1.6.6 Process Creation . .5 1.6.6.1 Problems with process creation . .5 1.6.7 Signals . .6 1.6.8 Sockets . .6 1.6.9 Select . .7 1.7 What’s new and what changed in Cygwin . .7 1.7.1 What’s new and what changed in 3.2 . -
Reglas De Congo: Palo Monte Mayombe) a Book by Lydia Cabrera an English Translation from the Spanish
THE KONGO RULE: THE PALO MONTE MAYOMBE WISDOM SOCIETY (REGLAS DE CONGO: PALO MONTE MAYOMBE) A BOOK BY LYDIA CABRERA AN ENGLISH TRANSLATION FROM THE SPANISH Donato Fhunsu A dissertation submitted to the faculty of the University of North Carolina at Chapel Hill in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Department of English and Comparative Literature (Comparative Literature). Chapel Hill 2016 Approved by: Inger S. B. Brodey Todd Ramón Ochoa Marsha S. Collins Tanya L. Shields Madeline G. Levine © 2016 Donato Fhunsu ALL RIGHTS RESERVED ii ABSTRACT Donato Fhunsu: The Kongo Rule: The Palo Monte Mayombe Wisdom Society (Reglas de Congo: Palo Monte Mayombe) A Book by Lydia Cabrera An English Translation from the Spanish (Under the direction of Inger S. B. Brodey and Todd Ramón Ochoa) This dissertation is a critical analysis and annotated translation, from Spanish into English, of the book Reglas de Congo: Palo Monte Mayombe, by the Cuban anthropologist, artist, and writer Lydia Cabrera (1899-1991). Cabrera’s text is a hybrid ethnographic book of religion, slave narratives (oral history), and folklore (songs, poetry) that she devoted to a group of Afro-Cubans known as “los Congos de Cuba,” descendants of the Africans who were brought to the Caribbean island of Cuba during the trans-Atlantic Ocean African slave trade from the former Kongo Kingdom, which occupied the present-day southwestern part of Congo-Kinshasa, Congo-Brazzaville, Cabinda, and northern Angola. The Kongo Kingdom had formal contact with Christianity through the Kingdom of Portugal as early as the 1490s. -
Scons API Docs Version 4.2
SCons API Docs version 4.2 SCons Project July 31, 2021 Contents SCons Project API Documentation 1 SCons package 1 Module contents 1 Subpackages 1 SCons.Node package 1 Submodules 1 SCons.Node.Alias module 1 SCons.Node.FS module 9 SCons.Node.Python module 68 Module contents 76 SCons.Platform package 85 Submodules 85 SCons.Platform.aix module 85 SCons.Platform.cygwin module 85 SCons.Platform.darwin module 86 SCons.Platform.hpux module 86 SCons.Platform.irix module 86 SCons.Platform.mingw module 86 SCons.Platform.os2 module 86 SCons.Platform.posix module 86 SCons.Platform.sunos module 86 SCons.Platform.virtualenv module 87 SCons.Platform.win32 module 87 Module contents 87 SCons.Scanner package 89 Submodules 89 SCons.Scanner.C module 89 SCons.Scanner.D module 93 SCons.Scanner.Dir module 93 SCons.Scanner.Fortran module 94 SCons.Scanner.IDL module 94 SCons.Scanner.LaTeX module 94 SCons.Scanner.Prog module 96 SCons.Scanner.RC module 96 SCons.Scanner.SWIG module 96 Module contents 96 SCons.Script package 99 Submodules 99 SCons.Script.Interactive module 99 SCons.Script.Main module 101 SCons.Script.SConsOptions module 108 SCons.Script.SConscript module 115 Module contents 122 SCons.Tool package 123 Module contents 123 SCons.Variables package 125 Submodules 125 SCons.Variables.BoolVariable module 125 SCons.Variables.EnumVariable module 125 SCons.Variables.ListVariable module 126 SCons.Variables.PackageVariable module 126 SCons.Variables.PathVariable module 127 Module contents 127 SCons.compat package 129 Module contents 129 Submodules 129 SCons.Action -
Squish Coco 3.3.2 - Copyright ©2015 Froglogic Gmbh CONTENTS
Squish Coco 3.3.2 - Copyright ©2015 froglogic GmbH CONTENTS Contents 1 Introduction 1 1.1 Squish Coco - Code Coverage Tool for Tcl, C# and C/C++ . .1 1.2 CoverageScanner—Instrumentation during the Generation . .2 1.3 CoverageBrowser—View, Analyse, and Manage, Code Coverage Results . .2 I Quick Start and Tutorials 4 2 Synopsis 5 3 Using Squish Coco 6 4 Creating an instrumented project 7 4.1 Installing Squish Coco ..............................................7 4.2 C++ on Microsoft Visual Studio using the Microsoft Visual Studio Add-in . .7 4.3 C# on Microsoft Visual Studio . .8 4.4 Tcl.........................................................9 4.4.1 Using more than one Tcl version on one system . 10 4.5 Command Line Tools . 10 5 Generating Instrumentations Without Modifying Projects 12 5.1 GNU Make . 12 5.2 Microsoft NMake . 12 5.3 Microsoft Visual Studio . 13 5.4 Microsoft MSBuild . 13 5.5 Mono C# XBuild . 13 6 Instrumenting a simple project 14 6.1 UNIX and Apple Mac OS X setup . 14 6.1.1 Setup . 14 6.1.2 Structure of the parser directories . 15 6.1.3 Compiling and testing . 15 6.1.4 Instrumentation . 15 - i - froglogic GmbH CONTENTS 6.1.5 How the project is instrumented . 16 6.1.6 Additional changes . 17 6.2 Microsoft Windows setup . 17 6.2.1 Setup . 17 6.2.2 Structure of the parser directories . 17 6.2.3 Compiling and testing . 18 6.2.4 Instrumentation . 18 6.2.5 How the project is instrumented . 19 6.2.6 Additional changes . -
Aspera CLI User Guide
Aspera Command- Line Interface Guide 3.7.7 Mac OS X Revision: 74 Generated: 09/25/2018 16:52 Contents Introduction............................................................................................................... 3 System Requirements............................................................................................... 3 Installation................................................................................................................. 3 Installing the Aspera CLI.....................................................................................................................................3 Configuring for Faspex.........................................................................................................................................4 Configuring for Aspera on Cloud........................................................................................................................ 4 Uninstalling........................................................................................................................................................... 5 aspera: The Command-Line Transfer Client........................................................ 5 About the Command-Line Client.........................................................................................................................5 Prerequisites.......................................................................................................................................................... 6 aspera Command Reference................................................................................................................................ -
Bash Guide for Beginners
Bash Guide for Beginners Machtelt Garrels Garrels BVBA <tille wants no spam _at_ garrels dot be> Version 1.11 Last updated 20081227 Edition Bash Guide for Beginners Table of Contents Introduction.........................................................................................................................................................1 1. Why this guide?...................................................................................................................................1 2. Who should read this book?.................................................................................................................1 3. New versions, translations and availability.........................................................................................2 4. Revision History..................................................................................................................................2 5. Contributions.......................................................................................................................................3 6. Feedback..............................................................................................................................................3 7. Copyright information.........................................................................................................................3 8. What do you need?...............................................................................................................................4 9. Conventions used in this -
Lab Work 06. Linux Shell. Files Globbing & Streams Redirection
LAB WORK 06. LINUX SHELL. FILES GLOBBING & STREAMS REDIRECTION. 1. PURPOSE OF WORK • Learn to use shell file globbing (wildcard); • Learn basic concepts about standard UNIX/Linux streams redirections; • Acquire skills of working with filter-programs. • Get experience in creating composite commands that have a different functional purpose than the original commands. 2. TASKS FOR WORK NOTE. Start Your UbuntuMini Virtual Machine on your VirtualBox. You need only Linux Terminal to complete the lab tasks. Before completing the tasks, make a Snapshot of your Virtual Linux. If there are problems, you can easily go back to working condition! 2.0. Create new User account for this Lab Work. • Login as student account (user with sudo permissions). • Create new user account, example stud. Use adduser command. (NOTE. You can use the command “userdel –rf stud” to delete stud account from your Linux.) $ sudo adduser stud • Logout from student account (logout) and login as stud. 2.1. Shell File Globbing Study. 2.2. File Globbing Practice. (Fill in a Table 1 and Table 2) 2.3. Command I/O Redirection Study. 2.4. Redirection Practice. (Fill in a Table 3 and Table 4) © Yuriy Shamshin, 2021 1/20 3. REPORT Make a report about this work and send it to the teacher’s email (use a docx Report Blank). REPORT FOR LAB WORK 06: LINUX SHELL. FILES GLOBBING & STREAMS REDIRECTION Student Name Surname Student ID (nV) Date 3.1. Insert Completing Table 1. File globbing understanding. 3.2. Insert Completing Table 2. File globbing creation. 3.3. Insert Completing Table 3. Command I/O redirection understanding. -
Analysis of Domain Specific Languages for GUI Testing: Rspec and Cucumber for Sikuli
Journal of Multidisciplinary Engineering Science and Technology (JMEST) ISSN: 3159-0040 Vol. 2 Issue 1, January - 2015 Analysis of Domain Specific Languages for GUI testing: RSpec and Cucumber for Sikuli Ivan Evgrafov, [email protected] Raimund Hocke Roman S. Samarev, [email protected] Head Developer of SikuliX, Elena V. Smirnova, [email protected] [email protected], Nidderau, Germany Bauman Moscow State Technical University, Russia Abstract – This article is devoted to new usage tions. Little languages are small DSLs that do not include of the domain specific languages (DSL) for software many features found in General Purpose Programming with a Graphical User Interfaces (GUI) testing. This languages (GPLs). The testers use the GPPL in case if paper’s authors are a developers of the enhanced there is no time to create special DSL - in case of the short software Sikulix, the product which targeted for the term software project or if they could not find a proper programs with graphical interface testing. They pro- DSL, or if they could not create their own DSL. And they pose it as a functional basis for DSL. The SikuliX is use a domain-specific language (DSL), a computer lan- considering as an environment for domain specific guage specialized to a particular application domain in languages (DSL and DSEL). The results of two spe- such a case [17]. This is in contrast to a general-purpose cialized testing DSL’s estimation are being presented language (GPPL), which is broadly applicable across do- in this paper: the frameworks Rspec which belongs mains, and lacks specialized features for a particular do- to a Domain Specific Embedded Language (DSEL) main. -
Theine2 Documentation Release Latest
theine2 Documentation Release latest Dec 06, 2019 Contents 1 Installing 3 2 Upgrading 5 3 Using 7 4 Configuration 9 4.1 base_port and max_port.........................................9 4.2 min_free_workers............................................9 4.3 spawn_parallel..............................................9 4.4 silent................................................... 10 5 Speed up Theine 11 5.1 Tell Theine to use CRuby for the client................................. 11 6 Using with Foreman 13 7 Using with Docker 15 8 How it works 17 i ii theine2 Documentation, Release latest Theine is a Rails application pre-loader designed to work on JRuby. It is similar to Zeus, Spring and Spork. The problem with Zeus and Spring is that they use fork which doesn’t work on JRuby. An example: time rails runner"puts Rails.env" 48.31s user 1.96s system 242% cpu 20.748 total # normal time theine runner"puts Rails.env" 0.12s user 0.02s system 32% cpu 0.449 total # Theine Contents 1 theine2 Documentation, Release latest 2 Contents CHAPTER 1 Installing You need to install screen on your system. For example on Ubuntu: sudo apt-get install screen Then install the gem. gem install theine2 3 theine2 Documentation, Release latest 4 Chapter 1. Installing CHAPTER 2 Upgrading If you want to use CRuby for the client, you will probably need to re-run theine_set_ruby after upgrading. 5 theine2 Documentation, Release latest 6 Chapter 2. Upgrading CHAPTER 3 Using Start up the theine server in the root of your Rails project: theine_server or theine_start for a detached -
Squish for Java Data Sheet
Home: www.froglogic.com E-Mail: [email protected] Evaluation: www.froglogic.com/evaluate ...one leap ahead Squish® for Java® DATA SHEET Functional GUI testing is a vital part of the development and QA process of today©s complex GUI applications. Manually testing the GUI of an application is error-prone, unreliable, unpredictable and slow. Automating this process on the other hand, allows to reliably deliver results quickly, enabling developers to find and fix regressions in nearly no time. This does not only save time but also money. Squish for Java is the most powerful automated GUI testing tool for Java™ Swing/AWT, SWT and Eclipse® Rich Client Platform (RCP) applications. Squish for Java offers dedicated support and tight integration for these GUI toolkits. Using the comfortable Squish IDE, tests are created using Squish©s event recorder. Verification and synchronization points can be easily inserted. Squish allows the user to choose between popular and open scripting languages such as Python, JavaScript, Perl and Tcl for test scripts. Therefore the complete set of language features, in addition to Squish©s test-specific APIs can be used to create powerful and robust tests. Squish for Java recognizes all standard Java GUI controls and offers special support for complex widgets such as tree-, table-, list and menu controls. In addition Squish for Java recognizes custom Java controls. Squish for Java©s mechanism to identify Java GUI widgets is very robust to make sure Squish tests will keep working while the application evolves. Squish for Java provides access to the complete Java API via its test scripting languages and offers access to all objects and properties via the Spy and verification point editor.