kojac 0.11.0 → 0.12.0

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