Skip to content

Commit 9105c2a

Browse files
Merge pull request #139 from ACR1209/ruby-language
Add Ruby Language
2 parents 8c7a655 + 0ac16f0 commit 9105c2a

21 files changed

+819
-1
lines changed

public/consolidated/_index.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
"lang": "REGEX",
4040
"icon": "/icons/regex.svg"
4141
},
42+
{
43+
"lang": "RUBY",
44+
"icon": "/icons/ruby.svg"
45+
},
4246
{
4347
"lang": "RUST",
4448
"icon": "/icons/rust.svg"

public/consolidated/c.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"numbers"
3939
],
4040
"contributors": [],
41-
"code": "#include<stdio.h>\nvoid swap(int* num1,int* num2){\n *num1 = *num1 + *num2;\n *num2 = *num1 - *num2;\n *num1 = *num1 - *num2;\n}\n\n// Usage:\nint a = 3,b = 4;\nswap(&a,&b); // simply use printf after this to print swapped values\n"
41+
"code": "#include<stdio.h>\nvoid swap(int* num1,int* num2){\n *num1 = *num1 + *num2;\n *num2 = *num1 - *num2;\n *num1 = *num1 - *num2;\n}\n\n// Usage:\nint a = 3,b = 4;\nswap(&a,&b); // swaps the values of the a and b variables\n"
4242
}
4343
]
4444
}

public/consolidated/ruby.json

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
[
2+
{
3+
"categoryName": "Array Manipulation",
4+
"snippets": [
5+
{
6+
"title": "Binary Search",
7+
"description": "Searches for an element in a sorted array using binary search.",
8+
"author": "ACR1209",
9+
"tags": [
10+
"array",
11+
"binary-search",
12+
"search"
13+
],
14+
"contributors": [],
15+
"code": "def binary_search(array, target)\n low = 0\n high = array.length - 1\n\n while low <= high\n mid = (low + high) / 2\n guess = array[mid]\n\n if guess == target\n return mid\n elsif guess > target\n high = mid - 1\n else\n low = mid + 1\n end\n end\n\n return nil\nend\n\n# Usage:\narray = [1, 3, 5, 7, 9]\ntarget = 5\nresult = binary_search(array, target)\nputs result # Output: 2\n"
16+
},
17+
{
18+
"title": "Chunk Array",
19+
"description": "Splits an array into chunks of a specified size.",
20+
"author": "ACR1209",
21+
"tags": [
22+
"array",
23+
"chunk"
24+
],
25+
"contributors": [],
26+
"code": "def chunk_array(array, size)\n array.each_slice(size).to_a\nend\n\n# Usage:\narr = [1, 2, 3, 4, 5, 6, 7, 8, 9]\nchunked_arr = chunk_array(arr, 2)\nputs chunked_arr.inspect # Output: [[1, 2], [3, 4], [5, 6], [7, 8], [9]]\n"
27+
},
28+
{
29+
"title": "Matrix Transpose",
30+
"description": "Transposes a 2D matrix.",
31+
"author": "ACR1209",
32+
"tags": [
33+
"array",
34+
"matrix",
35+
"transpose"
36+
],
37+
"contributors": [],
38+
"code": "def transpose_matrix(matrix)\n return [] if matrix.empty?\n return [] if matrix.first.empty?\n\n matrix.first.zip(*matrix[1..-1])\nend\n\n# Usage:\nmatrix = [\n [1, 2, 3],\n [4, 5, 6],\n [7, 8, 9]\n]\nprint transpose_matrix(matrix) # Output: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]\n"
39+
}
40+
]
41+
},
42+
{
43+
"categoryName": "Basics",
44+
"snippets": [
45+
{
46+
"title": "Hello, World!",
47+
"description": "Prints Hello, World! to the terminal.",
48+
"author": "ACR1209",
49+
"tags": [
50+
"printing",
51+
"hello-world",
52+
"utility"
53+
],
54+
"contributors": [],
55+
"code": "puts 'Hello, World!'\n"
56+
}
57+
]
58+
},
59+
{
60+
"categoryName": "Error Handling",
61+
"snippets": [
62+
{
63+
"title": "Custom Error Class",
64+
"description": "Defines and raises a custom error class in Ruby.",
65+
"author": "ACR1209",
66+
"tags": [
67+
"error handling",
68+
"custom error"
69+
],
70+
"contributors": [],
71+
"code": "class MyCustomError < StandardError; end\n\ndef risky_method(value)\n raise MyCustomError, \"Value must be positive\" if value <= 0\n \"Valid value: #{value}\"\nend\n\n# Usage:\nbegin\n puts risky_method(-1)\nrescue MyCustomError => e\n puts e.message # Output: \"Value must be positive\"\nend\n"
72+
}
73+
]
74+
},
75+
{
76+
"categoryName": "Math And Numbers",
77+
"snippets": [
78+
{
79+
"title": "Calculate Compound Interest",
80+
"description": "Calculates compound interest for a given principal amount, rate, and time period.",
81+
"author": "ACR1209",
82+
"tags": [
83+
"math",
84+
"compound interest",
85+
"finance"
86+
],
87+
"contributors": [
88+
"axorax"
89+
],
90+
"code": "def compound_interest(principal, rate, time, n = 1)\n principal * (1 + rate / n) ** (n * time)\nend\n\n# Usage:\nputs compound_interest(1000, 0.05, 5) # Output: 1276.2815625000003\nputs compound_interest(1000, 0.05, 5, 12) # Output: 1283.3586785035118\n"
91+
},
92+
{
93+
"title": "Calculate Factorial",
94+
"description": "Computes the factorial of a given integer.",
95+
"author": "ACR1209",
96+
"tags": [
97+
"math",
98+
"factorial"
99+
],
100+
"contributors": [],
101+
"code": "def factorial(n)\n return 1 if n <= 1\n (2..n).reduce(1, :*)\nend\n\n# Usage:\nputs factorial(5) # Output: 120\n"
102+
},
103+
{
104+
"title": "Check Prime Number",
105+
"description": "Checks if a number is a prime number.",
106+
"author": "ACR1209",
107+
"tags": [
108+
"math",
109+
"prime",
110+
"check"
111+
],
112+
"contributors": [
113+
"dostonnabotov"
114+
],
115+
"code": "def is_prime?(n)\n return false if n <= 1\n (2..Math.sqrt(n)).each do |i|\n return false if n % i == 0\n end\n true\nend\n\n# Usage:\nputs is_prime?(29) # Output: true\nputs is_prime?(30) # Output: false\n"
116+
},
117+
{
118+
"title": "Find all primes up to integer (Sieve of Sundaram)",
119+
"description": "Finds all the prime numbers up to a specific integer.",
120+
"author": "ACR1209",
121+
"tags": [
122+
"math",
123+
"prime numbers"
124+
],
125+
"contributors": [],
126+
"code": "def sieve_of_sundaram(limit)\n n = (limit - 1) / 2\n marked = Array.new(n + 1, false)\n\n (1..n).each do |i|\n j = i\n while (i + j + 2 * i * j) <= n\n marked[i + j + 2 * i * j] = true\n j += 1\n end\n end\n\n primes = [2]\n (1..n).each do |i|\n primes << (2 * i + 1) unless marked[i]\n end\n\n primes\nend\n\n# Usage:\nprint sieve_of_sundaram(30) # Output: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\n"
127+
}
128+
]
129+
},
130+
{
131+
"categoryName": "String Manipulation",
132+
"snippets": [
133+
{
134+
"title": "Capitalize Words",
135+
"description": "Capitalizes the first letter of each word in a string.",
136+
"author": "ACR1209",
137+
"tags": [
138+
"string",
139+
"capitalize",
140+
"words"
141+
],
142+
"contributors": [],
143+
"code": "def capitalize_words(str)\n str.split.map(&:capitalize).join(' ')\nend\n\n# Usage:\nsentence = \"ruby is awesome\"\nputs capitalize_words(sentence) # Output: \"Ruby Is Awesome\"\n"
144+
},
145+
{
146+
"title": "Count Word Occurrences in String",
147+
"description": "Counts the occurrences of each word in a given string.",
148+
"author": "ACR1209",
149+
"tags": [
150+
"string",
151+
"occurrences",
152+
"word-count"
153+
],
154+
"contributors": [],
155+
"code": "def count_word_occurrences(text)\n words = text.downcase.scan(/\\w+/)\n occurrences = Hash.new(0)\n words.each { |word| occurrences[word] += 1 }\n occurrences\nend\n\n# Usage:\ntext = \"ruby is awesome and Ruby is fun\"\nputs count_word_occurrences(text) # Output: {\"ruby\"=>2, \"is\"=>2, \"awesome\"=>1, \"and\"=>1, \"fun\"=>1}\n"
156+
},
157+
{
158+
"title": "Remove Punctuation",
159+
"description": "Removes all punctuation from a given string.",
160+
"author": "ACR1209",
161+
"tags": [
162+
"string",
163+
"punctuation",
164+
"remove"
165+
],
166+
"contributors": [],
167+
"code": "def remove_punctuation(str)\n str.gsub(/[[:punct:]]/, '')\nend\n\n# Usage:\ntext = \"Hello, Ruby! How's it going?\"\nputs remove_punctuation(text) # Output: \"Hello Ruby Hows it going\"\n"
168+
},
169+
{
170+
"title": "Transform Camel Case to Snake Case",
171+
"description": "Converts a Camel or Pascal Case string to Snake case.",
172+
"author": "ACR1209",
173+
"tags": [
174+
"string",
175+
"convert",
176+
"camel-case",
177+
"snake-case",
178+
"pascal-case"
179+
],
180+
"contributors": [],
181+
"code": "def camel_to_snake(str)\n str.gsub(/([A-Z])/, '_\\1').sub(/^_/, '').downcase\nend\n\n# Usage:\ncamel_case = \"camelCaseToSnakeCase\"\npascal_case = \"PascalCaseToSnakeCase\"\nputs camel_to_snake(camel_case) # Output: \"camel_case_to_snake_case\"\nputs camel_to_snake(pascal_case) # Output: \"pascal_case_to_snake_case\"\n"
182+
},
183+
{
184+
"title": "Transform from Snake Case to Camel Case",
185+
"description": "Converts a Snake Case string to Camel Case.",
186+
"author": "ACR1209",
187+
"tags": [
188+
"string",
189+
"convert",
190+
"snake-case",
191+
"camel-case"
192+
],
193+
"contributors": [],
194+
"code": "def snake_to_camel(str)\n str.split('_').map.with_index { |word, index| \n index == 0 ? word : word.capitalize \n }.join\nend\n\n# Usage:\nsnake_case = \"snake_case_to_camel_case\"\nputs snake_to_camel(snake_case) # Output: \"snakeCaseToCamelCase\"\n"
195+
},
196+
{
197+
"title": "Transform from Snake Case to Pascal Case",
198+
"description": "Converts a Snake Case string to Pascal Case.",
199+
"author": "ACR1209",
200+
"tags": [
201+
"string",
202+
"convert",
203+
"snake-case",
204+
"pascal-case"
205+
],
206+
"contributors": [],
207+
"code": "def snake_to_pascal(str)\n str.split('_').map.with_index { |word, index| \n word.capitalize \n }.join\nend\n\n# Usage:\nsnake_case = \"snake_case_to_pascal_case\"\nputs snake_to_pascal(snake_case) # Output: \"SnakeCaseToPascalCase\"\n"
208+
},
209+
{
210+
"title": "Truncate String",
211+
"description": "Truncates a string to a specified length, optionally adding an ellipsis.",
212+
"author": "ACR1209",
213+
"tags": [
214+
"string",
215+
"truncate"
216+
],
217+
"contributors": [],
218+
"code": "def truncate_string(str, max_length)\n return str if str.length <= max_length || max_length <= 3\n str[0, max_length - 3] + '...'\nend\n\n# Usage:\nlong_string = \"Ruby is a dynamic, open source programming language.\"\nputs truncate_string(20, long_string) # Output: \"Ruby is a dynamic...\"\nputs truncate_string(54, long_string) # Output: \"Ruby is a dynamic, open source programming language.\"\n"
219+
}
220+
]
221+
}
222+
]

0 commit comments

Comments
 (0)