Permalink
Browse files

Incorporate changes from Hyperarchy for which commits were lost

  • Loading branch information...
1 parent 6b15177 commit f07005de10ea0a9dd0b0bab5764431198f53c663 @nathansobo committed Jul 11, 2011
Showing with 6,466 additions and 3,471 deletions.
  1. +4 −0 .gitignore
  2. +7 −0 .screwrc
  3. +4 −0 Gemfile
  4. +2 −0 Rakefile
  5. +30 −0 lib/assets/javascripts/monarch.js
  6. 0 lib/{ → assets/javascripts}/monarch/add_to_global_namespace.js
  7. 0 lib/{ → assets/javascripts}/monarch/define_monarch.js
  8. +53 −6 lib/{ → assets/javascripts}/monarch/foundation.js
  9. 0 lib/{ → assets/javascripts}/monarch/future.js
  10. +8 −0 lib/assets/javascripts/monarch/http.js
  11. +10 −10 lib/{ → assets/javascripts}/monarch/http/ajax_future.js
  12. 0 lib/{ → assets/javascripts}/monarch/http/comet_client.js
  13. +2 −2 lib/{ → assets/javascripts}/monarch/http/command.js
  14. 0 lib/{ → assets/javascripts}/monarch/http/create_command.js
  15. 0 lib/{ → assets/javascripts}/monarch/http/destroy_command.js
  16. +10 −0 lib/assets/javascripts/monarch/http/fake_server.js
  17. +1 −1 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_comet_client.js
  18. +16 −0 lib/assets/javascripts/monarch/http/fake_server/fake_creation.js
  19. +15 −0 lib/assets/javascripts/monarch/http/fake_server/fake_destruction.js
  20. +3 −3 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_fetch.js
  21. +1 −1 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_mutation.js
  22. +1 −1 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_request.js
  23. +37 −13 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_server.js
  24. +1 −1 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_subscribe.js
  25. +1 −1 {spec/spec_helpers → lib/assets/javascripts/monarch/http}/fake_server/fake_unsubscribe.js
  26. +17 −0 lib/assets/javascripts/monarch/http/fake_server/fake_update.js
  27. 0 lib/{ → assets/javascripts}/monarch/http/remote_subscription.js
  28. +121 −0 lib/assets/javascripts/monarch/http/server.js
  29. 0 lib/{ → assets/javascripts}/monarch/http/update_command.js
  30. 0 lib/{ → assets/javascripts}/monarch/inflection.js
  31. +75 −0 lib/assets/javascripts/monarch/jquery.monarch.js
  32. 0 lib/{ → assets/javascripts}/monarch/language_extensions.js
  33. +29 −0 lib/assets/javascripts/monarch/model.js
  34. 0 lib/{ → assets/javascripts}/monarch/model/column.js
  35. 0 lib/{ → assets/javascripts}/monarch/model/combined_signal.js
  36. 0 lib/{ → assets/javascripts}/monarch/model/composite_tuple.js
  37. 0 lib/{ → assets/javascripts}/monarch/model/concrete_field.js
  38. 0 lib/{ → assets/javascripts}/monarch/model/field.js
  39. 0 lib/{ → assets/javascripts}/monarch/model/fieldset.js
  40. 0 lib/{ → assets/javascripts}/monarch/model/local_field.js
  41. 0 lib/{ → assets/javascripts}/monarch/model/local_fieldset.js
  42. +9 −0 lib/assets/javascripts/monarch/model/predicates.js
  43. +51 −0 lib/assets/javascripts/monarch/model/predicates/and.js
  44. 0 lib/{ → assets/javascripts}/monarch/model/predicates/binary.js
  45. 0 lib/{ → assets/javascripts}/monarch/model/predicates/eq.js
  46. 0 lib/{ → assets/javascripts}/monarch/model/predicates/gt.js
  47. 0 lib/{ → assets/javascripts}/monarch/model/predicates/gte.js
  48. 0 lib/{ → assets/javascripts}/monarch/model/predicates/lt.js
  49. 0 lib/{ → assets/javascripts}/monarch/model/predicates/lte.js
  50. 0 lib/{ → assets/javascripts}/monarch/model/predicates/neq.js
  51. 0 lib/{ → assets/javascripts}/monarch/model/predicates/predicate.js
  52. 0 lib/{ → assets/javascripts}/monarch/model/projected_column.js
  53. +6 −4 lib/{ → assets/javascripts}/monarch/model/record.js
  54. 0 lib/{ → assets/javascripts}/monarch/model/relation_definition.js
  55. +10 −0 lib/assets/javascripts/monarch/model/relations.js
  56. 0 lib/{ → assets/javascripts}/monarch/model/relations/difference.js
  57. 0 lib/{ → assets/javascripts}/monarch/model/relations/inner_join.js
  58. 0 lib/{ → assets/javascripts}/monarch/model/relations/limit.js
  59. 0 lib/{ → assets/javascripts}/monarch/model/relations/offset.js
  60. 0 lib/{ → assets/javascripts}/monarch/model/relations/ordering.js
  61. +2 −2 lib/{ → assets/javascripts}/monarch/model/relations/relation.js
  62. +2 −5 lib/{ → assets/javascripts}/monarch/model/relations/selection.js
  63. +10 −5 lib/{ → assets/javascripts}/monarch/model/relations/table.js
  64. +2 −1 lib/{ → assets/javascripts}/monarch/model/relations/table_projection.js
  65. +6 −1 lib/{ → assets/javascripts}/monarch/model/relations/union.js
  66. 0 lib/{ → assets/javascripts}/monarch/model/remote_field.js
  67. +1 −0 lib/{ → assets/javascripts}/monarch/model/remote_fieldset.js
  68. +6 −3 lib/{ → assets/javascripts}/monarch/model/repository.js
  69. 0 lib/{ → assets/javascripts}/monarch/model/signal.js
  70. 0 lib/{ → assets/javascripts}/monarch/model/sort_specification.js
  71. 0 lib/{ → assets/javascripts}/monarch/model/synthetic_column.js
  72. 0 lib/{ → assets/javascripts}/monarch/model/synthetic_field.js
  73. 0 lib/{ → assets/javascripts}/monarch/model/tuple.js
  74. +56 −0 lib/assets/javascripts/monarch/promise.js
  75. 0 lib/{ → assets/javascripts}/monarch/queue.js
  76. 0 lib/{ → assets/javascripts}/monarch/skip_list.js
  77. +1 −1 lib/{ → assets/javascripts}/monarch/subscription.js
  78. 0 lib/{ → assets/javascripts}/monarch/subscription_bundle.js
  79. +28 −0 lib/{ → assets/javascripts}/monarch/subscription_node.js
  80. 0 lib/{ → assets/javascripts}/monarch/underscore_extensions.js
  81. +17 −0 lib/assets/javascripts/monarch/view.js
  82. +2 −0 lib/{ → assets/javascripts}/monarch/view/builder.js
  83. +28 −27 lib/{ → assets/javascripts}/monarch/view/close_tag.js
  84. 0 lib/{ → assets/javascripts}/monarch/view/history.js
  85. +5 −0 lib/{ → assets/javascripts}/monarch/view/open_tag.js
  86. 0 lib/{ → assets/javascripts}/monarch/view/self_closing_tag.js
  87. +44 −11 lib/{ → assets/javascripts}/monarch/view/template.js
  88. 0 lib/{ → assets/javascripts}/monarch/view/text_node.js
  89. +0 −29 lib/monarch.js
  90. +2 −0 lib/monarch.rb
  91. +5 −0 lib/monarch/engine.rb
  92. +0 −12 lib/monarch/http.js
  93. +0 −133 lib/monarch/http/server.js
  94. +0 −29 lib/monarch/model.js
  95. +0 −13 lib/monarch/model/predicates.js
  96. +0 −30 lib/monarch/model/predicates/and.js
  97. +0 −14 lib/monarch/model/relations.js
  98. +3 −0 lib/monarch/version.rb
  99. +0 −20 lib/monarch/view.js
  100. +0 −58 lib/monarch/view/jquery.monarch.js
  101. +0 −5 lib/monarch/view/templates.js
  102. +0 −38 lib/monarch/view/templates/multiview.js
  103. +0 −19 lib/monarch_view.js
  104. +21 −0 monarch.gemspec
  105. +122 −14 spec/{ → javascripts}/monarch/foundation_spec.js
  106. +10 −10 spec/{ → javascripts}/monarch/http/ajax_future_spec.js
  107. +2 −2 spec/{ → javascripts}/monarch/http/comet_client_spec.js
  108. +319 −0 spec/javascripts/monarch/http/fake_server_spec.js
  109. +521 −0 spec/javascripts/monarch/http/server_spec.js
  110. +1 −1 spec/{ → javascripts}/monarch/inflection_spec.js
  111. +311 −0 spec/javascripts/monarch/jquery.monarch_spec.js
  112. +1 −1 spec/{ → javascripts}/monarch/model/column_spec.js
  113. +1 −1 spec/{ → javascripts}/monarch/model/combined_signal_spec.js
  114. +1 −1 spec/{ → javascripts}/monarch/model/field_spec.js
  115. +1 −1 spec/{ → javascripts}/monarch/model/local_field_spec.js
  116. +1 −1 spec/{ → javascripts}/monarch/model/local_fieldset_spec.js
  117. +39 −7 spec/{ → javascripts}/monarch/model/predicates/and_spec.js
  118. +1 −1 spec/{ → javascripts}/monarch/model/predicates/eq_spec.js
  119. +9 −1 spec/{ → javascripts}/monarch/model/record_spec.js
  120. +1 −1 spec/{ → javascripts}/monarch/model/relations/difference_spec.js
  121. +1 −1 spec/{ → javascripts}/monarch/model/relations/inner_join_spec.js
  122. +1 −1 spec/{ → javascripts}/monarch/model/relations/limit_spec.js
  123. +1 −1 spec/{ → javascripts}/monarch/model/relations/offset_spec.js
  124. +1 −1 spec/{ → javascripts}/monarch/model/relations/ordering_spec.js
  125. +2 −2 spec/{ → javascripts}/monarch/model/relations/relation_spec.js
  126. +6 −2 spec/{ → javascripts}/monarch/model/relations/selection_spec.js
  127. +5 −5 spec/{ → javascripts}/monarch/model/relations/table_projection_spec.js
  128. +26 −12 spec/{ → javascripts}/monarch/model/relations/table_spec.js
  129. +1 −1 spec/{ → javascripts}/monarch/model/relations/union_spec.js
  130. +1 −1 spec/{ → javascripts}/monarch/model/remote_field_spec.js
  131. +27 −1 spec/{ → javascripts}/monarch/model/repository_spec.js
  132. +1 −1 spec/{ → javascripts}/monarch/model/signal_spec.js
  133. +1 −1 spec/{ → javascripts}/monarch/model/tuple_spec.js
  134. +75 −0 spec/javascripts/monarch/promise_spec.js
  135. +1 −1 spec/{ → javascripts}/monarch/queue_spec.js
  136. +1 −1 spec/{ → javascripts}/monarch/skip_list_spec.js
  137. +54 −0 spec/javascripts/monarch/subscription_node_spec.js
  138. +84 −32 spec/{ → javascripts}/monarch/view/builder_spec.js
  139. +1 −1 spec/{ → javascripts}/monarch/view/template_spec.js
  140. +184 −1 spec/{ → javascripts}/monarch/view/view_spec.js
  141. +18 −10 spec/{spec_helpers/fake_server.js → javascripts/monarch_spec_helper.js}
  142. +93 −0 spec/javascripts/spec_helpers/ajax_mocking.js
  143. 0 spec/{ → javascripts}/spec_helpers/example_domain_model.js
  144. 0 spec/{ → javascripts}/spec_helpers/fake_history.js
  145. +0 −4 spec/{ → javascripts}/spec_helpers/fixtures.js
  146. +0 −706 spec/monarch/http/server_spec.js
  147. +0 −130 spec/monarch/view/jquery.monarch_spec.js
  148. +0 −66 spec/monarch/view/templates/multiview_spec.js
  149. +0 −12 spec/monarch_spec_helper.js
  150. +0 −190 spec/spec_helpers/fake_server_spec.js
  151. +111 −0 vendor/assets/javascripts/htmlescape.js
  152. +3,664 −1,530 vendor/{jquery-1.4.2.js → assets/javascripts/jquery-1.5.2.js}
  153. 0 vendor/{ → assets/javascripts}/jquery.ba-bbq.js
  154. 0 vendor/{ → assets/javascripts}/json.js
  155. 0 vendor/{ → assets/javascripts}/md5.js
  156. 0 vendor/{ → assets/javascripts}/underscore.js
  157. +0 −116 vendor/htmlescape.js
  158. +0 −100 vendor/jquery.cookie.js
View
@@ -0,0 +1,4 @@
+*.gem
+.bundle
+Gemfile.lock
+pkg/*
View
@@ -0,0 +1,7 @@
+ScrewUnit.configure do
+ port 8888
+ add_js_location "/vendor", "vendor/assets/javascripts"
+ add_js_location "/lib", "lib/assets/javascripts"
+ add_js_location "/specs", "spec/javascripts"
+end
+
View
@@ -0,0 +1,4 @@
+source "http://rubygems.org"
+
+# Specify your gem's dependencies in monarch.gemspec
+gemspec
View
@@ -0,0 +1,2 @@
+require 'bundler'
+Bundler::GemHelper.install_tasks
@@ -0,0 +1,30 @@
+//= require jquery-1.5.2
+//= require jquery.ba-bbq
+//= require htmlescape
+//= require underscore
+//= require json
+//= require md5
+//= require monarch/language_extensions
+//= require monarch/underscore_extensions
+//= require monarch/foundation
+//= require monarch/define_monarch
+//= require monarch/jquery.monarch
+//= require monarch/subscription_node
+//= require monarch/subscription
+//= require monarch/subscription_bundle
+//= require monarch/future
+//= require monarch/queue
+//= require monarch/skip_list
+//= require monarch/inflection
+//= require monarch/view
+//= require monarch/http
+//= require monarch/model
+//= require monarch/promise
+
+(function(Monarch) {
+
+Server = new Monarch.Http.Server();
+Repository = new Monarch.Model.Repository();
+History = new Monarch.View.History();
+
+})(Monarch);
@@ -35,7 +35,15 @@ _.mixin({
this.addMethods(constructor, constructor.prototype.constructorProperties);
}
- if (constructorBasename) containingModule[constructorBasename] = constructor;
+ if (constructorBasename) {
+ var existingModule = containingModule[constructorBasename];
+ if (_.isObject(existingModule)) {
+ for (var prop in existingModule) {
+ if (!constructor.hasOwnProperty(prop)) constructor[prop] = existingModule[prop];
+ }
+ }
+ containingModule[constructorBasename] = constructor;
+ }
if (args.superconstructor && args.superconstructor.inherited) args.superconstructor.inherited(constructor);
if (constructor.initialize) constructor.initialize();
@@ -113,7 +121,7 @@ _.mixin({
}
});
-var permittedPropertyAccessorDefinitionKeys = ["reader", "writer", "afterWrite", "afterChange"];
+var permittedPropertyAccessorDefinitionKeys = ["reader", "writer", "write", "change"];
function definePropertyAccessors(module) {
if (module.propertyAccessors) {
@@ -125,7 +133,7 @@ function definePropertyAccessors(module) {
}
_.each(module, function(value, key) {
if (isPropertyAccessorDefinition(value)) {
- module[key] = buildPropertyAccessor(key, value.reader, value.writer, value.afterWrite, value.afterChange);
+ module[key] = buildPropertyAccessor(key, value.reader, value.writer, value.write, value.change);
}
});
}
@@ -138,7 +146,7 @@ function isPropertyAccessorDefinition(value) {
});
}
-function buildPropertyAccessor(name, reader, writer, afterWriteHook, afterChangeHook) {
+function buildPropertyAccessor(name, reader, writer, writeHook, changeHook) {
var fieldName = "_" + name;
if (!reader) reader = function() { return this[fieldName]; };
if (!writer) writer = function(value) { this[fieldName] = value; };
@@ -151,11 +159,15 @@ function buildPropertyAccessor(name, reader, writer, afterWriteHook, afterChange
var newValue = writer.apply(this, arguments) || this[fieldName];
var writeHookReturnVal, changeHookReturnVal;
- if (afterWriteHook) writeHookReturnVal = afterWriteHook.call(this, newValue, oldValue);
- if (afterChangeHook && newValue !== oldValue) changeHookReturnVal = afterChangeHook.call(this, newValue, oldValue);
+ if (writeHook) writeHookReturnVal = writeHook.call(this, newValue, oldValue);
+ if (newValue !== oldValue) {
+ if (changeHook) changeHookReturnVal = changeHook.call(this, newValue, oldValue);
+ }
+ if (this.hasSignal(name)) this.signal(name).val(newValue);
return changeHookReturnVal || writeHookReturnVal || newValue;
}
};
+
accessor._accessor_ = true;
return accessor;
}
@@ -226,6 +238,16 @@ _.module("_.Kernel", {
return false;
}
}
+ },
+
+ signal: function(name) {
+ if (!this._signals) this._signals = {};
+ if (!this._signals[name]) this._signals[name] = new _.Signal();
+ return this._signals[name];
+ },
+
+ hasSignal: function(name) {
+ return this._signals && this._signals[name] !== undefined;
}
});
@@ -259,4 +281,29 @@ _.constructor("_.Object", {
}, _.Kernel)
}, _.Kernel);
+_.constructor("_.Signal", {
+
+
+ val: function(newValue) {
+ if (arguments.length === 0) {
+ return this._val;
+ } else {
+ var oldValue = this._val;
+ this._val = newValue;
+ if (this.writeNode) this.writeNode.publish(newValue, oldValue);
+ if (newValue !== oldValue && this.changeNode) this.changeNode.publish(newValue, oldValue);
+ }
+ },
+
+ change: function(callback, context) {
+ if (!this.changeNode) this.changeNode = new Monarch.SubscriptionNode();
+ return this.changeNode.subscribe(callback, context);
+ },
+
+ write: function(callback, context) {
+ if (!this.writeNode) this.writeNode = new Monarch.SubscriptionNode();
+ return this.writeNode.subscribe(callback, context);
+ }
+});
+
})(_);
@@ -0,0 +1,8 @@
+//= require monarch/http/server
+//= require monarch/http/ajax_future
+//= require monarch/http/remote_subscription
+//= require monarch/http/command
+//= require monarch/http/create_command
+//= require monarch/http/update_command
+//= require monarch/http/destroy_command
+//= require monarch/http/comet_client
@@ -2,14 +2,14 @@
_.constructor("Monarch.Http.AjaxFuture", {
initialize: function() {
- this.onSuccessNode = new Monarch.SubscriptionNode();
+ this.successNode = new Monarch.SubscriptionNode();
this.beforeEventsNode = new Monarch.SubscriptionNode();
this.afterEventsNode = new Monarch.SubscriptionNode();
this.onFailureNode = new Monarch.SubscriptionNode();
- this.onErrorNode = new Monarch.SubscriptionNode();
+ this.errorNode = new Monarch.SubscriptionNode();
this.onCompleteNode = new Monarch.SubscriptionNode();
this.subscriptionNodes = [
- this.onSuccessNode, this.beforeEventsNode, this.afterEventsNode, this.onFailureNode, this.onCompleteNode
+ this.successNode, this.beforeEventsNode, this.afterEventsNode, this.onFailureNode, this.onCompleteNode
];
},
@@ -42,7 +42,7 @@ _.constructor("Monarch.Http.AjaxFuture", {
this.data = data;
this.beforeEventsNode.publishArgs(data);
this.afterEventsNode.publishArgs(data);
- this.onSuccessNode.publishArgs(data);
+ this.successNode.publishArgs(data);
this.onCompleteNode.publishArgs(data);
},
@@ -60,7 +60,7 @@ _.constructor("Monarch.Http.AjaxFuture", {
this.beforeEventsNode.publishArgs(data);
Repository.resumeEvents();
this.afterEventsNode.publishArgs(data);
- this.onSuccessNode.publishArgs(data);
+ this.successNode.publishArgs(data);
this.onCompleteNode.publishArgs(data);
},
@@ -78,14 +78,14 @@ _.constructor("Monarch.Http.AjaxFuture", {
this.triggered = true;
this.error = true;
this.data = [xhr, status, errorThrown];
- this.onErrorNode.publish(xhr, status, errorThrown);
+ this.errorNode.publish(xhr, status, errorThrown);
},
- onSuccess: function(callback, context) {
+ success: function(callback, context) {
if (this.triggered) {
if (this.successful) callback.apply(context, this.data);
} else {
- this.onSuccessNode.subscribe(callback, context);
+ this.successNode.subscribe(callback, context);
}
return this;
},
@@ -99,11 +99,11 @@ _.constructor("Monarch.Http.AjaxFuture", {
return this;
},
- onError: function(errorCallback, context) {
+ error: function(errorCallback, context) {
if (this.triggered) {
if (this.error) errorCallback.apply(context, this.data);
} else {
- this.onErrorNode.subscribe(errorCallback);
+ this.errorNode.subscribe(errorCallback);
}
return this;
},
@@ -8,8 +8,8 @@ _.constructor("Monarch.Http.Command", {
},
perform: function() {
- this.server.post(Repository.originUrl + "/mutate", { operations: [this.wireRepresentation()] })
- .onSuccess(this.hitch('handleSuccessfulResponse'))
+ this.server.post(Repository.sandboxUrl + "/mutate", { operations: [this.wireRepresentation()] })
+ .success(this.hitch('handleSuccessfulResponse'))
.onFailure(this.hitch('handleUnsuccessfulResponse'))
return this.future;
},
@@ -0,0 +1,10 @@
+//= require ./fake_server/fake_server
+//= require ./fake_server/fake_comet_client
+//= require ./fake_server/fake_creation
+//= require ./fake_server/fake_destruction
+//= require ./fake_server/fake_fetch
+//= require ./fake_server/fake_mutation
+//= require ./fake_server/fake_request
+//= require ./fake_server/fake_subscribe
+//= require ./fake_server/fake_unsubscribe
+//= require ./fake_server/fake_update
@@ -1,4 +1,4 @@
-_.constructor("FakeServer.FakeCometClient", {
+_.constructor("Monarch.Http.FakeServer.FakeCometClient", {
initialize: function() {
this.onReceiveNode = new Monarch.SubscriptionNode();
this.connected = false;
@@ -0,0 +1,16 @@
+_.constructor("Monarch.Http.FakeServer.FakeCreation", {
+ type: 'create',
+
+ initialize: function(fakeServer, record) {
+ this.fakeServer = fakeServer;
+ this.record = record;
+ this.promise = new Monarch.Promise();
+ },
+
+ simulateSuccess: function() {
+ this.fakeServer.removeRequest(this);
+ var fields = _.extend({id: this.fakeServer.idCounter++ }, this.record.dirtyWireRepresentation());
+ this.record.remotelyCreated(fields);
+ this.promise.triggerSuccess(this.record);
+ }
+});
@@ -0,0 +1,15 @@
+_.constructor("Monarch.Http.FakeServer.FakeDestruction", {
+ type: 'destroy',
+
+ initialize: function(fakeServer, record) {
+ this.fakeServer = fakeServer;
+ this.record = record;
+ this.promise = new Monarch.Promise();
+ },
+
+ simulateSuccess: function() {
+ this.fakeServer.removeRequest(this);
+ this.record.remotelyDestroyed();
+ this.promise.triggerSuccess(this.record);
+ }
+});
@@ -1,4 +1,4 @@
-_.constructor("FakeServer.FakeFetch", {
+_.constructor("Monarch.Http.FakeServer.FakeFetch", {
type: 'fetch',
initialize: function(url, relations, fakeServer) {
@@ -8,10 +8,10 @@ _.constructor("FakeServer.FakeFetch", {
this.future = new Monarch.Http.AjaxFuture();
},
- simulateSuccess: function() {
+ simulateSuccess: function(dataset) {
this.future.handleResponse({
successful: true,
- dataset: this.fetchDatasetFromFixtureRepository()
+ dataset: dataset || this.fetchDatasetFromFixtureRepository()
})
this.fakeServer.removeRequest(this);
},
@@ -1,4 +1,4 @@
-_.constructor("FakeServer.FakeMutation", {
+_.constructor("Monarch.Http.FakeServer.FakeMutation", {
constructorInitialize: function() {
this.idCounter = 1;
},
@@ -1,4 +1,4 @@
-_.constructor("FakeServer.FakeRequest", {
+_.constructor("Monarch.Http.FakeServer.FakeRequest", {
initialize: function(type, url, data, fakeServer) {
this.type = type;
this.url = url;
Oops, something went wrong.

0 comments on commit f07005d

Please sign in to comment.