Skip to content

Instantly share code, notes, and snippets.

Avatar

Simone Vittori simonewebdesign

View GitHub Profile
@simonewebdesign
simonewebdesign / self.rb
Last active Apr 3, 2020
A self-reproducing Ruby program
View self.rb
#!/usr/bin/env ruby
puts File.read $0 # This is cheating, I know
@simonewebdesign
simonewebdesign / snake.p8
Created Jul 25, 2019
Snake in PICO-8 — work in progress
View snake.p8
pico-8 cartridge // http://www.pico-8.com
version 16
__lua__
x=64
y=64
dir=nil
l=0
r=1
u=2
d=3
@simonewebdesign
simonewebdesign / example.scss
Last active Jun 18, 2019
Single line text ellipsis truncation SCSS Mixin
View example.scss
.my-class {
@include single-line-truncate;
}
@simonewebdesign
simonewebdesign / README.md
Last active Jan 23, 2019
Easy Search & Replace on an entire file (or STDIN) using sed
View README.md

Even better is probably to have a script.sh file which looks like this (same thing but more readable):

#!/bin/bash
sed "s/FNAME/Simone/g;\
     s/LNAME/Vittori/g;\
     s/EMAIL/myemail@foobar.com/g;"

Just chmod +x script.sh and then use it like:

@simonewebdesign
simonewebdesign / add-label.sh
Last active Oct 9, 2018
Add one or more labels to a GitHub pull request or issue, using GitHub API
View add-label.sh
#!/bin/bash
# This program adds one or more labels to a GitHub issue/PR
username=
owner=
repo=
issue_or_pr_number=
curl -s https://api.github.com/repos/$owner/$repo/issues/$issue_or_pr_number/labels \
@simonewebdesign
simonewebdesign / index.js
Created Jun 5, 2018
JavaScript Array.toSentence - inspired by Ruby's Array#to_sentence
View index.js
// Transforms an array into a sentence.
// Example:
// toSentence(['apples', 'oranges', 'melons']);
// >> "apples, oranges and melons."
export function toSentence(arr) {
if (arr.length === 0) return '';
return arr.length > 1
? `${arr.slice(0, arr.length - 1).join(', ')} and ${arr.slice(-1)}.`
: `${arr[0]}.`;
@simonewebdesign
simonewebdesign / debugging.scss
Last active Nov 8, 2018
Useful CSS snippet for debugging layouts
View debugging.scss
* {
background-color: rgba(0,0,0,.1);
+ * {
background-color: rgba(255,0,0,.1);
+ * {
background-color: rgba(0,255,0,.1);
+ * {
@simonewebdesign
simonewebdesign / index.js
Created Mar 14, 2018
JSON API: Camelize keys in the client (JavaScript) - functional style
View index.js
// Converts 'foo-bar' to 'fooBar'
// Credits: https://stackoverflow.com/a/6661012
export function camelize(str) {
return str.replace(/-([a-z])/g, g => g[1].toUpperCase());
}
function camelizeKeys(obj) {
return Object.assign(...Object.entries(obj).map(
([key, val]) => ({ [camelize(key)]: val })
@simonewebdesign
simonewebdesign / test.js
Created Dec 19, 2017
React PropTypes as mocha unit test errors
View test.js
// Override console.error to run tests
const _console_error = console.error;
console.error = function (msg) {
if (/^Warning: Failed prop type:/.test(msg)) {
it('should pass PropType validation', () => {
throw new AssertionError(msg);
});
}
// Call the real console.error
return _console_error.apply(console, arguments);
@simonewebdesign
simonewebdesign / main.js
Created Sep 25, 2017
Useful JS functions: camelize and parameterize
View main.js
// Converts 'foo-bar' to 'fooBar'
// Credits: https://stackoverflow.com/a/6661012
export function camelize(str) {
return str.replace(/-([a-z])/g, g => g[1].toUpperCase());
}
// Converts 'fooBar' to 'foo-bar'
// Credits: https://gist.github.com/youssman/745578062609e8acac9f
export function parameterize(str) {
You can’t perform that action at this time.