kojac 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|