Skip to content

Instantly share code, notes, and snippets.

@rishiip
Created June 5, 2021 07:32
Show Gist options
  • Save rishiip/ff6584251269c5064f09fb00bbd4bfe2 to your computer and use it in GitHub Desktop.
Save rishiip/ff6584251269c5064f09fb00bbd4bfe2 to your computer and use it in GitHub Desktop.
Learning Basic Ruby
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "7c4a9eda",
"metadata": {},
"source": [
"# Basic Ruby Notes"
]
},
{
"cell_type": "markdown",
"id": "f9ee7e5d",
"metadata": {},
"source": [
"### Print"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3af8503e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello\n"
]
}
],
"source": [
"puts \"Hello\";"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f921de6a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello\n"
]
}
],
"source": [
"puts \"Hello\""
]
},
{
"cell_type": "markdown",
"id": "d9a2f927",
"metadata": {},
"source": [
"### Whitespace"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "bb8b013f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = 1\n",
"b = 2"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d31f8f6d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a + b # Interpreted as a+b: local variable"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "24509590",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a +b # Interpreted as a(+b): method call"
]
},
{
"cell_type": "markdown",
"id": "dc3840d0",
"metadata": {},
"source": [
"### Line Endings"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "f806eec9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test +\n",
" continue line\n"
]
}
],
"source": [
"puts \"Test +\n",
" continue line\";"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "200852ac",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a +\n",
" b;"
]
},
{
"cell_type": "markdown",
"id": "3c224fa9",
"metadata": {},
"source": [
"### Multiple lines"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "47f3cc41",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Creating a\n",
" multiple line string\n"
]
}
],
"source": [
"print <<EOF\n",
" Creating a\n",
" multiple line string\n",
"EOF"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3f79665f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Creating a\n",
" multiple line string\n"
]
}
],
"source": [
"print <<\"EOF\";\n",
" Creating a\n",
" multiple line string\n",
"EOF"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b5370926",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"hi\n",
"hello\n"
]
}
],
"source": [
"print <<`EOC` # executing commands\n",
" echo hi\n",
" echo hello\n",
"EOC"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "ab0e454b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" print foo\n",
" print bar\n"
]
}
],
"source": [
"print <<\"foo\", <<\"bar\"\n",
" print foo\n",
"foo\n",
" print bar\n",
"bar"
]
},
{
"cell_type": "markdown",
"id": "2e3ff7a0",
"metadata": {},
"source": [
"### BEGIN Statement"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "7aff79ea",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"begin\n",
"main\n"
]
}
],
"source": [
"puts \"main\"\n",
"\n",
"BEGIN {\n",
" puts \"begin\"\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "f46b3784",
"metadata": {},
"source": [
"### Comments"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "879ded89",
"metadata": {},
"outputs": [],
"source": [
"# One line comment"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "7b8d47ef",
"metadata": {},
"outputs": [],
"source": [
"=begin\n",
"one line\n",
"two lines\n",
"three lines\n",
"=end"
]
},
{
"cell_type": "markdown",
"id": "b5362452",
"metadata": {},
"source": [
"### Variables"
]
},
{
"cell_type": "markdown",
"id": "800d1577",
"metadata": {},
"source": [
" - local: starts with lowercase letter or _\n",
" - instance: starts with @\n",
" - class: starts with @@\n",
" - global: starts with $"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "4c4f7bcd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":total_people"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"$team = \"Team\" # global\n",
"class Person\n",
" @@no_people = 0 # class\n",
" def initialize(id, name, age)\n",
" @id = id # instance\n",
" @name = name\n",
" @age = age\n",
" end\n",
" def print()\n",
" puts \"Id: #@id\\nName: #@name\\nAge: #@age\"\n",
" end\n",
" def total_people()\n",
" @@no_people += 1\n",
" puts \"Total people: #@@no_people\"\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "6dbcab8a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"#<Person:0x00007fb9a50154a8 @id=1, @name=\"Ana\", @age=23>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"person = Person.new(1, \"Ana\", 23)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "1d323506",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Id: 1\n",
"Name: Ana\n",
"Age: 23\n"
]
}
],
"source": [
"person.print"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "89ab6c1c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total people: 1\n"
]
}
],
"source": [
"person.total_people"
]
},
{
"cell_type": "markdown",
"id": "7fc143a4",
"metadata": {},
"source": [
"### Constants"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "b81b640a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pi: 3.14\n"
]
}
],
"source": [
"PI = 3.14\n",
"\n",
"puts \"Pi: #{PI}\""
]
},
{
"cell_type": "markdown",
"id": "f98412a0",
"metadata": {},
"source": [
"### Pseudo-Variables"
]
},
{
"cell_type": "markdown",
"id": "a62ee9da",
"metadata": {},
"source": [
"- self: the receiver object of the current method\n",
"- true: boolean value\n",
"- false: boolean value\n",
"- nil: undefined value\n",
"- \\_\\_FILE__: current source file\n",
"- \\_\\_LINE__: current line number in the source file"
]
},
{
"cell_type": "markdown",
"id": "23f6a0fa",
"metadata": {},
"source": [
"### Variable Types"
]
},
{
"cell_type": "markdown",
"id": "053e8ef1",
"metadata": {},
"source": [
"- integer\n",
"- float\n",
"- string"
]
},
{
"cell_type": "markdown",
"id": "c228a45e",
"metadata": {},
"source": [
"### Strings"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "c79dac99",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Test\""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"Test\""
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "c4fe35cb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Test\""
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'Test'"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a627ec80",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Test with ' apostrophe test\""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'Test with \\' apostrophe test'"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "9b2d62a1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Test with / backslash test\""
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"Test with /\\ backslash test\""
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "9c0ea39e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test \"\\\"\n"
]
}
],
"source": [
"puts 'Test \"\\\\\"'"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "4280e622",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test ' \n"
]
}
],
"source": [
"puts 'Test \\' '"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "b8484942",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Expression: 20\n"
]
}
],
"source": [
"puts \"Expression: #{10+10}\""
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "f256d693",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Hello World!\""
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%{Hello World!}"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "38137510",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\" Hello World! \""
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%Q{ Hello World! }"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "336af4f3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Hello World!\""
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%q[Hello World!]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "0ffcb6b8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"learning_basic_ruby.ipynb\\n\""
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%x!ls!"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "f5d2a72b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"this is test\n"
]
}
],
"source": [
"myStr = String.new(\"THIS IS TEST\")\n",
"test = myStr.downcase\n",
"\n",
"puts \"#{test}\""
]
},
{
"cell_type": "markdown",
"id": "1dfe292b",
"metadata": {},
"source": [
"### Arrays"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "bcf2be67",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[\"Ana\", 23, 1.56]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array = [\"Ana\", 23, 1.56]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "5788b161",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array = Array.new"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "4765ba3c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[nil, nil, nil, nil, nil]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array = Array.new(5)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "4972e31a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.size"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "bea40010",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"array.length"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "506ed3a6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[\"Hello\", \"Hello\", \"Hello\", \"Hello\", \"Hello\"]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"strings = Array.new(5, \"Hello\")"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "ec6e7244",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 2, 4, 6, 8]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"even_numbers = Array.new(5) { |i| i = i * 2}"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "2b038873",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 2, 3]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nums = Array.[](1, 2, 3)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "94fb4a60",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 2, 3]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nums = Array[1, 2, 3]"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "d57a5f93",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits = Array(0..9)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "3e7e0de9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test = [1, 2, 4, 5, 2]\n",
"test.at(2)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "a9feea83",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test[2]"
]
},
{
"cell_type": "markdown",
"id": "4e3b9f01",
"metadata": {},
"source": [
"### Hashes"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "f3f3a3b8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{\"name\"=>\"Ana\", \"age\"=>23, \"heigth\"=>1.56}"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"person = {\"name\" => \"Ana\", \"age\" => 23, \"heigth\" => 1.56}"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "43651ea4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days = Hash.new"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "345abc61",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days = Hash.new( \"days\" )"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "dea67556",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"days\""
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days[\"test\"]"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "4c9b4fdc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{}"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days = Hash.new \"days\""
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "e041b249",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"days\""
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days[4]"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "4349fa77",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{\"sunday\"=>1, \"saturday\"=>7}"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weekends = Hash[\"sunday\" => 1, \"saturday\" => 7]"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "170ade5b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weekends[\"sunday\"]"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "3f1d5d2f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weekends[\"saturday\"]"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "b5e9212b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[\"sunday\", \"saturday\"]"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weekends.keys"
]
},
{
"cell_type": "markdown",
"id": "17567f19",
"metadata": {},
"source": [
"### Ranges"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "ceb7f6d1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1..10"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(1..10)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "bf7ac2a0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1...10"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(1...10)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "95b65cb4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\"]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"('a'..'z').to_a"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "e1f20593",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0..9"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits = 0..9"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "ec625a5a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"true"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits.include?(5)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "ef9dcba5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits.min"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "a23687cb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits.max"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "6e798f72",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[5, 6, 7, 8, 9]"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits.reject {|i| i < 5}"
]
},
{
"cell_type": "markdown",
"id": "0206031a",
"metadata": {},
"source": [
"### Iterators"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "c35b0892",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n"
]
},
{
"data": {
"text/plain": [
"0..9"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"digits.each do |digit|\n",
" puts digit\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "6fa50dea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "da188ffe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"#<Enumerator: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:collect>"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b = Array.new\n",
"b = a.collect"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "74d20516",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b.to_a"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "50b6b3b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"20\n",
"30\n",
"40\n",
"50\n"
]
}
],
"source": [
"a = [1,2,3,4,5]\n",
"b = a.collect{|x| 10*x}\n",
"puts b"
]
},
{
"cell_type": "markdown",
"id": "1f7086ed",
"metadata": {},
"source": [
"### Operators"
]
},
{
"cell_type": "markdown",
"id": "9e4719fb",
"metadata": {},
"source": [
"- Arithmetic: +, -, \\*, /, %, **\n",
"- Comparison: ==, !=, >, <, >=, <=, <=>, ===, .eql?, equal?\n",
"- Assignment: =, +=, -=, *=, /=, %=, **=\n",
"- Bitwise: &, |, ^, ~, <<, >>\n",
"- Logical: and, or, &&, ||, !, not\n",
"- Ternary: ?:\n",
"- Range: .., ...\n",
"- Defined: defined?"
]
},
{
"cell_type": "markdown",
"id": "fba3161e",
"metadata": {},
"source": [
"### Class"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "a22c2c06",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"23"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class Person\n",
" @@age = 23\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "82f50c1e",
"metadata": {},
"source": [
"### Object"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "fb4a6115",
"metadata": {},
"outputs": [
{
"ename": "ArgumentError",
"evalue": "wrong number of arguments (given 0, expected 3)",
"output_type": "error",
"traceback": [
"\u001b[31mArgumentError\u001b[0m: wrong number of arguments (given 0, expected 3)",
"(iruby):4:in `initialize'",
"(iruby):1:in `new'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"person = Person.new"
]
},
{
"cell_type": "markdown",
"id": "9e4d192a",
"metadata": {},
"source": [
"### Custom Method to create objects"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "c81d4d5b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":initialize"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class Person\n",
" @@no_people = 0\n",
" def initialize(id, name, age)\n",
" @id = id\n",
" @name = name\n",
" @age = age\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "528f774b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"#<Person:0x00007fb9a1977e50 @id=1, @name=\"Ana\", @age=23>"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"person = Person.new(1, \"Ana\", 23)"
]
},
{
"cell_type": "markdown",
"id": "3e473c34",
"metadata": {},
"source": [
"### Member Function"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "abdac703",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":sound"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class Cat\n",
" def sound\n",
" puts \"Meow\"\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "3ab9295b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Meow\n"
]
}
],
"source": [
"cat = Cat.new\n",
"cat.sound"
]
},
{
"cell_type": "markdown",
"id": "c3a5647d",
"metadata": {},
"source": [
"### Conditional"
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "9ff04c92",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"b is greater than a\n"
]
}
],
"source": [
"# if...else statement\n",
"\n",
"a = 1\n",
"b = 2\n",
"\n",
"if a > b\n",
" puts \"a is greater than b\"\n",
"elsif a < b\n",
" puts \"b is greater than a\"\n",
"else\n",
" puts \"a is equal b\"\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "9c3a42be",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n"
]
}
],
"source": [
"# if modifier\n",
"\n",
"value = true\n",
"\n",
"puts \"True\" if value"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "8a2163bf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"b is greater than a\n"
]
}
],
"source": [
"# unless statement\n",
"\n",
"a = 1\n",
"b = 2\n",
"\n",
"unless a > b\n",
" puts \"b is greater than a\"\n",
"else\n",
" puts \"a is greater than b or a is equal b\"\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "6662dae9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"False\n"
]
}
],
"source": [
"# unless modifier\n",
"\n",
"value = false\n",
"\n",
"puts \"False\" unless value"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "5359f0a1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Out of range\n"
]
}
],
"source": [
"# case statement\n",
"\n",
"number = 10\n",
"\n",
"case number\n",
"when 0 .. 2\n",
" puts \"Between 0..2\"\n",
"when 3 .. 5\n",
" puts \"Between 3..5\"\n",
"when 6 .. 9\n",
" puts \"Between 6..9\"\n",
"else\n",
" puts \"Out of range\"\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "a9e90823",
"metadata": {},
"source": [
"### Loops"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "a06d6d17",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n"
]
}
],
"source": [
"# while statement\n",
"\n",
"i = 0\n",
"\n",
"while i < 10 do\n",
" puts i\n",
" i += 1\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "39d8929b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n"
]
}
],
"source": [
"# while modifier\n",
"\n",
"i = 0\n",
"\n",
"i+=1 while i < 10\n",
"puts i"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "55830607",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n"
]
}
],
"source": [
"# while modifier\n",
"\n",
"i = 0\n",
"\n",
"begin\n",
" puts i\n",
" i += 1\n",
"end while i < 10"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "5cb78791",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n"
]
}
],
"source": [
"# until statement\n",
"\n",
"i = 0\n",
"\n",
"until i > 10 do\n",
" puts i\n",
" i += 1\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 82,
"id": "300bbe92",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n"
]
}
],
"source": [
"# until modifier\n",
"\n",
"i = 0\n",
"\n",
"i+=1 until i >= 10\n",
"puts i"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "9baa88d7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n"
]
}
],
"source": [
"# until modifier\n",
"\n",
"i = 0\n",
"\n",
"begin\n",
" puts i\n",
" i += 1\n",
"end until i >= 10"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "0f8aa090",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n"
]
},
{
"data": {
"text/plain": [
"0..10"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# for statement\n",
"\n",
"for i in 0..10\n",
" puts i\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 85,
"id": "bb883ade",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n"
]
},
{
"data": {
"text/plain": [
"0..10"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# for each statement\n",
"\n",
"(0..10).each do |i|\n",
" puts i\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "a480251e",
"metadata": {},
"source": [
"- break: terminates the most internal loop\n",
"- next: jumps to the next iteration of the most internal loop\n",
"- redo: restarts the iteration of the most internal loop, whithout checking loop condition\n",
"- retry: restarts from the beginning or restarts the invocation"
]
},
{
"cell_type": "markdown",
"id": "a2807c63",
"metadata": {},
"source": [
"### Methods"
]
},
{
"cell_type": "code",
"execution_count": 86,
"id": "245df62e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":person_method"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def person_method(name=\"Ana\", age=23)\n",
" puts name, age\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 87,
"id": "3a23db53",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ana\n",
"23\n"
]
}
],
"source": [
"person_method"
]
},
{
"cell_type": "code",
"execution_count": 88,
"id": "6cd6b6b4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maria\n",
"22\n"
]
}
],
"source": [
"person_method(\"Maria\", 22)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "62ea9f0d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_return_method"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_return_method\n",
" a = 1\n",
" b = 2\n",
" c =3\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "71bf1234",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_return_method"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "23a9c836",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_no_return"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_no_return\n",
" a = 1\n",
" b = 2\n",
" c = 3\n",
" return\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "712cb03d",
"metadata": {},
"outputs": [],
"source": [
"test_no_return"
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "bd7d3a26",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_one_return"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_one_return\n",
" a = 1\n",
" b = 2\n",
" c = 3\n",
" return a\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "8a33cabd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_one_return"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "2ca814e8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_many_returns"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_many_returns\n",
" a = 1\n",
" b = 2\n",
" c = 3\n",
" return a, b, c\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 96,
"id": "625d7f00",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 2, 3]"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_many_returns"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "274120de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_dinamic_parameters"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_dinamic_parameters(*param)\n",
" for i in 0...param.length\n",
" puts param[i]\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "e8dc2304",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ana\n",
"23\n",
"1.56\n"
]
},
{
"data": {
"text/plain": [
"0...3"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_dinamic_parameters \"Ana\", 23, 1.56"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "59e81ba9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":name"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class Person\n",
" def age(age)\n",
" puts age\n",
" end\n",
" def Person.name(name)\n",
" puts name\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 100,
"id": "a7fee2a0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ana\n"
]
}
],
"source": [
"Person.name(\"Ana\")"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "957ac9f5",
"metadata": {},
"outputs": [
{
"ename": "ArgumentError",
"evalue": "wrong number of arguments (given 0, expected 3)",
"output_type": "error",
"traceback": [
"\u001b[31mArgumentError\u001b[0m: wrong number of arguments (given 0, expected 3)",
"(iruby):3:in `initialize'",
"(iruby):1:in `new'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"person = Person.new\n",
"person.age(23)"
]
},
{
"cell_type": "code",
"execution_count": 102,
"id": "7e7c82d3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":hello_world"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def hello_world\n",
" puts \"Hello World\"\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "cb30565d",
"metadata": {},
"outputs": [],
"source": [
"alias hello hello_world"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "6aca2e0d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello World\n"
]
}
],
"source": [
"hello"
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "13497f12",
"metadata": {},
"outputs": [],
"source": [
"undef hello"
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "c963d7bf",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "undefined local variable or method `hello' for main:Object",
"output_type": "error",
"traceback": [
"\u001b[31mNameError\u001b[0m: undefined local variable or method `hello' for main:Object",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"hello"
]
},
{
"cell_type": "markdown",
"id": "577726c1",
"metadata": {},
"source": [
"### Blocks"
]
},
{
"cell_type": "code",
"execution_count": 107,
"id": "53c05f6a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test\n",
" yield\n",
" puts \"Test\"\n",
" yield\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "a6488bee",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello\n",
"Test\n",
"Hello\n"
]
}
],
"source": [
"test {puts \"Hello\"}"
]
},
{
"cell_type": "code",
"execution_count": 109,
"id": "dd75afb9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_with_param"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_with_param\n",
" yield 2\n",
" puts \"Test\"\n",
" yield 5\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "eae6e075",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n",
"Test\n",
"5\n"
]
}
],
"source": [
"test_with_param {|i| puts i}"
]
},
{
"cell_type": "code",
"execution_count": 111,
"id": "85f038ac",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_with_many_param"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_with_many_param\n",
" yield 1, 2\n",
" puts \"Test\"\n",
" yield 5, 10\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "e3c70dfc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"2\n",
"Test\n",
"5\n",
"10\n"
]
}
],
"source": [
"test_with_many_param {|i, j| puts i, j}"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "f3b2e650",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_block_method"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test_block_method(name, &print_name)\n",
" puts \"Test: #{name}\"\n",
" print_name.call\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "2511caef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test: Ana\n",
"Name test\n"
]
}
],
"source": [
"test_block_method(\"Ana\") {puts \"Name test\"}"
]
},
{
"cell_type": "markdown",
"id": "9af147d7",
"metadata": {},
"source": [
"### Modules and Mixins"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "5e31b951",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":diameter"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"module Circle\n",
" PI = 3.14\n",
" def circumference(r)\n",
" return 2*PI*r\n",
" end\n",
" def diameter(r)\n",
" return 2*r\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 116,
"id": "692aa268",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"31.400000000000002"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"include Circle \n",
"Circle.circumference(5)"
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "86bc16b4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
":test_3"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"module Test_1\n",
" def test_1\n",
" puts \"Test 1\"\n",
" end\n",
"end\n",
"\n",
"module Test_2\n",
" def test_2\n",
" puts \"Test 2\"\n",
" end\n",
"end\n",
"\n",
"class Test\n",
" include Test_1\n",
" include Test_2\n",
" def test_3\n",
" puts \"Test 3\"\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 118,
"id": "286aa3f8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test 1\n",
"Test 2\n",
"Test 3\n"
]
}
],
"source": [
"test = Test.new\n",
"test.test_1\n",
"test.test_2\n",
"test.test_3"
]
},
{
"cell_type": "markdown",
"id": "bd8b06b7",
"metadata": {},
"source": [
"### Date and Time"
]
},
{
"cell_type": "code",
"execution_count": 119,
"id": "1d217371",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.239821 -0300"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time_test = Time.new"
]
},
{
"cell_type": "code",
"execution_count": 120,
"id": "5399b5e8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"2021-06-03 21:31:12.239821 -0300\""
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time_test.inspect"
]
},
{
"cell_type": "code",
"execution_count": 121,
"id": "149f6d2c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.243344 -0300"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"now = Time.now"
]
},
{
"cell_type": "code",
"execution_count": 122,
"id": "e89d8648",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"2021-06-03 21:31:12.243344 -0300\""
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"now.inspect"
]
},
{
"cell_type": "code",
"execution_count": 123,
"id": "ce6ccac5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.246706 -0300"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time = Time.new"
]
},
{
"cell_type": "code",
"execution_count": 124,
"id": "a2e11831",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.year"
]
},
{
"cell_type": "code",
"execution_count": 125,
"id": "27fc2a41",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6"
]
},
"execution_count": 125,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.month"
]
},
{
"cell_type": "code",
"execution_count": 126,
"id": "208a16cf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.day"
]
},
{
"cell_type": "code",
"execution_count": 127,
"id": "d985e3e3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.wday"
]
},
{
"cell_type": "code",
"execution_count": 128,
"id": "44f08ebe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"154"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.yday"
]
},
{
"cell_type": "code",
"execution_count": 129,
"id": "0809ed5e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"21"
]
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.hour"
]
},
{
"cell_type": "code",
"execution_count": 130,
"id": "54db8bd1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"31"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.min"
]
},
{
"cell_type": "code",
"execution_count": 131,
"id": "63ab1886",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12"
]
},
"execution_count": 131,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.sec"
]
},
{
"cell_type": "code",
"execution_count": 132,
"id": "d6e5abc3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"246706"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.usec"
]
},
{
"cell_type": "code",
"execution_count": 133,
"id": "fdafb77e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"-03\""
]
},
"execution_count": 133,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.zone"
]
},
{
"cell_type": "code",
"execution_count": 134,
"id": "b70e5133",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 00:00:00 -0300"
]
},
"execution_count": 134,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Time.local(2021, 6, 3)"
]
},
{
"cell_type": "code",
"execution_count": 135,
"id": "76e77827",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 12:30:00 -0300"
]
},
"execution_count": 135,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Time.local(2021, 6, 3, 12, 30)"
]
},
{
"cell_type": "code",
"execution_count": 136,
"id": "ea171a97",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 12:30:30 -0300"
]
},
"execution_count": 136,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Time.local(2021, 6, 3, 12, 30, 30)"
]
},
{
"cell_type": "code",
"execution_count": 137,
"id": "cea6c5d6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[12, 31, 21, 3, 6, 2021, 4, 154, false, \"-03\"]"
]
},
"execution_count": 137,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# [sec,min,hour,day,month,year,wday,yday,isdst,zone]\n",
"time.to_a"
]
},
{
"cell_type": "code",
"execution_count": 138,
"id": "cb8debef",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12 UTC"
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"values = time.to_a\n",
"\n",
"Time.utc(*values)"
]
},
{
"cell_type": "code",
"execution_count": 139,
"id": "b428ca37",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1622766672"
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# obj to sec\n",
"time = Time.now.to_i"
]
},
{
"cell_type": "code",
"execution_count": 140,
"id": "e4b86f92",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12 -0300"
]
},
"execution_count": 140,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# sec to obj\n",
"Time.at(time)"
]
},
{
"cell_type": "code",
"execution_count": 141,
"id": "d41e49f3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1622766672.27322"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# microsec\n",
"Time.now.to_f"
]
},
{
"cell_type": "code",
"execution_count": 142,
"id": "ddc35732",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.276579 -0300"
]
},
"execution_count": 142,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time = Time.new"
]
},
{
"cell_type": "code",
"execution_count": 143,
"id": "fe31aef7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"-03\""
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.zone"
]
},
{
"cell_type": "code",
"execution_count": 144,
"id": "e61303c2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-10800"
]
},
"execution_count": 144,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.utc_offset"
]
},
{
"cell_type": "code",
"execution_count": 145,
"id": "46b78730",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"false"
]
},
"execution_count": 145,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.isdst"
]
},
{
"cell_type": "code",
"execution_count": 146,
"id": "40236c84",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"false"
]
},
"execution_count": 146,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.utc?"
]
},
{
"cell_type": "code",
"execution_count": 147,
"id": "0bbc2b58",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.276579 -0300"
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.localtime"
]
},
{
"cell_type": "code",
"execution_count": 148,
"id": "bdb19833",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-04 00:31:12.276579 UTC"
]
},
"execution_count": 148,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.gmtime"
]
},
{
"cell_type": "code",
"execution_count": 149,
"id": "d1738126",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.276579 -0300"
]
},
"execution_count": 149,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.getlocal"
]
},
{
"cell_type": "code",
"execution_count": 150,
"id": "e68cdd52",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-04 00:31:12.276579 UTC"
]
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.getutc"
]
},
{
"cell_type": "code",
"execution_count": 151,
"id": "84220797",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"2021-06-04 00:31:12 UTC\""
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.to_s"
]
},
{
"cell_type": "code",
"execution_count": 152,
"id": "d7ef29a0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Fri Jun 4 00:31:12 2021\""
]
},
"execution_count": 152,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.ctime"
]
},
{
"cell_type": "code",
"execution_count": 153,
"id": "26a87b6c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"2021/06/04 00:31:12\""
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time.strftime(\"%Y/%m/%d %H:%M:%S\")"
]
},
{
"cell_type": "code",
"execution_count": 154,
"id": "76933c8f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 21:31:12.294691 -0300"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"now = Time.now"
]
},
{
"cell_type": "code",
"execution_count": 155,
"id": "4a998cf2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 20:31:12.294691 -0300"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"past = now - 3600"
]
},
{
"cell_type": "code",
"execution_count": 156,
"id": "7cb7a033",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2021-06-03 22:31:12.294691 -0300"
]
},
"execution_count": 156,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"future = now + 3600"
]
},
{
"cell_type": "code",
"execution_count": 157,
"id": "060704a6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7200.0"
]
},
"execution_count": 157,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diff = future - past"
]
},
{
"cell_type": "markdown",
"id": "8ce9445c",
"metadata": {},
"source": [
"### File I/O"
]
},
{
"cell_type": "code",
"execution_count": 158,
"id": "d860635f",
"metadata": {},
"outputs": [],
"source": [
"# Print -> puts\n",
"# Input -> gets"
]
},
{
"cell_type": "code",
"execution_count": 159,
"id": "cd947a61",
"metadata": {},
"outputs": [
{
"ename": "Errno::ENOENT",
"evalue": "No such file or directory @ rb_sysopen - test.txt",
"output_type": "error",
"traceback": [
"\u001b[31mErrno::ENOENT\u001b[0m: No such file or directory @ rb_sysopen - test.txt",
"(iruby):1:in `initialize'",
"(iruby):1:in `new'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"file = File.new(\"test.txt\", \"r+\")\n",
"if file\n",
" file.syswrite(\"Teste\\n\")\n",
" file.syswrite(\"Teste 2\")\n",
" file.each_byte {|ch| putc ch; putc ?. }\n",
"else\n",
" puts \"Unable to open file!\"\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 160,
"id": "ba7f1ee2",
"metadata": {},
"outputs": [
{
"ename": "Errno::ENOENT",
"evalue": "No such file or directory @ rb_sysopen - test.txt",
"output_type": "error",
"traceback": [
"\u001b[31mErrno::ENOENT\u001b[0m: No such file or directory @ rb_sysopen - test.txt",
"(iruby):1:in `readlines'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"test = IO.readlines(\"test.txt\")"
]
},
{
"cell_type": "code",
"execution_count": 161,
"id": "f3d732f1",
"metadata": {},
"outputs": [
{
"ename": "Errno::ENOENT",
"evalue": "No such file or directory @ rb_sysopen - test.txt",
"output_type": "error",
"traceback": [
"\u001b[31mErrno::ENOENT\u001b[0m: No such file or directory @ rb_sysopen - test.txt",
"(iruby):1:in `foreach'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"IO.foreach(\"test.txt\"){|block| puts block}"
]
},
{
"cell_type": "code",
"execution_count": 162,
"id": "6e15d180",
"metadata": {},
"outputs": [
{
"ename": "Errno::ENOENT",
"evalue": "No such file or directory @ rb_file_s_rename - (test.txt, test2.txt)",
"output_type": "error",
"traceback": [
"\u001b[31mErrno::ENOENT\u001b[0m: No such file or directory @ rb_file_s_rename - (test.txt, test2.txt)",
"(iruby):1:in `rename'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"File.rename( \"test.txt\", \"test2.txt\" )"
]
},
{
"cell_type": "code",
"execution_count": 163,
"id": "efe9a64e",
"metadata": {},
"outputs": [
{
"ename": "Errno::ENOENT",
"evalue": "No such file or directory @ apply2files - test2.txt",
"output_type": "error",
"traceback": [
"\u001b[31mErrno::ENOENT\u001b[0m: No such file or directory @ apply2files - test2.txt",
"(iruby):1:in `delete'",
"(iruby):1:in `<main>'"
]
}
],
"source": [
"File.delete(\"test2.txt\")"
]
},
{
"cell_type": "code",
"execution_count": 164,
"id": "0bff9663",
"metadata": {},
"outputs": [],
"source": [
"File.open(\"test.txt\") if File::exists?( \"tests.txt\" )"
]
},
{
"cell_type": "code",
"execution_count": 165,
"id": "1f82ceb7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"false"
]
},
"execution_count": 165,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"File.file?( \"test.txt\" )"
]
},
{
"cell_type": "code",
"execution_count": 166,
"id": "3bd4bbc1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 166,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"require 'tmpdir'\n",
" tempfilename = File.join(Dir.tmpdir, \"tingtong\")\n",
" tempfile = File.new(tempfilename, \"w\")\n",
" tempfile.puts \"This is a temporary file\"\n",
" tempfile.close\n",
" File.delete(tempfilename)"
]
},
{
"cell_type": "code",
"execution_count": 167,
"id": "ba760418",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/var/folders/v0/8wvzzyw52vv3dtlp1zrpy8lr0000gn/T/tingtong20210603-6906-9c69wi\n"
]
}
],
"source": [
"require 'tempfile'\n",
" f = Tempfile.new('tingtong')\n",
" f.puts \"Hello\"\n",
" puts f.path\n",
" f.close"
]
},
{
"cell_type": "markdown",
"id": "f9ab858e",
"metadata": {},
"source": [
"### Exceptions"
]
},
{
"cell_type": "code",
"execution_count": 168,
"id": "d7321b84",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"#<IO:0x00007fb99d89a4c8>==#<IO:0x00007fb99d89a4c8>\n"
]
}
],
"source": [
"begin\n",
" file = open(\"/unexistant_file\")\n",
" if file\n",
" puts \"File opened successfully\"\n",
" end\n",
"rescue\n",
" file = STDIN\n",
"end\n",
"print file, \"==\", STDIN, \"\\n\""
]
},
{
"cell_type": "code",
"execution_count": 169,
"id": "c574b179",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A test exception.\n"
]
}
],
"source": [
"begin \n",
" raise 'A test exception.' \n",
"rescue Exception => e \n",
" puts e.message\n",
"end "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Ruby 3.0.1",
"language": "ruby",
"name": "ruby"
},
"language_info": {
"file_extension": ".rb",
"mimetype": "application/x-ruby",
"name": "ruby",
"version": "3.0.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment