Skip to content

Instantly share code, notes, and snippets.

@juriejan
Created April 19, 2017 11:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juriejan/b6bcb4cbf816d84fb2aeea0a0fc0dd1d to your computer and use it in GitHub Desktop.
Save juriejan/b6bcb4cbf816d84fb2aeea0a0fc0dd1d to your computer and use it in GitHub Desktop.
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<link rel="import" href="../../polymer/polymer.html">
<link rel="import" href="../../iron-validator-behavior/iron-validator-behavior.html">
<script>
class CatsOnlyValidator extends Polymer.mixinBehaviors(
[Polymer.IronValidatorBehavior], Polymer.Element
) {
static get is() { return 'cats-only'; }
validateObject(obj) {
var valid = true;
for (key in obj) {
if (obj[key] !== 'cats') {
valid = false;
break;
}
}
return valid;
}
validate(values) {
if (typeof values === 'object') {
return this.validateObject(values);
} else {
var value = Array.isArray(values) ? values.join('') : values;
return value.match(/^(c|ca|cat|cats)?$/) !== null;
}
}
}
window.customElements.define(CatsOnlyValidator.is, CatsOnlyValidator)
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment