Skip to content

Instantly share code, notes, and snippets.

View just-boris's full-sized avatar
💭
I may be slow to respond.

Boris Serdiuk just-boris

💭
I may be slow to respond.
View GitHub Profile
@just-boris
just-boris / test.js
Created October 20, 2015 09:45
JSUnderhood webdriver.io
"use strict";
var webdriverio = require("webdriverio");
var config = require("../config");
describe("webdriverio spec", function() {
beforeEach(function() {
this.webdriver = webdriverio.remote({
desiredCapabilities: config.capabilities,
host: config.seleniumHost
});
@just-boris
just-boris / unit-test.js
Created October 19, 2015 14:52
JSUnderhood
describe('tests', function() {
function createElement(html, options) {
var wrapper = $('<div></div>');
$(html || "<select></select>").appendTo(wrapper).selectize(options || {});
return wrapper;
}
beforeEach(function () {
var $element = createElement('<select>' +
'<option value="1">Foo</option>' +
@just-boris
just-boris / playbook.yml
Created July 9, 2015 11:57
Multieval deploy recipe
- hosts: multieval
remote_user: just-boris
tasks:
- name: Install packages
sudo: true
apt: name={{item}}
with_items:
- jetty
- nginx
- name: Creates directory
@just-boris
just-boris / index.md
Last active August 29, 2015 14:24
Как проверить javascript сразу во всех браузерах

Недавно я предлагал идею, как можно проверить разницу в исполнении одного и того же кода в разных браузерах.

Теперь эта идея реализована и доступна по адресу multieval.it. Выбираем интересующие браузеры, вводим код, жмем "Evaluate", сравниваем результат.

С помощью этого иструмента можно узнать ответы на разные интересные вопросы.

  • Чему равна высота пустого документа? Разные браузеры имеют разное мнение.
  • Сколько браузеров имеют свойство document.currentScript?
  • Можно ли пользоваться свойством offsetX у событий мыши?
@just-boris
just-boris / index.js
Last active April 10, 2019 20:59
Gulp wrap pipe
/**
* Wrap gulp streams into fail-safe function for better error reporting
* Usage:
* gulp.task('less', wrapPipe(function(success, error) {
* return gulp.src('less/*.less')
* .pipe(less().on('error', error))
* .pipe(gulp.dest('app/css'));
* }));
*/
@just-boris
just-boris / ng-ionSlider.js
Created May 14, 2015 10:29
ionSlider.directive
angular.module('directive.ionSlider', []).directive('ionSlider', ['$document', function($document) {
"use strict";
return {
restrict: 'EA',
require: 'ngModel',
template: '<input type="text" />',
link: function(scope, element, attrs, ngModel) {
var input = element.find('input'),
isDouble = attrs.type === 'double';
input.ionRangeSlider({
@just-boris
just-boris / index.html
Last active August 29, 2015 14:15
CDN or not
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>CDN or not</title>
<script>
if(location.search.indexOf('cdn') > -1) {
document.write(unescape("%3Cscript src='http://yastatic.net/jquery/2.1.3/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
} else {
document.write(unescape("%3Cscript src='jquery.min.js' type='text/javascript'%3E%3C/script%3E"));
@just-boris
just-boris / a.less
Last active August 29, 2015 14:14
Less var mess
@block: widget-a;
.@{block} {
color: red;
}
@just-boris
just-boris / bear.js
Last active August 29, 2015 14:13
Ym-cat
(function() {
var bear = '<img src="http://placebear.com/g/400/200">';
if(typeof modules !== 'undefined') {
modules.define("bear", function(provide) {
provide(bear);
});
} else {
define('bear', bear);
}
})();
@just-boris
just-boris / page.js
Last active August 29, 2015 14:10
Page object proposal
function PageFactory(config) {
function Page(element) {
this.element = element;
this.config = config;
this.get = function(key) {
var item = config[key];
if(!item) {
throw new Error('No item named "'+key+'" provided')
}
if(typeof item === 'string') {