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.
@@ -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).serializable_object
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
- return unless policy = Kojac.policy!(kojac_current_user,aItem)
346
- aOptions ||= {}
347
- if included_assocs = aOptions[:include]
348
- included_assocs = included_assocs.split(',') if included_assocs.is_a?(String)
349
- included_assocs = [included_assocs] unless included_assocs.is_a?(Array)
350
- included_assocs.map!(&:to_sym) if included_assocs.is_a?(Array)
351
- p_assocs = policy.permitted_associations(:read) # ***
352
- use_assocs = p_assocs.delete_if do |a|
353
- if included_assocs.include?(a) and ma = aItem.class.reflect_on_association(a)
354
- ![:belongs_to,:has_many].include?(ma.macro) # is supported association type
355
- else
356
- true # no such assoc
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
- end
359
- use_assocs.each do |a|
360
- next unless a_contents = aItem.send(a)
361
- if a_contents.is_a? Array
362
- contents_h = []
363
- a_contents.each do |sub_item|
364
- results[sub_item.kojac_key] = KojacUtils.to_jsono(sub_item,scope: kojac_current_user)
365
- #contents_h << sub_item.id
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 self.item = scope.load_by_key(op[:key],op)
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
@@ -1,3 +1,3 @@
1
1
  module Kojac
2
- VERSION = "0.11.0"
2
+ VERSION = "0.12.0"
3
3
  end
@@ -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
 
@@ -71,7 +71,7 @@ describe("Ember Factory", function() {
71
71
  }
72
72
  ];
73
73
 
74
- var emberObjects = factory.emberObjectFactoryArray(source,'order_item');
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);
@@ -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(Product2.getDefinitions()).toEqual({
50
- name: String,
51
- purchases: Int,
52
- weight: Number,
53
- isMember: Boolean
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[p] = initValues[p];
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
+ });
@@ -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 = values2;
67
+ input.set('embedded',values2);
68
68
 
69
69
  var actual = Kojac.Utils.toJsono(input);
70
70
 
@@ -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
@@ -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
 
@@ -21,6 +21,7 @@ describe("Kojac Mock", function() {
21
21
  ]);
22
22
  App.kojac = new Kojac.Core({
23
23
  cache: App.cache,
24
+ apiVersion: 1,
24
25
  remoteProvider: new Kojac.RemoteProvider({useMockFileValues: true, mockFilePath: 'mockjson/'}),
25
26
  objectFactory: factory
26
27
  });
@@ -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
  });
@@ -23,6 +23,7 @@ describe("LocalStorageRemoteProvider", function() {
23
23
  ]);
24
24
  this.kojac = new Kojac.Core({
25
25
  cache: this.cache,
26
+ apiVersion: 1,
26
27
  remoteProvider: new Kojac.LocalStorageRemoteProvider(),
27
28
  objectFactory: factory
28
29
  });
@@ -21,6 +21,7 @@ describe("Operation include spec", function() {
21
21
  ]);
22
22
  App.kojac = new Kojac.Core({
23
23
  cache: App.cache,
24
+ apiVersion: 1,
24
25
  remoteProvider: new Kojac.RemoteProvider(),
25
26
  objectFactory: factory
26
27
  });
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.1.2.js"></script>
27
- <script type="text/javascript" src="http://builds.emberjs.com/tags/v1.2.0/ember.js"></script>
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
- <script type="text/javascript" src="error_handling_spec.js"></script>
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.11.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-05-15 00:00:00.000000000 Z
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
- - ".gitignore"
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: