kojac 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +13 -5
- data/app/assets/javascripts/kojac.js +150 -60
- data/app/assets/javascripts/kojac_ember.js +136 -199
- data/app/controllers/kojac_base_controller.rb +5 -60
- data/app/controllers/kojac_front_methods.rb +66 -0
- data/app/controllers/kojac_metal_controller.rb +25 -0
- data/app/serializers/kojac_base_serializer.rb +0 -2
- data/lib/kojac/kojac_rails.rb +32 -32
- data/lib/kojac/version.rb +1 -1
- data/spec/can_cache_spec.js +2 -1
- data/spec/ember_factory_spec.js +1 -1
- data/spec/ember_model_spec.js +34 -34
- data/spec/ember_override_spec.js +81 -0
- data/spec/ember_tojsono_spec.js +1 -1
- data/spec/error_handling_spec.js +2 -0
- data/spec/kojac_caching_spec.js +2 -1
- data/spec/kojac_mock_spec.js +1 -0
- data/spec/kojac_operations_spec.js +1 -0
- data/spec/local_provider_spec.js +1 -0
- data/spec/operation_include_spec.js +1 -0
- data/spec/run.html +4 -3
- metadata +16 -11
data/lib/kojac/kojac_rails.rb
CHANGED
@@ -78,9 +78,10 @@ module KojacUtils
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
def to_jsono(aObject,aOptions)
|
81
|
+
def to_jsono(aObject,aOptions=nil)
|
82
|
+
aOptions ||= {}
|
82
83
|
if aObject.is_a?(Hash) or aObject.respond_to? :attributes
|
83
|
-
serializer_for(aObject).new(aObject,aOptions).
|
84
|
+
serializer_for(aObject).new(aObject,aOptions).serializable_hash
|
84
85
|
elsif aObject.respond_to?(:to_ary) && aObject.first # Array
|
85
86
|
item_sz = serializer_for(aObject.first)
|
86
87
|
ActiveModel::ArraySerializer.new(aObject,aOptions.merge(each_serializer: item_sz)).as_json(aOptions)
|
@@ -198,8 +199,8 @@ module Kojac
|
|
198
199
|
|
199
200
|
def self.included(aClass)
|
200
201
|
#aClass.send :extend, ClassMethods
|
201
|
-
aClass.send :include, ActiveSupport::Callbacks
|
202
|
-
aClass.send :define_callbacks, :update_op, :scope => [:kind, :name]
|
202
|
+
# aClass.send :include, ActiveSupport::Callbacks
|
203
|
+
# aClass.send :define_callbacks, :update_op, :scope => [:kind, :name]
|
203
204
|
end
|
204
205
|
|
205
206
|
#module ClassMethods
|
@@ -209,8 +210,6 @@ module Kojac
|
|
209
210
|
|
210
211
|
public
|
211
212
|
|
212
|
-
attr_accessor :item
|
213
|
-
|
214
213
|
def results
|
215
214
|
@results ||= {}
|
216
215
|
end
|
@@ -342,34 +341,35 @@ module Kojac
|
|
342
341
|
ring = current_ring
|
343
342
|
aResultKey ||= aItem.g? :kojac_key
|
344
343
|
results[aResultKey] = (aItem && KojacUtils.to_jsono(aItem,scope: kojac_current_user))
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
344
|
+
if policy = Kojac.policy!(kojac_current_user,aItem)
|
345
|
+
aOptions ||= {}
|
346
|
+
if included_assocs = aOptions[:include]
|
347
|
+
included_assocs = included_assocs.split(',') if included_assocs.is_a?(String)
|
348
|
+
included_assocs = [included_assocs] unless included_assocs.is_a?(Array)
|
349
|
+
included_assocs.map!(&:to_sym) if included_assocs.is_a?(Array)
|
350
|
+
p_assocs = policy.permitted_associations(:read) # ***
|
351
|
+
use_assocs = p_assocs.delete_if do |a|
|
352
|
+
if included_assocs.include?(a) and ma = aItem.class.reflect_on_association(a)
|
353
|
+
![:belongs_to,:has_many].include?(ma.macro) # is supported association type
|
354
|
+
else
|
355
|
+
true # no such assoc
|
356
|
+
end
|
357
357
|
end
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
358
|
+
use_assocs.each do |a|
|
359
|
+
next unless a_contents = aItem.send(a)
|
360
|
+
if a_contents.is_a? Array
|
361
|
+
contents_h = []
|
362
|
+
a_contents.each do |sub_item|
|
363
|
+
results[sub_item.kojac_key] = KojacUtils.to_jsono(sub_item,scope: kojac_current_user)
|
364
|
+
end
|
365
|
+
else
|
366
|
+
results[a_contents.kojac_key] = KojacUtils.to_jsono(a_contents,scope: kojac_current_user)
|
366
367
|
end
|
367
|
-
#results[aResultKey] = contents_h
|
368
|
-
else
|
369
|
-
results[a_contents.kojac_key] = KojacUtils.to_jsono(a_contents,scope: kojac_current_user)
|
370
368
|
end
|
371
369
|
end
|
372
370
|
end
|
371
|
+
results_insert_filter(results,aItem,aResultKey,aOptions) if respond_to?(:results_insert_filter)
|
372
|
+
results
|
373
373
|
end
|
374
374
|
|
375
375
|
public
|
@@ -431,9 +431,9 @@ module Kojac
|
|
431
431
|
model = deduce_model_class
|
432
432
|
scope = Kojac.policy_scope(current_user, model, op) || model
|
433
433
|
|
434
|
-
if
|
434
|
+
if item = scope.load_by_key(op[:key],op)
|
435
435
|
|
436
|
-
run_callbacks :update_op do
|
436
|
+
#run_callbacks :update_op do
|
437
437
|
policy = Kojac.policy!(kojac_current_user,item,op)
|
438
438
|
item.update_permitted_attributes!(op[:value], policy)
|
439
439
|
|
@@ -460,7 +460,7 @@ module Kojac
|
|
460
460
|
#results[key] = assoc_item
|
461
461
|
merge_model_into_results(assoc_item,key)
|
462
462
|
end
|
463
|
-
end
|
463
|
+
#end
|
464
464
|
end
|
465
465
|
{
|
466
466
|
key: op[:key],
|
data/lib/kojac/version.rb
CHANGED
data/spec/can_cache_spec.js
CHANGED
@@ -6,7 +6,8 @@ describe("Kojac.CanCache Specs", function() {
|
|
6
6
|
this.kojac = new Kojac.Core({
|
7
7
|
cache: this.cache,
|
8
8
|
remoteProvider: new Kojac.RemoteProvider({useMockFileValues: true,mockFilePath: 'mockjson/'}),
|
9
|
-
objectFactory: factory
|
9
|
+
objectFactory: factory,
|
10
|
+
apiVersion: 1
|
10
11
|
});
|
11
12
|
});
|
12
13
|
|
data/spec/ember_factory_spec.js
CHANGED
@@ -71,7 +71,7 @@ describe("Ember Factory", function() {
|
|
71
71
|
}
|
72
72
|
];
|
73
73
|
|
74
|
-
var emberObjects = factory.
|
74
|
+
var emberObjects = factory.manufacture(source,'order_item');
|
75
75
|
var emberObject = emberObjects[0];
|
76
76
|
expect(emberObject).toBeDefined();
|
77
77
|
expect(emberObject.constructor).toBe(OrderItem);
|
data/spec/ember_model_spec.js
CHANGED
@@ -28,30 +28,30 @@ describe("Kojac Ember Model", function() {
|
|
28
28
|
|
29
29
|
it("extend and check null values", function() {
|
30
30
|
var product = Product1.create();
|
31
|
-
expect(product.name).toBeNull();
|
32
|
-
expect(product.purchases).toBeNull();
|
33
|
-
expect(product.weight).toBeNull();
|
34
|
-
expect(product.isMember).toBeNull();
|
35
|
-
expect(product.start).toBeNull();
|
36
|
-
expect(Product1.getDefinitions()).toEqual(product1Values);
|
31
|
+
expect(product.get('name')).toBeNull();
|
32
|
+
expect(product.get('purchases')).toBeNull();
|
33
|
+
expect(product.get('weight')).toBeNull();
|
34
|
+
expect(product.get('isMember')).toBeNull();
|
35
|
+
expect(product.get('start')).toBeNull();
|
36
|
+
//expect(Product1.getDefinitions()).toEqual(product1Values);
|
37
37
|
});
|
38
38
|
|
39
39
|
it("extend and check non-null values", function() {
|
40
40
|
var product = Product2.create();
|
41
|
-
expect(product.name).toBe(product2Values.name);
|
42
|
-
expect(product.purchases).toBe(product2Values.purchases);
|
43
|
-
expect(product.weight).toBe(product2Values.weight);
|
44
|
-
expect(product.isMember).toBe(product2Values.isMember);
|
45
41
|
expect(product.get('name')).toBe(product2Values.name);
|
46
42
|
expect(product.get('purchases')).toBe(product2Values.purchases);
|
47
43
|
expect(product.get('weight')).toBe(product2Values.weight);
|
48
44
|
expect(product.get('isMember')).toBe(product2Values.isMember);
|
49
|
-
expect(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
45
|
+
expect(product.get('name')).toBe(product2Values.name);
|
46
|
+
expect(product.get('purchases')).toBe(product2Values.purchases);
|
47
|
+
expect(product.get('weight')).toBe(product2Values.weight);
|
48
|
+
expect(product.get('isMember')).toBe(product2Values.isMember);
|
49
|
+
// expect(Product2.getDefinitions()).toEqual({
|
50
|
+
// name: String,
|
51
|
+
// purchases: Int,
|
52
|
+
// weight: Number,
|
53
|
+
// isMember: Boolean
|
54
|
+
// });
|
55
55
|
});
|
56
56
|
|
57
57
|
it("Ember.Object extend and create", function() {
|
@@ -98,22 +98,22 @@ describe("Kojac Ember Model", function() {
|
|
98
98
|
for (p in wrongProductValues)
|
99
99
|
product.set(p,wrongProductValues[p]);
|
100
100
|
//person.setProperties(wrongProductValues);
|
101
|
-
expect(product.name).toBe('123');
|
102
|
-
expect(product.purchases).toBe(2);
|
103
|
-
expect(product.weight).toBe(null);
|
104
|
-
expect(product.isMember).toBe(true);
|
105
|
-
expect(product.start).toEqual(new Date(2010,5,1,23,59,56));
|
101
|
+
expect(product.get('name')).toBe('123');
|
102
|
+
expect(product.get('purchases')).toBe(2);
|
103
|
+
expect(product.get('weight')).toBe(null);
|
104
|
+
expect(product.get('isMember')).toBe(true);
|
105
|
+
expect(product.get('start')).toEqual(new Date(2010,5,1,23,59,56));
|
106
106
|
});
|
107
107
|
|
108
108
|
it("check setProperties values requiring conversion", function() {
|
109
109
|
moment().zone(8);
|
110
110
|
var product = Product1.create();
|
111
111
|
product.setProperties(wrongProductValues);
|
112
|
-
expect(product.name).toBe('123');
|
113
|
-
expect(product.purchases).toBe(2);
|
114
|
-
expect(product.weight).toBe(null);
|
115
|
-
expect(product.isMember).toBe(true);
|
116
|
-
expect(product.start).toEqual(new Date(2010,5,1,23,59,56));
|
112
|
+
expect(product.get('name')).toBe('123');
|
113
|
+
expect(product.get('purchases')).toBe(2);
|
114
|
+
expect(product.get('weight')).toBe(null);
|
115
|
+
expect(product.get('isMember')).toBe(true);
|
116
|
+
expect(product.get('start')).toEqual(new Date(2010,5,1,23,59,56));
|
117
117
|
});
|
118
118
|
|
119
119
|
it("check init", function() {
|
@@ -133,16 +133,16 @@ describe("Kojac Ember Model", function() {
|
|
133
133
|
for (p in initValues) {
|
134
134
|
if (p=='weight')
|
135
135
|
continue;
|
136
|
-
this
|
136
|
+
this.set(p,initValues[p]);
|
137
137
|
}
|
138
138
|
}
|
139
139
|
};
|
140
140
|
var Product3 = Kojac.EmberModel.extend(productValuesWithInit);
|
141
141
|
var product = Product3.create();
|
142
|
-
expect(product.name).toBe(initValues.name);
|
143
|
-
expect(product.purchases).toBe(initValues.purchases);
|
144
|
-
expect(product.isMember).toBe(initValues.isMember);
|
145
|
-
expect(product.weight).toBe(productValuesWithInit.weight);
|
142
|
+
expect(product.get('name')).toBe(initValues.name);
|
143
|
+
expect(product.get('purchases')).toBe(initValues.purchases);
|
144
|
+
expect(product.get('isMember')).toBe(initValues.isMember);
|
145
|
+
expect(product.get('weight')).toBe(productValuesWithInit.weight);
|
146
146
|
});
|
147
147
|
|
148
148
|
it("check computed property", function() {
|
@@ -150,13 +150,13 @@ describe("Kojac Ember Model", function() {
|
|
150
150
|
first_name: 'Jeffery',
|
151
151
|
last_name: 'Watt',
|
152
152
|
full_name: function() {
|
153
|
-
return this.first_name+' '+this.last_name;
|
153
|
+
return this.get('first_name')+' '+this.get('last_name');
|
154
154
|
}.property()
|
155
155
|
};
|
156
156
|
var Cust = Ember.Object.extend(initValues);
|
157
157
|
var cust = Cust.create();
|
158
|
-
expect(cust.first_name).toBe(initValues.first_name);
|
159
|
-
expect(cust.last_name).toBe(initValues.last_name);
|
158
|
+
expect(cust.get('first_name')).toBe(initValues.first_name);
|
159
|
+
expect(cust.get('last_name')).toBe(initValues.last_name);
|
160
160
|
expect(cust.get('full_name')).toBe(initValues.first_name+' '+initValues.last_name);
|
161
161
|
});
|
162
162
|
|
@@ -0,0 +1,81 @@
|
|
1
|
+
describe("Kojac Override", function() {
|
2
|
+
|
3
|
+
|
4
|
+
it("meta returns the same object each time, and subclasses return a different object", function() {
|
5
|
+
var RndModel = Ember.Object.extend({});
|
6
|
+
var SubModel1 = RndModel.extend({});
|
7
|
+
var SubModel2 = RndModel.extend({});
|
8
|
+
|
9
|
+
expect( Ember.meta(RndModel) ).toBeTruthy();
|
10
|
+
expect( Ember.meta(RndModel)===Ember.meta(RndModel)).toBeTruthy();
|
11
|
+
expect( Ember.meta(RndModel).descs ).toBeTruthy();
|
12
|
+
expect( Ember.meta(RndModel).descs===Ember.meta(RndModel).descs ).toBeTruthy();
|
13
|
+
|
14
|
+
expect( Ember.meta(SubModel1) ).toBeTruthy();
|
15
|
+
expect( Ember.meta(SubModel1)!==Ember.meta(RndModel) ).toBeTruthy();
|
16
|
+
expect( Object.getPrototypeOf(Ember.meta(SubModel1))===Object.getPrototypeOf(Ember.meta(RndModel)) ).toBeTruthy();
|
17
|
+
|
18
|
+
expect( Ember.meta(SubModel1).descs ).toBeTruthy();
|
19
|
+
expect( Ember.meta(SubModel1).descs!==Ember.meta(RndModel).descs ).toBeTruthy();
|
20
|
+
expect( Object.getPrototypeOf(Ember.meta(SubModel1).descs)===Object.getPrototypeOf(Ember.meta(RndModel).descs)).toBeTruthy();
|
21
|
+
|
22
|
+
expect( Ember.meta(SubModel2) ).toBeTruthy();
|
23
|
+
expect( Ember.meta(SubModel2).descs ).toBeTruthy();
|
24
|
+
expect( Ember.meta(SubModel1)!==Ember.meta(SubModel2) ).toBeTruthy();
|
25
|
+
expect( Ember.meta(SubModel1).descs!==Ember.meta(SubModel2).descs ).toBeTruthy();
|
26
|
+
});
|
27
|
+
|
28
|
+
it("instances have their own meta", function() {
|
29
|
+
var RndModel = Ember.Object.extend({});
|
30
|
+
var rndModel = RndModel.create();
|
31
|
+
expect( Ember.meta(RndModel) ).toBeTruthy();
|
32
|
+
expect( Ember.meta(rndModel) ).toBeTruthy();
|
33
|
+
expect( Ember.meta(rndModel)!==Ember.meta(RndModel) ).toBeTruthy();
|
34
|
+
});
|
35
|
+
|
36
|
+
it("instance proto === class", function() {
|
37
|
+
var RndModel = Ember.Object.extend({});
|
38
|
+
var rndModel = RndModel.create({});
|
39
|
+
expect(rndModel.constructor === RndModel).toBeTruthy();
|
40
|
+
expect(Object.getPrototypeOf(RndModel) === Object.getPrototypeOf(Ember.Object)).toBeTruthy();
|
41
|
+
expect(Object.getPrototypeOf(RndModel) !== Ember.Object).toBeTruthy();
|
42
|
+
});
|
43
|
+
|
44
|
+
it("override get and set", function() {
|
45
|
+
//var RndModel = Ember.Object.extend({});
|
46
|
+
var SubModel1 = Kojac.EmberModel.extend({
|
47
|
+
name: Int
|
48
|
+
});
|
49
|
+
//var SubModel2 = RndModel.extend({});
|
50
|
+
var subModel1 = SubModel1.create({
|
51
|
+
name: 'fred'
|
52
|
+
});
|
53
|
+
console.log(subModel1.get('name'));
|
54
|
+
subModel1.set('name','john');
|
55
|
+
console.log(subModel1.get('name'));
|
56
|
+
});
|
57
|
+
|
58
|
+
// it("can modify class desc", function() {
|
59
|
+
//
|
60
|
+
// var TestMethodType = function(aParam) {
|
61
|
+
// this.set = function(obj, keyName, value) {
|
62
|
+
// var meta = Ember.meta(obj),
|
63
|
+
// desc = (meta && meta.descs[keyName]);
|
64
|
+
// meta.descs[keyName] = undefined;
|
65
|
+
// Ember.set(obj,keyName,value+value);
|
66
|
+
// meta.descs[keyName] = desc;
|
67
|
+
// }
|
68
|
+
// };
|
69
|
+
// TestMethodType.prototype = new Ember.Descriptor();
|
70
|
+
//
|
71
|
+
// var props = {
|
72
|
+
// name: new TestMethodType('something')
|
73
|
+
// };
|
74
|
+
// var RndModel = Ember.Object.extend(props);
|
75
|
+
//
|
76
|
+
// var rndModel = RndModel.create({});
|
77
|
+
// rndModel.set('name','blah');
|
78
|
+
// expect(rndModel.get('name')).toEqual('blahblah');
|
79
|
+
// });
|
80
|
+
|
81
|
+
});
|
data/spec/ember_tojsono_spec.js
CHANGED
@@ -64,7 +64,7 @@ describe("EmberModel toJsono", function() {
|
|
64
64
|
|
65
65
|
it("simple model with embedded object", function() {
|
66
66
|
var input = Product.create(productValues1);
|
67
|
-
input.embedded
|
67
|
+
input.set('embedded',values2);
|
68
68
|
|
69
69
|
var actual = Kojac.Utils.toJsono(input);
|
70
70
|
|
data/spec/error_handling_spec.js
CHANGED
@@ -8,6 +8,7 @@ describe("Error Handling (requires web server)", function() {
|
|
8
8
|
App.cache = new Kojac.Cache();
|
9
9
|
App.kojac = new Kojac.Core({
|
10
10
|
cache: App.cache,
|
11
|
+
apiVersion: 1,
|
11
12
|
remoteProvider: new Kojac.RemoteProvider({
|
12
13
|
serverPath: '/sdfhjdfsdfhsjkhjdfskhjdfsjhkdfsdsf',
|
13
14
|
timeout: 2000
|
@@ -44,6 +45,7 @@ describe("Error Handling (requires web server)", function() {
|
|
44
45
|
App.cache = new Kojac.Cache();
|
45
46
|
App.kojac = new Kojac.Core({
|
46
47
|
cache: App.cache,
|
48
|
+
apiVersion: 1,
|
47
49
|
remoteProvider: new Kojac.RemoteProvider({
|
48
50
|
//serverPath: '/sdfhjdfsdfhsjkhjdfskhjdfsjhkdfsdsf',
|
49
51
|
timeout: 2000
|
data/spec/kojac_caching_spec.js
CHANGED
@@ -4,7 +4,8 @@ describe("Kojac Caching", function() {
|
|
4
4
|
this.cache = new Kojac.Cache();
|
5
5
|
this.kojac = new Kojac.Core({
|
6
6
|
cache: this.cache,
|
7
|
-
remoteProvider: new Kojac.RemoteProvider({useMockFileValues: true,mockFilePath: 'mockjson/'})
|
7
|
+
remoteProvider: new Kojac.RemoteProvider({useMockFileValues: true,mockFilePath: 'mockjson/'}),
|
8
|
+
apiVersion: 1
|
8
9
|
});
|
9
10
|
});
|
10
11
|
|
data/spec/kojac_mock_spec.js
CHANGED
@@ -5,6 +5,7 @@ describe("Kojac Operations", function() {
|
|
5
5
|
var factory = new Kojac.ObjectFactory();
|
6
6
|
this.kojac = new Kojac.Core({
|
7
7
|
cache: this.cache,
|
8
|
+
apiVersion: 1,
|
8
9
|
remoteProvider: new Kojac.RemoteProvider({useMockFileValues: true, mockFilePath: 'mockjson/'}),
|
9
10
|
objectFactory: factory
|
10
11
|
});
|
data/spec/local_provider_spec.js
CHANGED
data/spec/run.html
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
<!--<script type="text/javascript" src="https://raw.github.com/bitovi/canjs/v1.1.0/view/modifiers/modifiers.js"></script>-->
|
24
24
|
<!--<script type="text/javascript" src="https://raw.github.com/bitovi/canjs/v1.1.0/observe/attributes/attributes.js"></script>-->
|
25
25
|
|
26
|
-
<script type="text/javascript" src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.
|
27
|
-
<script type="text/javascript" src="http://builds.emberjs.com/tags/v1.
|
26
|
+
<script type="text/javascript" src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script>
|
27
|
+
<script type="text/javascript" src="http://builds.emberjs.com/tags/v1.6.0/ember.js"></script>
|
28
28
|
|
29
29
|
<!--<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.4/handlebars.js"></script>-->
|
30
30
|
<!--<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.6/ember.js"></script>-->
|
@@ -39,12 +39,13 @@
|
|
39
39
|
<script type="text/javascript" src="kojac_model_spec.js"></script>
|
40
40
|
<script type="text/javascript" src="handler_stack_spec.js"></script>
|
41
41
|
<script type="text/javascript" src="kojac_caching_spec.js"></script>
|
42
|
-
|
42
|
+
<!--<script type="text/javascript" src="error_handling_spec.js"></script>-->
|
43
43
|
<!--<script type="text/javascript" src="can_cache_spec.js"></script>-->
|
44
44
|
<!--<script type="text/javascript" src="can_model_spec.js"></script>-->
|
45
45
|
<!--<script type="text/javascript" src="can_factory_spec.js"></script>-->
|
46
46
|
|
47
47
|
<script type="text/javascript" src="../app/assets/javascripts/kojac_ember.js"></script>
|
48
|
+
<script type="text/javascript" src="ember_override_spec.js"></script>
|
48
49
|
<script type="text/javascript" src="ember_model_spec.js"></script>
|
49
50
|
<script type="text/javascript" src="ember_factory_spec.js"></script>
|
50
51
|
<script type="text/javascript" src="ember_tojsono_spec.js"></script>
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kojac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gary McGhee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: buzztools
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.0.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: underscore_plus
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.9.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pundit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.2.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.2.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -77,7 +77,7 @@ executables: []
|
|
77
77
|
extensions: []
|
78
78
|
extra_rdoc_files: []
|
79
79
|
files:
|
80
|
-
-
|
80
|
+
- .gitignore
|
81
81
|
- Gemfile
|
82
82
|
- MIT-LICENSE
|
83
83
|
- README.md
|
@@ -87,6 +87,8 @@ files:
|
|
87
87
|
- app/assets/javascripts/kojac_canjs.js
|
88
88
|
- app/assets/javascripts/kojac_ember.js
|
89
89
|
- app/controllers/kojac_base_controller.rb
|
90
|
+
- app/controllers/kojac_front_methods.rb
|
91
|
+
- app/controllers/kojac_metal_controller.rb
|
90
92
|
- app/policies/kojac_base_policy.rb
|
91
93
|
- app/serializers/kojac_base_serializer.rb
|
92
94
|
- diagram.odg
|
@@ -167,6 +169,7 @@ files:
|
|
167
169
|
- spec/demo/vendor/assets/stylesheets/.keep
|
168
170
|
- spec/ember_factory_spec.js
|
169
171
|
- spec/ember_model_spec.js
|
172
|
+
- spec/ember_override_spec.js
|
170
173
|
- spec/ember_tojsono_spec.js
|
171
174
|
- spec/error_handling_spec.js
|
172
175
|
- spec/external.zip
|
@@ -223,12 +226,12 @@ require_paths:
|
|
223
226
|
- lib
|
224
227
|
required_ruby_version: !ruby/object:Gem::Requirement
|
225
228
|
requirements:
|
226
|
-
- -
|
229
|
+
- - ! '>='
|
227
230
|
- !ruby/object:Gem::Version
|
228
231
|
version: '0'
|
229
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
233
|
requirements:
|
231
|
-
- -
|
234
|
+
- - ! '>='
|
232
235
|
- !ruby/object:Gem::Version
|
233
236
|
version: '0'
|
234
237
|
requirements: []
|
@@ -307,6 +310,7 @@ test_files:
|
|
307
310
|
- spec/demo/vendor/assets/stylesheets/.keep
|
308
311
|
- spec/ember_factory_spec.js
|
309
312
|
- spec/ember_model_spec.js
|
313
|
+
- spec/ember_override_spec.js
|
310
314
|
- spec/ember_tojsono_spec.js
|
311
315
|
- spec/error_handling_spec.js
|
312
316
|
- spec/external.zip
|
@@ -351,3 +355,4 @@ test_files:
|
|
351
355
|
- spec/spec.js
|
352
356
|
- spec/support/jasmine.yml
|
353
357
|
- spec/type_conversion_spec.js
|
358
|
+
has_rdoc:
|