Rubymine by Jetbrains

Total Page:16

File Type:pdf, Size:1020Kb

Rubymine by Jetbrains RubyMine by JetBrains Ruby and Rails IDE that provides essential tools for developers. RubyMine brings a whole range of developer tools, all tightly integrated together to create a development environment for productive Ruby development and Web development with Ruby on Rails. RubyMine includes the Smart Ruby Coding Assistance which is an intelligent Ruby code editor, with complete Ruby coding assistance, smart, scope-based and type-aware code completion. RubyMine also includes syntax and error highlighting and code formatting along with code refactoring and intention actions. RubyMine supports Windows, Mac OS X and Linux platforms. What’s new in RubyMine 6? Ruby Language Support - Improved Ruby 2.1 language support with enhanced code insight and a faster debugger. Zeus support - Application check pointer that preloads Rails apps and performs routine tasks in less than a second. Rails – Partial local variables support and general code insight improvements. IDE Improvements - Support for multiple projects. Now you can open all the projects you’re working on in one IDE instance. Debugger - After series of optimizations, the JRuby and Ruby debuggers have become 30% faster. With the latest version RubyMine also provides built in support for gem debugger. Web Development - CSS refactoring that helps automatically extract inline styles. What’s new in RubyMine V5.4? Ready for Rails 4 - RubyMine supports the newest framework features. Nailgun Support - Run JRuby commands without incurring the JVM startup overhead. REST Client - Test RESTful web services right from RubyMine. Simply invoke different requests over HTTP (e.g. GET, POST, PUT and others) to RESTful APIs with various parameters and get response and response headers. Faster HTML and CSS - Significantly re-worked HTML structure views and includes support for Emmet abbreviations in the editor. What’s new in RubyMine V5.0? Ruby iOS Development with RubyMotion - RubyMotion is a toolchain that lets you create native iOS applications using Ruby. CoffeeScript - Debug your CoffeeScript code as you using RubyMine. TextMate Bundles - Share highlighting schemes for programming languages and file types. Ruby 2.0 - Now includes syntax and debugging support. JRuby - Full running and debugging support is now available. Remote Ruby Interpreters - Set up a remote SDK, then run, test and debug your remote app. Gems Development - Create and manage gems and their dependencies. Puppet Support - RubyMine now provides syntax highlighting and code completion for Puppets. Database Tools - Add, drop or rename tables, columns, keys and indices. Fresh Look and Feel - RubyMine 5 comes with a fresh look and feel, and Darcula, a new native dark UI theme for IDE and the editor. What’s new in RubyMine V4? Performance - The new IDE architecture allows more actions to operate asynchronously and to avoid memory blocks. As an example 'Inspect Code' function is now running up to four times faster. Native Gems Code Insight - Auto-completion and code navigation when working with gems that have native components Go to Class by Full Class Name - Any class can now be found by its full name Show Inherited, Types Hierarchy - New options on the Structure and Hierarchy views allow for seeing subtypes and inherited methods. New, Streamlined UI – The RubyMine UI is significantly reworked to be more compact, modern and comfortable on all supported platforms. VCS Support Improvements - General changes to the workflow such as a new 'Digest' view mean spending less time on routine VCS tasks such as pre-commit review. Git log graph - Highlights commits included in a given commit (e.g. commits in a current branch) and provides actions like create tag/branch, checkout revision. GitHub - The bundled GitHub integration got even better and now supports Gists creation for sharing your code instantly from the IDE. Image Diff - You can now compare different image-file versions from version control history in a convenient two-panel view. Event Log View - New 'Event Log' view/tool-window is a single place to see all IDE notifications and take action where needed. Class Dependency Diagram - Shows relationships between any classes and modules in UML notation. Ruby Code Inspection - New code inspections are added for Ruby code verification Code Refactoring - New 'Inline method' refactoring lets you clean code from redundant methods. It substitutes method invocations with method code. Testing and Debugging - Minitest 2.10 and RSpec 2.8 gems are now supported by RubyMine. What’s new in RubyMine V3.0? Rails 3.0 - RubyMine 3.0 provides complete support for Rails 3.0. The complete set of up-to-date developer tools is supported, such as RSpec 2.0, Bundler 1.0, Cucumber 0.9.x and RVM. RubyMine 3 adds an ability to install any Rails gem version from the New Project wizard. Ruby Code Coverage With RCov - Code coverage reports are now available in RubyMine for Rails, Ruby Script, Test::Unit, Shoulda, Cucumber, RSpec run configurations and for Rake tasks. RCov needs to be enabled in the 'Coverage' tab inside run configurations settings and works in both Run and Debug modes. Reliable Ruby/Rails Debugger - RubyMine 3 features a significantly improved Ruby debugger that just works without additional configuration or manual gems installation. Especially for Windows users RubyMine contains a pre-compiled ruby-debug-ide gem bundled to simplify the debugging. Just hit Debug and it works. Better Git Support, Plus Mercurial - Git integration has been improved with new options such as Git log view and Show file history for folder. RubyMine 3.0 also provides out of the box Mercurial VCS integration. JavaScript Debugger - Let RubyMine install a special Mozilla Firefox plugin for you and debug your JavaScript code from RubyMine, in the same debugger UI, with conditional breakpoints, frames/variables/watches views and evaluate expression function. Zen Coding For Fast HTML/CSS Coding - Code HTML and CSS faster—with Zen coding snippets. The snippets work for new code generation and for surrounding existing elements. Integration with Issue Trackers - RubyMine integrates with the following issue trackers: JIRA, JetBrains YouTrack, Lighthouse, Pivotal Tracker, GitHub and Redmine. What’s new in RubyMine V2.0.2? - This IDE update fixes some reported issues, introduces compatibility with the latest Ruby/Rails development libraries and tools, and improves existing integrations: RVM gemsets support added Bundler gem is supported up to version 0.9 RubyMine now bundles pre-compiled ruby-debug gem for Windows users of Ruby 1.8 HAML markup smarter auto-Indentation and other HAML enhancements Cucumber support improvements and fixes What’s new in RubyMine V2.0? Supports Ruby 1.9 and latest Rails New refactorings and duplicates detection Easier Testing with Cucumber, Shoulda and RSpec Web Pages Building With HAML and Sass New Code Inspections and 'Quick Fix' actions Rails i18n and Spell-checker Extending IDE Scripts in Ruby Improved RubyMine UI and usability Continuous Integration with TeamCity What’s new in RubyMine V1.1.1? All RubyMine's version control integration features now work with Subversion 1.6. Improved 'Unresolved Ruby reference', 'Unreachable code' and other Ruby/Rails inspections Fixed some problems in 'Extract Method' and 'Rename' refactorings Resolved some code completion issues and general code editor issues Fixed exceptions in Gem manager Fixed 'Go To Test/Subject' navigation for HAML views Pressing # key converts selected ruby expression to "#{SELECTED_EXPRESSION}" Fixed JRuby debug problem with 'Step over' 'Tools | Rake Tasks' no longer shows undocumented tasks. For undocumented tasks use 'Tools | Run Rake Task' What’s new in RubyMine V1.1? Rails (2.3.x) support - With version 1.1 RubyMine fully supports the latest stable Ruby on Rails framework version 2.3.2 and provides special support for some of the features Application Templates - Select an application template while creating a new Rails project to customize the application skeleton or perform routine tasks on project creation. Localized Views - RubyMine knows views can be localized. They are grouped accordingly when showing in Project view and you can chose which to open when switching to view from an action. Code Insight - render 'show' render 'users/login' HAML syntax highlighting - Now RubyMine simplifies writing Rails views in HAML. Syntax highlighting for the markup and the injected ruby code is only the first step. Future versions will add more assistance for working with this markup language. .
Recommended publications
  • Modern Web Application Frameworks
    MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development.
    [Show full text]
  • Managing Data Constraints in Database-Backed Web Applications
    Managing data constraints in database-backed web applications Junwen Yang Utsav Sethi Cong Yan University of Chicago, USA University of Chicago, USA University of Washington, USA [email protected] [email protected] [email protected] Alvin Cheung Shan Lu University of California, Berkeley University of Chicago, USA USA [email protected] [email protected] ABSTRACT Database-backed web applications manipulate large amounts of … <input value=‘title’ pattern=‘.+’ title=‘invalid title’/> persistent data, and such applications often contain constraints … that restrict data length, data value, and other data properties. Such constraints are critical in ensuring the reliability and usability of Field Type Null Default … these applications. In this paper, we present a comprehensive study on where data constraints are expressed, what they are about, how title varchar(30) NO NULL … often they evolve, and how their violations are handled. The re- sults show that developers struggle with maintaining consistent … data constraints and checking them across different components validates_length_of : title, maximum: 60, message: ‘title is too long’ Mysql::Error and versions of their web applications, leading to various prob- … lems. Guided by our study, we developed checking tools and API enhancements that can automatically detect such problems and Figure 1: Crossstack data constraints improve the quality of such applications. 1 INTRODUCTION 60 characters)” error; finally, she tried a title a little shorter than60 1.1 Motivation characters, but the web page then crashed with all the filled content Constraints are often associated with data used in software. These lost with some unreadable database error displayed. range from describing the expected length, value, uniqueness, and It turned out that different constraints were specified for the other properties of the stored data.
    [Show full text]
  • AN INTRODUCTION by Enrique Canals / @Ecanals ENRIQUE CANALS
    THE BEAUTY OF CSS PRE-PROCESSORS: AN INTRODUCTION by Enrique Canals / @ecanals ENRIQUE CANALS Software Developer @ The Hybrid Group Currently working with Sphero, creating cool things for connecting robots to the internet Worked on several interesting web projects with Pebble Current maintainer of the TextMate SCSS Bundle for syntax highlighting with support for Atom and Sublime @ecanals | www.enriquecanals.com WHAT WE'RE GOING TO COVER IN THIS SESSION PART 1 CSS basics and shortcomings What are CSS pre-processors How pre-processors work and don't work PART 2 Which one do I use? (Sass, Less, Stylus) Workflow Integration Using pre-processors in WordPress theme development PART 1 CSS BASICS AND SHORTCOMINGS BASIC CSS SYNTAX This is the CSS you're used to. html, body { width: 100%; height: 100%; overflow: hidden; } body { background-color: #fff; color: #000; line-height: 1; position: relative; } Simple enough. NOW SOMETHING A LITTLE MORE COMPLEX: .reveal.slide section, .reveal.linear section { -webkit-backface-visibility: hidden; backface-visibility: hidden; } .reveal .slides > section[data-transition=slide].past, .reveal.slide .slides > section:not([data-transition] -webkit-transform: translate(-150%, 0); -ms-transform: translate(-150%, 0); transform: translate(-150%, 0); } .reveal .slides > section[data-transition=slide].future, .reveal.slide .slides > section:not([data-transition] -webkit-transform: translate(150%, 0); -ms-transform: translate(150%, 0); transform: translate(150%, 0); } .reveal .slides > section > section[data-transition=slide].past, .reveal.slide .slides > section > section -webkit-transform: translate(0, -150%); -ms-transform: translate(0, -150%); transform: translate(0, -150%); } .reveal .slides > section > section[data-transition=slide].future, .reveal.slide .slides > section > section -webkit-transform: translate(0, 150%); -ms-transform: translate(0, 150%); transform: translate(0, 150%); } You can see how this get's ugly fast.
    [Show full text]
  • Cross-Platform Mobile Software Development with React Native Pages and Ap- Pendix Pages 27 + 0
    Cross-platform mobile software development with React Native Janne Warén Bachelor’s thesis Degree Programme in ICT 2016 Abstract 9.10.2016 Author Janne Warén Degree programme Business Information Technology Thesis title Number of Cross-platform mobile software development with React Native pages and ap- pendix pages 27 + 0 The purpose of this study was to give an understanding of what React Native is and how it can be used to develop a cross-platform mobile application. The study explains the idea and key features of React Native based on source literature. The key features covered are the Virtual DOM, components, JSX, props and state. I found out that React Native is easy to get started with, and that it’s well-suited for a web programmer. It makes the development process for mobile programming a lot easier com- pared to traditional native approach, it’s easy to see why it has gained popularity fast. However, React Native still a new technology under rapid development, and to fully under- stand what’s happening it would be good to have some knowledge of JavaScript and per- haps React (for the Web) before jumping into React Native. Keywords React Native, Mobile application development, React, JavaScript, API Table of contents 1 Introduction ..................................................................................................................... 1 1.1 Goals and restrictions ............................................................................................. 1 1.2 Definitions and abbreviations ................................................................................
    [Show full text]
  • Internationalization in Ruby 2.4
    Internationalization in Ruby 2.4 http://www.sw.it.aoyama.ac.jp/2016/pub/IUC40-Ruby2.4/ 40th Internationalization and Unicode Conference Santa Clara, California, U.S.A., November 3, 2016 Martin J. DÜRST [email protected] Aoyama Gakuin University © 2016 Martin J. Dürst, Aoyama Gakuin University Abstract Ruby is a purely object-oriented scripting language which is easy to learn for beginners and highly appreciated by experts for its productivity and depth. This presentation discusses the progress of adding internationalization functionality to Ruby for the version 2.4 release expected towards the end of 2016. One focus of the talk will be the currently ongoing implementation of locale-aware case conversion. Since Ruby 1.9, Ruby has a pervasive if somewhat unique framework for character encoding, allowing different applications to choose different internationalization models. In practice, Ruby is most often and most conveniently used with UTF-8. Support for internationalization facilities beyond character encoding has been available via various external libraries. As a result, applications may use conflicting and confusing ways to invoke internationalization functionality. To use case conversion as an example, up to version 2.3, Ruby comes with built-in methods for upcasing and downcasing strings, but these only work on ASCII. Our implementation extends this to the whole Unicode range for version 2.4, and efficiently reuses data already available for case-sensitive matching in regular expressions. We study the interface of internationalization functions/methods in a wide range of programming languages and Ruby libraries. Based on this study, we propose to extend the current built-in Ruby methods, e.g.
    [Show full text]
  • Ruby Best Practices.Pdf
    Ruby Best Practices Ruby Best Practices Gregory Brown foreword by Yukihiro “Matz” Matsumoto Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Ruby Best Practices by Gregory Brown Copyright © 2009 Gregory Brown. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or [email protected]. Editor: Mike Loukides Indexer: Ellen Troutman Zaig Production Editor: Sarah Schneider Cover Designer: Karen Montgomery Copyeditor: Nancy Kotary Interior Designer: David Futato Proofreader: Sada Preisch Illustrator: Robert Romano Printing History: June 2009: First Edition. O’Reilly and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Ruby Best Practices, the image of a green crab, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. In March 2010, this work will be released under the Creative Commons Attribution- Noncommercial-Share Alike 3.0 License.
    [Show full text]
  • Debugging at Full Speed
    Debugging at Full Speed Chris Seaton Michael L. Van De Vanter Michael Haupt Oracle Labs Oracle Labs Oracle Labs University of Manchester michael.van.de.vanter [email protected] [email protected] @oracle.com ABSTRACT Ruby; D.3.4 [Programming Languages]: Processors| Debugging support for highly optimized execution environ- run-time environments, interpreters ments is notoriously difficult to implement. The Truffle/- Graal platform for implementing dynamic languages offers General Terms an opportunity to resolve the apparent trade-off between Design, Performance, Languages debugging and high performance. Truffle/Graal-implemented languages are expressed as ab- Keywords stract syntax tree (AST) interpreters. They enjoy competi- tive performance through platform support for type special- Truffle, deoptimization, virtual machines ization, partial evaluation, and dynamic optimization/deop- timization. A prototype debugger for Ruby, implemented 1. INTRODUCTION on this platform, demonstrates that basic debugging services Although debugging and code optimization are both es- can be implemented with modest effort and without signifi- sential to software development, their underlying technolo- cant impact on program performance. Prototyped function- gies typically conflict. Deploying them together usually de- ality includes breakpoints, both simple and conditional, at mands compromise in one or more of the following areas: lines and at local variable assignments. The debugger interacts with running programs by insert- • Performance: Static compilers
    [Show full text]
  • Shaunak Vairagare Shaunakv1 
    [email protected] Shaunak Vairagare shaunakv1 GIS Web Developer 832-603-9023 1000 Bonieta Harrold Dr #12106 Charleston SC 29414 Innovative software engineer offering eight plus years of experience in Web development and GIS involving full software development lifecycle – from concept through delivery of next- generation applications and customizable solutions. Expert in advanced development methodologies tools and processes. Strong OOP and Design Patterns skills. Deep understanding of OOAD and Agile software development. Creative problem solver and experience in designing software work-flows for complex Geo- spatial applications on web, desktop and mobile platforms. Technical Skills Front End HTML 5, CSS 3, JavaScript, Angular, D3 GIS Servers GeoServer, ArcGIS Server Front End Tools Yeoman, Grunt, Bower Map API OpenLayers, Leaflet, TileMill, Google Maps, BingMaps Web Development Node.js, Ruby on Rails, Spring ESRI ArcGIS Rest, Image Services DevOps Capistrano, Puppet, AWS Stack, Heroku OGC WMS, WFS, GeoJSON, GML, KML, GeoRSS Database MongoDB, MySQL, PostgreSQL, SQL Server GIS Tools ArcGIS, FME, GDAL, LibLAS, Java Topology Suite Servers Apache2, Phusion Passenger, Tomcat GIS Data LiDAR, GeoTIFF, LAS, ShapeFile, GDF Mobile Web PhoneGap , jQuery Mobile, Sencha Touch Carto Databases PostgreSQL/PostGIS , SQL Server Spatial Mobile Native iOS, RubyMotion Data Formats Tele Atlas, NavTeq, Lead Dog, Map My India Languages Ruby, Node.js, Python, Java, ObjectiveC Process & Tools JIRA, Jenkins, Bamboo Work Experience (8+ years)
    [Show full text]
  • Specialising Dynamic Techniques for Implementing the Ruby Programming Language
    SPECIALISING DYNAMIC TECHNIQUES FOR IMPLEMENTING THE RUBY PROGRAMMING LANGUAGE A thesis submitted to the University of Manchester for the degree of Doctor of Philosophy in the Faculty of Engineering and Physical Sciences 2015 By Chris Seaton School of Computer Science This published copy of the thesis contains a couple of minor typographical corrections from the version deposited in the University of Manchester Library. [email protected] chrisseaton.com/phd 2 Contents List of Listings7 List of Tables9 List of Figures 11 Abstract 15 Declaration 17 Copyright 19 Acknowledgements 21 1 Introduction 23 1.1 Dynamic Programming Languages.................. 23 1.2 Idiomatic Ruby............................ 25 1.3 Research Questions.......................... 27 1.4 Implementation Work......................... 27 1.5 Contributions............................. 28 1.6 Publications.............................. 29 1.7 Thesis Structure............................ 31 2 Characteristics of Dynamic Languages 35 2.1 Ruby.................................. 35 2.2 Ruby on Rails............................. 36 2.3 Case Study: Idiomatic Ruby..................... 37 2.4 Summary............................... 49 3 3 Implementation of Dynamic Languages 51 3.1 Foundational Techniques....................... 51 3.2 Applied Techniques.......................... 59 3.3 Implementations of Ruby....................... 65 3.4 Parallelism and Concurrency..................... 72 3.5 Summary............................... 73 4 Evaluation Methodology 75 4.1 Evaluation Philosophy
    [Show full text]
  • View-Centric Performance Optimization for Database-Backed Web Applications
    View-Centric Performance Optimization for Database-Backed Web Applications Junwen Yang1, Cong Yan2, Chengcheng Wan1, Shan Lu1, Alvin Cheung2 1University of Chicago, junwen, cwan, [email protected] 2University of Washington, congy, [email protected] Abstract—Web developers face the stringent task of designing … informative web pages while keeping the page-load time low. <p> … This task has become increasingly challenging as most web <%= @active_projects … > contents are now generated by processing ever-growing amount … </p> of user data stored in back-end databases. It is difficult for developers to understand the cost of generating every web-page … element, not to mention explore and pick the web design with @active_projects = user.projects.active the best trade-off between performance and functionality. In this … paper, we present Panorama, a view-centric and database-aware development environment for web developers. Using database- aware program analysis and novel IDE design, Panorama pro- Fig. 1: Performance understanding challenge vides developers with intuitive information about the cost and the performance-enhancing opportunities behind every HTML file sidebar.html.erb, which produces this sidebar, renders element, as well as suggesting various global code refactorings these projects based on a Ruby variable @active projects that enable developers to easily explore a wide spectrum of embedded in the HTML file; this variable is computed performance and functionality trade-offs. in a controller Ruby file todos controller.rb through a seemingly straightforward assignment @active projects = I. INTRODUCTION user.projects.active. It turns out that this code actually A. Motivation retrieves objects stored in a database, and is translated into High-quality web applications need to provide both good a SQL query by the Rails framework at run time.
    [Show full text]
  • Mobile Site Rewrite
    Mobile Site Rewrite Patrick Reilly — Senior Developer Mobile Wikimedia Foundation Current implementation ● Ruby based mobile gateway utilizing Merb Process: ● A request comes in from a mobile browser ● The request generates a Device object in merb/extensions/request_extension.rb ● The Device object picks a format in Device#format_name ● Any method_missing that Device receives is looked up in the format specification ● The formats are specified in config/formats.yml ● An Article is fetched for that device ● First, the article figures out what kind of parser needed to be run on the page It then generates a key with that parser type. ● It then checks to see if that has been cached ● If it is not cached, it grabs scrapes the Wikipedia page and processes it with some /app/models/parsers/* class ● If it is cached, it returns that cached object ● The layout is generated with the returned Article#html ● The device format is used heavily here (aka, "= current_device.stylesheet_name") ● An "app/views/layouts/search#{format}.html.haml" file is rendered in the search area ● Changes in the search box and CSS fields are the biggest difference between formats Mobile site rewritten in PHP ● Having the site in Ruby causes a number of headaches (for code review, code deployment, and server maintenance) given Wikimedia's mostly PHP-based infrastructure. Rewrite rationale ● Puts the code in our code repo rather than on github ● Easier to review code in a language that most Wikimedia/MediaWiki developers are already using (PHP, instead of Ruby) ● Easier on
    [Show full text]
  • Brno University of Technology a Converter
    BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ A CONVERTER BETWEEN THE LESS AND SASS STYLESHEET FORMATS PŘEKLADAČ MEZI FORMÁTY LESS A SASS BACHELOR’S THESIS BAKALÁŘSKÁ PRÁCE AUTHOR ATTILA VEČEREK AUTOR PRÁCE SUPERVISOR Prof. Ing. TOMÁŠ VOJNAR, Ph.D. VEDOUCÍ PRÁCE BRNO 2016 Abstract The aim of this thesis is to research the differences between the CSS preprocessor languages, namely Less and Sass, and find applicable transformation methods to implement a converter between their dynamic stylesheet formats. A general introduction to the concept of CSS preprocessors is provided first, which is followed by a thorough description of the Lessand Sass language features. In addition to this, all the discovered differences are stated and illustrative examples of the invented conversion methods are provided in this work. This is followed by the description of the design and implementation of the proposed converter. As a part of the contribution of this thesis, a CSS comparison tool based on abstract syntax tree transformation has also been developed. Its design is described along the testing procedure used to verify the invented conversion methods. The last part of the work summerizes the achieved results and the future directions of the converter. Abstrakt Cílem této bakalářské práce je výzkum rozdílů mezi CSS preprocesorovými jazyky, jmen- ovitě Less a Sass, a nalezení použitelných transormačních metod k implementaci překladače mezi jejich formáty. Nejprve je předložen koncept CSS preprocesorů a následuje detailní popis vlastností jazyků Less a Sass. V této práci jsou uvedené všechny zjištěné rozdíly, a pak jsou představeny nové konverzní metody s demonstrativními příklady.
    [Show full text]