From a3da39f5ac630ce2ec898a896eb97430d400565b Mon Sep 17 00:00:00 2001 From: Hamish Friedlander Date: Tue, 1 Dec 2009 07:55:45 +1300 Subject: [PATCH] Rename files in preperation for project rename to jQuery Entwine --- ...oncrete-dist.js => jquery.entwine-dist.js} | 0 spec/legacy/spec-dist.html | 30 +++ spec/{ => legacy}/spec.concrete.basics.js | 0 spec/{ => legacy}/spec.concrete.ctors.js | 0 spec/{ => legacy}/spec.concrete.events.js | 0 spec/{ => legacy}/spec.concrete.namespaces.js | 0 spec/{ => legacy}/spec.concrete.properties.js | 0 spec/{ => legacy}/spec.concrete.super.js | 0 spec/legacy/spec.html | 38 +++ spec/spec.entwine.basics.js | 85 ++++++ spec/spec.entwine.ctors.js | 68 +++++ spec/spec.entwine.events.js | 112 ++++++++ spec/spec.entwine.namespaces.js | 246 ++++++++++++++++++ spec/spec.entwine.properties.js | 102 ++++++++ spec/spec.entwine.super.js | 66 +++++ ...crete.ctors.js => jquery.entwine.ctors.js} | 0 ...d.js => jquery.entwine.dommaybechanged.js} | 0 ...ete.events.js => jquery.entwine.events.js} | 0 src/{jquery.concrete.js => jquery.entwine.js} | 0 ...erties.js => jquery.entwine.properties.js} | 0 20 files changed, 747 insertions(+) rename dist/{jquery.concrete-dist.js => jquery.entwine-dist.js} (100%) create mode 100644 spec/legacy/spec-dist.html rename spec/{ => legacy}/spec.concrete.basics.js (100%) rename spec/{ => legacy}/spec.concrete.ctors.js (100%) rename spec/{ => legacy}/spec.concrete.events.js (100%) rename spec/{ => legacy}/spec.concrete.namespaces.js (100%) rename spec/{ => legacy}/spec.concrete.properties.js (100%) rename spec/{ => legacy}/spec.concrete.super.js (100%) create mode 100644 spec/legacy/spec.html create mode 100644 spec/spec.entwine.basics.js create mode 100644 spec/spec.entwine.ctors.js create mode 100644 spec/spec.entwine.events.js create mode 100644 spec/spec.entwine.namespaces.js create mode 100644 spec/spec.entwine.properties.js create mode 100644 spec/spec.entwine.super.js rename src/{jquery.concrete.ctors.js => jquery.entwine.ctors.js} (100%) rename src/{jquery.concrete.dommaybechanged.js => jquery.entwine.dommaybechanged.js} (100%) rename src/{jquery.concrete.events.js => jquery.entwine.events.js} (100%) rename src/{jquery.concrete.js => jquery.entwine.js} (100%) rename src/{jquery.concrete.properties.js => jquery.entwine.properties.js} (100%) diff --git a/dist/jquery.concrete-dist.js b/dist/jquery.entwine-dist.js similarity index 100% rename from dist/jquery.concrete-dist.js rename to dist/jquery.entwine-dist.js diff --git a/spec/legacy/spec-dist.html b/spec/legacy/spec-dist.html new file mode 100644 index 0000000..e1b5f01 --- /dev/null +++ b/spec/legacy/spec-dist.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + +

JSpec

+
+
+ + \ No newline at end of file diff --git a/spec/spec.concrete.basics.js b/spec/legacy/spec.concrete.basics.js similarity index 100% rename from spec/spec.concrete.basics.js rename to spec/legacy/spec.concrete.basics.js diff --git a/spec/spec.concrete.ctors.js b/spec/legacy/spec.concrete.ctors.js similarity index 100% rename from spec/spec.concrete.ctors.js rename to spec/legacy/spec.concrete.ctors.js diff --git a/spec/spec.concrete.events.js b/spec/legacy/spec.concrete.events.js similarity index 100% rename from spec/spec.concrete.events.js rename to spec/legacy/spec.concrete.events.js diff --git a/spec/spec.concrete.namespaces.js b/spec/legacy/spec.concrete.namespaces.js similarity index 100% rename from spec/spec.concrete.namespaces.js rename to spec/legacy/spec.concrete.namespaces.js diff --git a/spec/spec.concrete.properties.js b/spec/legacy/spec.concrete.properties.js similarity index 100% rename from spec/spec.concrete.properties.js rename to spec/legacy/spec.concrete.properties.js diff --git a/spec/spec.concrete.super.js b/spec/legacy/spec.concrete.super.js similarity index 100% rename from spec/spec.concrete.super.js rename to spec/legacy/spec.concrete.super.js diff --git a/spec/legacy/spec.html b/spec/legacy/spec.html new file mode 100644 index 0000000..f3d45c1 --- /dev/null +++ b/spec/legacy/spec.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + +

JSpec

+
+
+ + \ No newline at end of file diff --git a/spec/spec.entwine.basics.js b/spec/spec.entwine.basics.js new file mode 100644 index 0000000..7b0c23a --- /dev/null +++ b/spec/spec.entwine.basics.js @@ -0,0 +1,85 @@ + +describe 'Concrete' + describe 'Basics' + before + $.concrete.warningLevel = $.concrete.WARN_LEVEL_BESTPRACTISE; + $('body').append('
'); + end + after + $('#dom_test').remove(); + end + + before_each + $.concrete.clear_all_rules(); + $('#dom_test').html('
'); + end + + it 'can attach and call a base function' + $('#a').concrete({ + foo: function(){return this.attr('id');} + }); + $('.a').foo().should.equal 'a' + end + + it 'can attach and call a base function on a selector using a data attribute selection' + $('[data-fieldtype=foo]').concrete({ + foo: function(){return this.attr('id');} + }); + $('.a').foo().should.equal 'a' + end + + it 'can attach and call several base functions' + $('#a').concrete({ + foo: function(){return 'foo_' + this.attr('id');}, + bar: function(){return 'bar_' + this.attr('id');} + }); + $('.a').foo().should.equal 'foo_a' + $('.a').bar().should.equal 'bar_a' + end + + it 'can attach and call a namespaced function' + $.concrete('bar', function($){ + $('#a').concrete({ + foo: function(){return this.attr('id');} + }); + }); + $('.a').concrete('bar').foo().should.equal 'a' + end + + it 'can attach and call a nested namespaced function' + $.concrete('qux.baz.bar', function($){ + $('#a').concrete({ + foo: function(){return this.attr('id');} + }); + }); + $('.a').concrete('qux.baz.bar').foo().should.equal 'a' + end + + it 'can call two functions on two elements' + var res = [] + $('#a').concrete({ + foo: function(){res.push(this.attr('id'));} + }); + $('#b.c').concrete({ + foo: function(){res.push(this.attr('id'));} + }); + $('#dom_test div').foo(); + res.should.eql ['b', 'a'] + end + + it 'can call two namespaced functions on two elements' + var res = [] + $.concrete('bar', function($){ + $('#a').concrete({ + foo: function(){res.push(this.attr('id'));} + }); + $('#b.c').concrete({ + foo: function(){res.push(this.attr('id'));} + }); + }); + $('#dom_test div').concrete('bar').foo(); + res.should.eql ['b', 'a'] + end + + end +end diff --git a/spec/spec.entwine.ctors.js b/spec/spec.entwine.ctors.js new file mode 100644 index 0000000..d002531 --- /dev/null +++ b/spec/spec.entwine.ctors.js @@ -0,0 +1,68 @@ +describe 'Concrete' + describe 'Ctors' + + before + $('body').append('
') + end + + after + $('#dom_test').remove() + end + + before_each + $.concrete.synchronous_mode(); + $.concrete.clear_all_rules() + $('#dom_test').html('
') + end + + it 'calls onmatch when new element created' + var a = false; + $('#b').concrete({onmatch: function(){a = true;} }); + a.should.be_false + $('#a').after('
'); + a.should.be_true + end + + it 'calls onunmatch when new element deleted' + var a = 0; + $('#b').concrete({onmatch: function(){a = 1;}, onunmatch: function(){a = 2;} }); + a.should.equal 0 + $('#a').after('
'); + a.should.equal 1 + $('#b').remove(); + a.should.equal 2 + end + + it 'calls onmatch when ruleset matches after class added' + var a = 0; + $('#a.foo').concrete({onmatch: function(){a = 1;} }); + a.should.equal 0 + $('#a').addClass('foo'); + a.should.equal 1 + end + + it 'calls onmatch in both direct and namespaced onmatch, does not call less specific onmatch' + var a = 0, b=0, c=0, d=0; + $('.foo').concrete({onmatch: function(){a = 1;}}) + $('.foo').concrete('bar', function($){return{onmatch: function(){b = 1;}}}) + $('#a.foo').concrete({onmatch: function(){c = 1;}}) + $('#a.foo').concrete('bar', function($){return{onmatch: function(){d = 1}}}) + [a, b, c, d].should.eql [0, 0, 0, 0] + $('#a').addClass('foo'); + [a, b, c, d].should.eql [0, 0, 1, 1] + end + + it 'calls onmatch in both direct and namespaced onmatch, super works as expected' + var a = 0, b=0, c=0, d=0; + $('.foo').concrete({onmatch: function(){a += 1;}}) + $('.foo').concrete('bar', function($){return{onmatch: function(){b += 1;}}}) + $('#a.foo').concrete({onmatch: function(){this._super(); c = 1; this._super();}}) + $('#a.foo').concrete('bar', function($){return{onmatch: function(){this._super(); d = 1; this._super();}}}) + [a, b, c, d].should.eql [0, 0, 0, 0] + $('#a').addClass('foo'); + [a, b, c, d].should.eql [2, 2, 1, 1] + end + + + end +end \ No newline at end of file diff --git a/spec/spec.entwine.events.js b/spec/spec.entwine.events.js new file mode 100644 index 0000000..2a90f8d --- /dev/null +++ b/spec/spec.entwine.events.js @@ -0,0 +1,112 @@ +describe 'Concrete' + describe 'Events' + + before + $('body').append('
') + end + + after + $('#dom_test').remove() + end + + before_each + $.concrete.synchronous_mode(); + $.concrete.clear_all_rules() + $('#dom_test').html('
') + end + + it 'calls onfoo when foo triggered' + var a = 0; + $('#a').concrete({onfoo: function(){a = 1;} }); + a.should.equal 0 + $('#a').trigger('foo'); + a.should.equal 1 + end + + it 'only calls most specific onfoo when foo triggered' + var a = 0, b = 0; + $('#a.a').concrete({onfoo: function(){a = 1;} }); + $('#a').concrete({onfoo: function(){b = 1;} }); + a.should.equal 0 + b.should.equal 0 + $('#a').trigger('foo'); + a.should.equal 1 + b.should.equal 0 + end + + it 'calls namespaced onfoo when foo triggered' + var a = 0; + $('#a').concrete('bar', function($){return{onfoo: function(){a = 1;} }}); + a.should.equal 0 + $('#a').trigger('foo'); + a.should.equal 1 + end + + it 'calls most specific namespaced onfoo and most specific non-namespaced onfoo when foo triggered' + var a = 0, b = 0, c = 0, d = 0; + $('#a.a').concrete({onfoo: function(){a = 1;} }); + $('#a').concrete({onfoo: function(){b = 1;} }); + $('#a.a').concrete('bar', function($){return{onfoo: function(){c = 1;} }}); + $('#a').concrete('bar', function($){return{onfoo: function(){d = 1;} }}); + [a, b, c, d].should.eql [0, 0, 0, 0] + + $('#a').trigger('foo'); + [a, b, c, d].should.eql [1, 0, 1, 0] + end + + it 'calls up correctly on _super' + var a = 0, b = 0; + $('#a').concrete({onfoo: function(){a += 1;} }); + $('#a.a').concrete({onfoo: function(){this._super(); b += 1; this._super();} }); + + [a, b].should.eql [0, 0] + $('#a').trigger('foo') + [a, b].should.eql [2, 1] + end + + it 'passes event object' + var event; + $('#a').concrete({onfoo: function(e){event = e;} }); + $('#a').trigger('foo'); + event.should.have_prop 'type', 'foo' + $(event.target).should.have_attr 'id', 'a' + end + + it 'delegates submit events to forms' + var a = 0; + $('
').appendTo('#dom_test'); + + $('.foo').concrete({onsubmit: function(e, d){a = 1;} }); + + a.should.eql 0 + $('.foo').trigger('submit'); + a.should.eql 1 + end + + describe 'can pass event data' + it 'on custom events' + var data; + $('#a').concrete({onfoo: function(e, d){data = d;} }); + $('#a').trigger('foo', {cheese: 'burger'}); + data.cheese.should.eql 'burger' + end + + it 'on normal events' + var data; + $('#a').concrete({onclick: function(e, d){data = d;} }); + $('#a').trigger('click', {finger: 'left'}); + data.finger.should.eql 'left' + end + + it 'on submit' + var data; + + $('').appendTo('#dom_test'); + $('.foo').concrete({onsubmit: function(e, d){data = d; return false;} }) + + $('.foo').trigger('submit', {cheese: 'burger'}); + data.cheese.should.eql 'burger' + end + end + end +end \ No newline at end of file diff --git a/spec/spec.entwine.namespaces.js b/spec/spec.entwine.namespaces.js new file mode 100644 index 0000000..5f99bad --- /dev/null +++ b/spec/spec.entwine.namespaces.js @@ -0,0 +1,246 @@ + +describe 'Concrete' + describe 'Namespaces' + before + $('body').append('
') + end + after + $('#dom_test').remove() + end + + before_each + $.concrete.synchronous_mode(); + $.concrete.clear_all_rules() + $('#dom_test').html('
') + end + + it 'namespaced functions work (single definition mode)' + $('#a').concrete('bar', function($){return{ + bar: function(){return 'a';} + }}) + $('#a').concrete('bar').bar().should.equal 'a' + end + + it 'namespaced functions work (block definition mode)' + $.concrete('zap', function($){ + $('#a').concrete({ + bar: function(){return 'a';} + }) + }); + $('#a').concrete('zap').bar().should.equal 'a' + end + + it 'double-namespaced functions work (block definition mode)' + $.concrete('zap', function($){ + $.concrete('pow', function($){ + $('#a').concrete({ + bar: function(){return 'a';} + }) + }) + }) + $('#a').concrete('zap.pow').bar().should.equal 'a' + end + + it 'revert to base namespacing work (block definition mode)' + $.concrete('zap', function($){ + $.concrete('.pow', function($){ + $('#a').concrete({ + bar: function(){return 'a';} + }) + }) + }) + $('#a').concrete('pow').bar().should.equal 'a' + end + + it 'internal to namespace, will look up functions in namespace before in base' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);}, + bar: function(){res.push(2); this.foo();} + }) + $('#a').concrete('bar', function($){return{ + foo: function(){res.push(3);}, + bar: function(){res.push(4); $(this).foo();} + }}) + + $('#dom_test div').bar(); + res.should.eql [2, 1] + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1, 4, 3] + end + + it 'internal to namespace, will look up functions in namespace before in base, even in closure' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);}, + bar: function(){res.push(2); this.foo();} + }) + $('#a').concrete('bar', function($){return{ + foo: function(){res.push(3);}, + bar: function(){res.push(4); $('#a').each(function(){ $(this).foo(); })} + }}) + + $('#dom_test div').bar(); + res.should.eql [2, 1] + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1, 4, 3] + end + + it 'internal to namespace, will look up functions in namespace before in base, even in onmatch' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);}, + bar: function(){res.push(2); this.foo();} + }) + $('#a').concrete('bar', function($){return{ + foo: function(){res.push(3);} + }}) + $('#a.d').concrete('bar', function($){return{ + onmatch: function(){res.push(4); this.foo();} + }}) + + $('#dom_test div').bar(); + res.should.eql [2, 1] + + $('#a').addClass('d'); + res.should.eql [2, 1, 4, 3] + end + + it 'internal to namespace, will look up functions in base when not present in namespace' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);} + }) + $('#a').concrete('bar', function($){return{ + bar: function(){res.push(2); this.foo();} + }}) + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1] + end + + it 'internal to namespace, will not look up functions in base if present in namespace, even when not applicable to selector' + var res = [] + $('#a').concrete('bar', function($){return{ + foo: function(){this.bar();} + }}) + $('#a').concrete({ + bar: function(){res.push(1);} + }) + $('span').concrete('bar', function($){return{ + bar: function(){res.push(2);} + }}) + + $('#a').concrete('bar').foo() + res.should.eql [] + end + + it 'internal to namespace, can be directed to base namespace' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);}, + bar: function(){res.push(2); this.foo();} + }) + $('#a').concrete('bar', function($){return{ + foo: function(){res.push(3);}, + bar: function(){res.push(4); this.foo(); this.concrete('.').foo();} + }}) + $('#dom_test div').bar(); + res.should.eql [2, 1] + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1, 4, 3, 1] + end + + it 'internal to namespace, will look up functions in namespace called the same as a regular jQuery base function' + var res = [] + $('#a').concrete('bar', function($){return{ + load: function(){res.push(1);}, + bar: function(){res.push(2); this.load();} + }}) + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1] + end + + it 'internal to namespace, can be directed to regular jQuery base function' + var res = [] + $.fn.testy = function(){ res.push(1); } + $('#a').concrete('bar', function($){return{ + testy: function(){res.push(3);}, + bar: function(){res.push(2); this.concrete('.').testy();} + }}) + $('#dom_test div').concrete('bar').bar(); + res.should.eql [2, 1] + end + + it 'internal to namespace, can be directed to sub namespace' + var res = [] + $.concrete('zap', function($){ + $('#a').concrete({ + foo: function(){ res.push(1); this.concrete('pow').bar(); } + }) + + $.concrete('pow', function($){ + $('#a').concrete({ + bar: function(){ res.push(2); } + }) + }) + }) + $('#dom_test div').concrete('zap').foo(); + res.should.eql [1, 2] + end + + it 'internal to namespace, can be directed to unrelated namespace' + var res = [] + $.concrete('zap', function($){ + $('#a').concrete({ + foo: function(){ res.push(1); this.concrete('.pow').bar(); } + }) + + $.concrete('pow', function($){ + $('#a').concrete({ + bar: function(){ res.push(2); } + }) + }) + }) + $.concrete('pow', function($){ + $('#a').concrete({ + bar: function(){ res.push(3); } + }) + }) + + $('#dom_test div').concrete('zap').foo(); + res.should.eql [1, 3] + end + + it 'a function passed out of a namespace will remember its namespace' + var res = [] + var func = function(func) { + func.call($('#a, #b')); + } + $('#a, #b').concrete('bar', function($){return{ + zap: function(){res.push($(this).attr('id'));}, + bar: function(){res.push(2); func(this.zap);} + }}) + $('#dom_test #a').concrete('bar').bar(); + res.should.eql [2, 'b', 'a'] + end + + it 'using block functions' + var res = [] + $('#a').concrete({ + foo: function(){res.push(1);} + }) + $('#a').concrete('bar', function($){return{ + foo: function(){res.push(3);} + }}) + + $('#dom_test div').foo(); + res.should.eql [1] + + $('#dom_test div').concrete('bar', function($){ + $(this).foo(); + }) + res.should.eql [1, 3] + end + + end +end diff --git a/spec/spec.entwine.properties.js b/spec/spec.entwine.properties.js new file mode 100644 index 0000000..978ae26 --- /dev/null +++ b/spec/spec.entwine.properties.js @@ -0,0 +1,102 @@ + +describe 'Concrete' + describe 'Properties' + before + $('body').append('
') + end + after + $('#dom_test').remove() + end + + before_each + $.concrete.clear_all_rules() + $('#dom_test').html('
') + end + + it 'can define and get a basic property' + $('#a').concrete({ + Foo: null + }); + $('.a').getFoo().should.be_null + end + + it 'can define and set a basic property' + $('#a').concrete({ + Foo: null + }); + $('.a').setFoo(1); + $('.a').getFoo().should.equal 1 + end + + it 'can define a default value' + $('#a').concrete({ + Foo: 1 + }); + $('.a').getFoo().should.equal 1 + end + + it 'should manage proprties in namespaces without clashing' + $('#a').concrete({ + Foo: 1 + }); + + $.concrete('test', function($){ + $('#a').concrete({ + Foo: 2 + }); + }); + + $('.a').getFoo().should.equal 1 + $('.a').concrete('test').getFoo().should.equal 2 + + $('.a').setFoo(4); + $('.a').concrete('test').setFoo(8); + + $('.a').getFoo().should.equal 4 + $('.a').concrete('test').getFoo().should.equal 8 + end + + it 'should manage directly setting proprties in namespaces without clashing' + $('#a').concrete({ + Foo: null + }); + + $.concrete('test', function($){ + $('#a').concrete({ + Foo: null + }); + }); + + $('.a').concreteData('Foo', 4); + $('.a').concrete('test').concreteData('Foo', 8); + + $('.a').concreteData('Foo').should.equal 4 + $('.a').concrete('test').concreteData('Foo').should.equal 8 + end + + describe 'jQuery style accessors' + it 'can define and get a basic property' + $('#a').concrete({ + Foo: null + }); + $('.a').Foo().should.be_null + end + + it 'can define and set a basic property' + $('#a').concrete({ + Foo: null + }); + $('.a').Foo(1); + $('.a').Foo().should.equal 1 + end + + it 'can define a default value' + $('#a').concrete({ + Foo: 1 + }); + $('.a').Foo().should.equal 1 + end + end + + end +end diff --git a/spec/spec.entwine.super.js b/spec/spec.entwine.super.js new file mode 100644 index 0000000..8321224 --- /dev/null +++ b/spec/spec.entwine.super.js @@ -0,0 +1,66 @@ + +describe 'Concrete' + describe 'Super' + before + $('body').append('
') + end + after + $('#dom_test').remove() + end + + before_each + $.concrete.clear_all_rules() + $('#dom_test').html('
Foo
Bar
') + end + + it 'can call the super function' + var a = 1; + $('#a').concrete({ + foo: function(){a *= 2;} + }); + $('#a.a').concrete({ + foo: function(){a += 2; this._super();} + }); + $('#a').foo(); + a.should.equal 6 + end + + it 'super to a non-existant class should be ignored' + var a = 1; + $('#a').concrete({ + foo: function(){a *= 2; this._super();} + }); + $('#a.a').concrete({ + foo: function(){a += 2; this._super();} + }); + $('#a').foo(); + a.should.equal 6 + end + + it 'can call super from two different functions without screwing up what super points to' + var list = []; + $('#a').concrete({ + foo: function(){ list.push('foo'); this.bar(); }, + bar: function(){ list.push('bar'); } + }); + $('#a.a').concrete({ + foo: function(){ list.push('foo2'); this._super(); list.push('foo2'); this._super(); }, + bar: function(){ list.push('bar2'); this._super(); } + }); + $('#a').foo(); + list.should.eql [ 'foo2', 'foo', 'bar2', 'bar', 'foo2', 'foo', 'bar2', 'bar' ] + end + + it 'can override (and call via super) a non-concrete jquery function' + var a = 1 + $('#a').concrete({ + text: function(){ a = this._super(); } + }); + + $('#a').text(); + a.should.equal 'Foo' + + $('#b').text().should.equal 'Bar' + end + end +end diff --git a/src/jquery.concrete.ctors.js b/src/jquery.entwine.ctors.js similarity index 100% rename from src/jquery.concrete.ctors.js rename to src/jquery.entwine.ctors.js diff --git a/src/jquery.concrete.dommaybechanged.js b/src/jquery.entwine.dommaybechanged.js similarity index 100% rename from src/jquery.concrete.dommaybechanged.js rename to src/jquery.entwine.dommaybechanged.js diff --git a/src/jquery.concrete.events.js b/src/jquery.entwine.events.js similarity index 100% rename from src/jquery.concrete.events.js rename to src/jquery.entwine.events.js diff --git a/src/jquery.concrete.js b/src/jquery.entwine.js similarity index 100% rename from src/jquery.concrete.js rename to src/jquery.entwine.js diff --git a/src/jquery.concrete.properties.js b/src/jquery.entwine.properties.js similarity index 100% rename from src/jquery.concrete.properties.js rename to src/jquery.entwine.properties.js