background preloader

Code

Facebook Twitter

Class: Nokogiri::XML::NodeSet — Documentation for sparklemotion/nokogiri. Inherits: Object Object Nokogiri::XML::NodeSet show all Includes: Enumerable, Searchable Defined in: lib/nokogiri/xml/node_set.rb, ext/nokogiri/xml_node_set.c more... Overview A NodeSet contains a list of Nokogiri::XML::Node objects. Constant Summary Constants included from Searchable Searchable::LOOKS_LIKE_XPATH Instance Attribute Summary collapse #document ⇒ Object The Document this NodeSet is associated with. Instance Method Summary collapse #&(node_set) ⇒ Object Set Intersection — Returns a new NodeSet containing nodes common to the two NodeSets. Methods included from Searchable #at_css, #at_xpath, #search Constructor Details permalink #initialize(document, list = []) {|_self| ... } ⇒ NodeSet Create a NodeSet with document defaulting to list [View source] [View on GitHub] Instance Attribute Details permalink #document ⇒ Object The Document this NodeSet is associated with [View on GitHub] Instance Method Details permalink #&(node_set) ⇒ Object [View source] [View on GitHub] start, length range.

Programming Ruby: The Pragmatic Programmer's Guide. Ruby Regular Expressions: Ruby Study Notes - Best Ruby Guide, Ruby Tutorial. Regular expressions, though cryptic, is a powerful tool for working with text. Ruby has this feature built-in. It's used for pattern-matching and text processing. Many people find regular expressions difficult to use, difficult to read, un-maintainable, and ultimately counterproductive. You may end up using only a modest number of regular expressions in your Ruby and Rails applications. A regular expression is simply a way of specifying a pattern of characters to be matched in a string. You could write a pattern that matches a string containing the text Pune or the text Ruby using the following regular expression: The forward slashes delimit the pattern, which consists of the two things we are matching, separated by a pipe character (|).

The simplest way to find out whether there's a match between a pattern and a string is with the match method. m1 = /Ruby/.match("The future is Ruby") puts m1.class m2 = "The future is Ruby" =~ /Ruby/ puts m2 Literal characters The wildcard character . Capturing multiple matches in Ruby - zzamboni.org. To collect all regex matches in a string into an array, pass the regexp object to the string’s scan() method, e.g.: myarray = mystring.scan(/regex/). Sometimes, it is easier to create a regex to match the delimiters rather than the text you are interested in.

In that case, use the split() method instead, e.g.: myarray = mystring.split(/delimiter/). The split() method discards all regex matches, returning the text between the matches. The scan() method does the opposite. If your regular expression contains capturing groups, scan() returns an array of arrays. Each element in the overall array will contain an array consisting of the overall regex match, plus the text matched by all capturing groups. For me it was not obvious how to emulate Perl’s /g regex modifier in Ruby, to capture all matches in an array, for example.

Expresiones Regulares - Ruby Tutorial. Las expresiones regulares, aunque crípticas, son una poderosa herramienta para trabajar con texto. Son usadas para reconocer patrones y procesar texto. Una expresión regular es una forma de especificar un patrón de caracteres, que será buscado en un string. En Ruby, se crean las expresiones regulares entre //: son objetos del tipo Regexp y pueden ser manipuladas como tales.

La forma más simple de encontrar si una expresión (también funciona con strings) está dentro de un string, es usar el método match o el operador =~: m1 = /Ruby/.match("El futuro es Ruby")puts m1 puts m1.class m2 = "El futuro es Ruby" =~ /Ruby/puts m2 Cualquier caracter que vaya entre barras, se busca exactamente: Algunos caracteres tienen un significado especial en las expresiones regulares. La \ significa "no trates el siguiente carácter como especial". Algunas veces, se busca cualquier caracter en una posición determinada.

Busca 'mazado' y 'cazado'. Una clase de carácter es una lista explícita de caracteres. Expresiones regulares en Ruby – No te dejes intimidar – Primera parte – Mis Ideas. Las expresiones regulares normalmente, se ven desde un punto de vista intimidatorio, bueno así las vi yo mismo y alguna vez a día de hoy también , pero como a todo hay que ponerse a ello y entenderlas, para que dejemos de lado su cara intimidatoria, sea cual sea.

Pero realmente tenemos que preguntarnos ¿Qué nos dejan hacer las expresiones regulares? En el libro de Programming Ruby 1.9 de Dave Thomas, hay un capítulo dedicado a las expresiones regulares (recomiendo leer el libro) que dice algo asó como: . el punto coincide con cualquier carácter excepto una línea nueva | el pipeline es un condicional de una u otra ( ) para agrupar los paréntesis [ ] que coincida cualquier carácter que esté dentro de los corchetes { } coincidencia exacta con las llaves + coincidencias en 1 o más ocurrencias de la expresión anterior \ para poder componer nuestro patrón con elementos especiales como los paréntesis ^ coincidencia al comienzo de la línea $ coincidencia al final de la línea * coincide 0 o más veces ?

The beginners' guide to Redcode, v1.22. Version 1.22 Contents Preface There aren't too many beginners interested in the game of Core War these days. Of course, this is quite natural -- not that many people would consider optimizing assembly code to be fun anyway -- but one reason for the high starting threshold may be the difficulty of finding information on the very basics of the game. True, there are many good documents around, but most of them are either too technical, outdated, too hard to find or simply incomplete.

That is why I decided to write this guide. To be honest, I am still a beginner in this game myself. This guide is intended for the very beginners. The flavor of Redcode used in this guide is (mostly) the current de facto standard, the ICWS '94 Standard Draft with pMARS 0.8 extensions. Important: There is no simple way to teach Redcode-- or any programming language-- in a strictly linear way. To maintain any coherency at all, I've often been forced to show you things and then explain them a few chapters later. (or. GitHub - michelpereira/gamesofcoding: A curated list of games that can teach you how to learn a programming language. Collection Pipeline. Collection pipelines are a programming pattern where you organize some computation as a sequence of operations which compose by taking a collection as output of one operation and feeding it into the next.

(Common operations are filter, map, and reduce.) This pattern is common in functional programming, and also in object-oriented languages which have lambdas. This article describes the pattern with several examples of how to form pipelines, both to introduce the pattern to those unfamiliar with it, and to help people understand the core concepts so they can more easily take ideas from one language to another. The collection pipeline is one of the most common, and pleasing, patterns in software. It's something that's present on the unix command line, the better sorts of OO languages, and gets a lot of attention these days in functional languages.

First encounters I first came across the collection pipeline pattern when I started with Unix. Grep -l 'nosql' bliki/entries . Yielding ruby… more… Convertir a números romanos entre 1 y 999 – Diagrama de flujo. Problema Realizar un algoritmo que permita convertir un número arábigo comprendido entre 1 y 999 a números romanos. Solución Entrada: 697Salida: DCXCVII Se llama a la subrutina Inicializar, donde inicializamos los arreglos correspondientes, luego se solicita al usuario ingrese un numero entre 1 y 999, luego se captura el numero ingresado en la variable “N”, llamamos a la Subrutina ObtenerUnidadesDecenasCentenas para obtener las unidades, decenas y centenas del numero ingresado, luego llamamos a la subrutina ConvertirNumero el cual retornara el numero ingresado en números romanos.

Diagrama de flujo - Convertir numero arabigo a romanos En la subrutina Inicializar se llama a las subrutinas InicializaUnidades, InicializaDecenas, InicializaCentenas. Diagrama de flujo - Subrutina Inicializar En la subrutina InicializaUnidades, Creamos un arreglo Unidad que contiene a los nueve primeros números romanos, Unidad={“”,“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”}, donde Unidad(8)=”VIII”. Convertir a números romanos entre 1 y 99 – Diagrama de flujo. Problema Realizar un algoritmo que permita convertir un número arábigo comprendido entre 1 y 99 a números romanos.

Solución Entrada: 97Salida: XCVII Para solucionar este problema primero llamamos a la subrutina InicializaUnidades, luego a la subrutina InicializaDecenas, se pide al usuario ingrese un número entre 1 y 99, el cual se captura en la variable “N”. Se compara Si el número es mayor o igual a cero (N>=0) Si es Falso (No) Se Muestra el número que corresponde en romanos Si es Verdadero (Si) Se llama a la Subrutina ObtenerUnidadesDecenas, se muestra el número que corresponde en romanos Finaliza.

Diagrama de flujo - Convertir numero arabigo a romanos En la subrutina InicializaUnidades, Creamos un arreglo Unidad que contiene a los nueve primeros números romanos Unidad={“”,“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”}, donde Unidad(3)=”III”. Diagrama de flujo - Subrutina InicializarUnidades Diagrama de flujo - Subrutina InicializaDecenas. Unix - shell command equivalent to pressing enter key on keyboard. Ruby-style-guide/README.md at master · bbatsov/ruby-style-guide. A Guide to Method Chaining.

Method chaining is a very handy technique for invoking multiple methods at once. Not only does it improve the readability of the code, but it also reduces the amount of code needed when interacting with a class or an instance of a class. You have probably already interacted with method chaining in one way or another, especially if you have used ActiveRecord. Remember doing something like this Model.where(…).order(…)? Yep, that is method chaining. This article will be divided into two simple parts: Introduction to method chainingMethod chaining at the class level The first part will cover the basics of method chaining, with step-by-step examples; and the second part will explain how to do method chaining at the class level, be it via explicit method declaration of class methods or by using and extending an additional module.

Are you ready to embark into this awesome journey? Introduction to Method Chaining class Person def name(value) end def age(value) end def introduce end end It worked! 15 Agrupaciones en Ruby - Hash - El blog de Daniel A. Nuñez C. Este tema es muy pero muy importante, ya que nos permite tener practicamente una base de datos accesible de manera dinámica organizado en pares, para entenderlo voy a dar una definición pequeña: Un hash es un grupo de valores donde se organizan por pares, donde existen los llamados llaves o "keys" y los valores respectivos asociados a esos "Keys", la sintaxis es la siguiente: {llave1 => valor1, llave2 => valor2, llave3 => valor3} Las llaves pueden ser un simbolo, un numero, una letra o algun objeto compatible, los valores pueden ser un arreglo, otro hash, letras, numeros, booleans o cualquier objeto compatible, siempre deben estar en los signos de llaves " { " y " } " y el asignador es el operador =>, que genera un "par", ahora los pares deben estar separados por comas "," Asignaciones Un ejemplo: irb(main):134:0> {1=>"as",2=>"bb"} => {1=>"as", 2=>"bb"} Aquí le estamos diciendo que la llave 1 tiene el valor "as" y que la llave 2 tiene el valor "bb" => {:edad=>2, :tipo=>"perro"} => [:edad, :tipo]

Ruby Iterators: Times, Step Loops. RubyKeywordArrayHashString2DCaseClassConsoleConvertDateTimeDuplicatesExceptionFileFormatIfIteratorMathMethodNilNumberRandRecursionRegexpSetSortSplitSubSubstringWhile Iterator. Hash. Hsh == other_hash → true or false click to toggle source Equality—Two hashes are equal if they each contain the same number of keys and if each key-value pair is equal to (according to Object#==) the corresponding elements in the other hash. h1 = { "a" => 1, "c" => 2 } h2 = { 7 => 35, "c" => 2, "a" => 1 } h3 = { "a" => 1, "c" => 2, 7 => 35 } h4 = { "a" => 1, "d" => 2, "f" => 35 } h1 == h2 h2 == h3 h3 == h4 static VALUE rb_hash_equal(VALUE hash1, VALUE hash2) { return hash_equal(hash1, hash2, FALSE); } hsh[key] → value click to toggle source Element Reference—Retrieves the value object corresponding to the key object.

H = { "a" => 100, "b" => 200 } h["a"] h["c"] VALUE rb_hash_aref(VALUE hash, VALUE key) { st_data_t val; if (! Hsh[key] = value → value click to toggle source Element Assignment—Associates the value given by value with the key given by key. key should not have its value changed while it is in use as a key (a String passed as a key will be duplicated and frozen). each → an_enumerator. Entendiendo This — JavaScript. Entendiendo This — JavaScript This es un keyword de JavaScript que tiene un comportamiento muy diferente a otros lenguajes de programación, así para algunos es considerado uno de los grandes errores de diseño del lenguaje. La clave para entender el comportamiento de this, es tener claro donde se invoca, para saber qué objeto le asigna. ¿Donde se está invocando this? Asignación implícita Caso 1 En el primer caso this está siendo invocado dentro de un método. yo.hablar(); // yeison This, hace referencia al objeto, que contiene el método donde se invoca.

Caso 2 En este caso, existe una función que recibe un objeto como parámetro, y le agrega el método hablar, luego, se ejecuta la función sobre dos objetos. let decirNombre = function(obj) { obj.hablar = function() { console.log(this.nombre); };}; decirNombre(juan);decirNombre(Mateo); juan.hablar(); // JuanMateo.hablar(); // Mateo This en este caso hace referencia al objeto que se añade este método.

Caso 3 const ana = Persona(‘Ana’, 30, ‘Clara’); call() Practice coding with fun programming challenges - CodinGame. HTML5 UP! Responsive HTML5 and CSS3 Site Templates. Learn HTML5, CSS3, Javascript - video style tutorials. Free HTML5 Templates | Bringing modern web standards to everyone. How To Style HTML5 Range Slider Across Multiple Browsers.

The range is one of the new input type introduced in HTML5. This input type allows one to input number within the specified range. The browsers will render this input type natively as a slider control. It’s a very intuitive user interface that we commonly find in an App. We can slide the handle bar to the right or left to produce the number within the range. But as you can see above, each browser displays this input type in a slightly different taste that may not sit well with some designers. So in this article, we will show you how to style it in a more unified design form.

Recommended Reading: Creating & Styling Progress Bar With HTML5 In Chrome, Safari, and Opera Safari and Opera are Webkit-based browsers. Webkit provides an easy way to style any input type, including range. From this stage, we can add anything such as border, background color, rounder border and so on. And that’s how we style input type range in a Webkit browser. In Firefox We apply the exact same styles. Final Thought. StackEdit – In-browser markdown editor.