pinkman 0.9.1.2 → 0.9.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 247cc59734974a1ef0f56f5ad8b7b993d86226fe
4
- data.tar.gz: 24c7e182829bde91cd4a73f5af3a4c6430785f19
3
+ metadata.gz: f071ffd276a4ffce048f6c50bf45867239a60193
4
+ data.tar.gz: 7a745e4dfa2cf9d6011b3ef43a8fb694fbddb273
5
5
  SHA512:
6
- metadata.gz: ffdd02eb13502a3cce266ddc4b9c40025cd9bc53fb675ad4b4c5ac9d296c770fb649cd218f45d6d122a4ff6e1576a1a7eaffc375af9fe1cc889255a598dc3c1c
7
- data.tar.gz: 1bffd0181dfe58ebd0775f488484a441b38ffcf2dd561dcf65c40ace9c67f34b8e588407ed0a25caf659c789d411be447ed6e07e7a506012befc25aac1947628
6
+ metadata.gz: 32ec6ef56b0fb4806b223ec8f157e1effb190db6e6082b0b9955ca6d179cb41b16077d6468a6a49d4a646c384246c49af68fc00677cf0a3587c523b2f9f0a48e
7
+ data.tar.gz: f8b506709206275f684f6a235339a9f21e7ddf1cf00c7b7c37faa27c02b2e573b6b8282848a7e232f17c01df7e35891b355e07bb3c44eaa3ad3ed29b0f68af91
@@ -22,6 +22,14 @@ class window.PinkmanCollection extends window.PinkmanCommon
22
22
  attributes: ->
23
23
  return @collection
24
24
 
25
+ # Desc: json version of this
26
+ # desc: used in api comunications
27
+ json: ->
28
+ json = []
29
+ @each (object) ->
30
+ json.push(object.json()) if object.isPink and object.json? and typeof object.json == 'function'
31
+ json
32
+
25
33
  # Desc: collection size
26
34
  count: (criteria='') ->
27
35
  if criteria? and typeof criteria == 'function'
@@ -255,6 +263,10 @@ class window.PinkmanCollection extends window.PinkmanCommon
255
263
  @push(object)
256
264
  return(this)
257
265
 
266
+ # Desc: fetch from array alias
267
+ assign: (array...) ->
268
+ @fetchFromArray(array...)
269
+
258
270
  # Desc: merges this collection with another
259
271
  merge: (collection) ->
260
272
  if Pinkman.isArray(collection)
@@ -1,5 +1,8 @@
1
1
  class window.PinkmanCommon
2
2
 
3
+ constructor: (attributesObject) ->
4
+ @initialize(attributesObject) if attributesObject?
5
+
3
6
  @privateAttributes = ['isPink','isObject','isCollection','pinkey','config','pinkmanType','collections','renderQueue']
4
7
 
5
8
  @mixin: (args...) ->
@@ -12,6 +15,12 @@ class window.PinkmanCommon
12
15
  object.constructor is this
13
16
 
14
17
 
18
+ initialize: (attributesObject) ->
19
+ if typeof attributesObject == 'object'
20
+ for key, value of attributesObject
21
+ @set(key,value) if PinkmanObject.privateAttributes.indexOf(key) is -1
22
+
23
+
15
24
  # Desc: return api url path
16
25
  api: () ->
17
26
  if @config? and @config.api?
@@ -53,4 +62,8 @@ class window.PinkmanCommon
53
62
  Pinkman.reRender this
54
63
 
55
64
  watch: () ->
56
- @_watching = yes
65
+ @_watching = yes
66
+
67
+ queue: (options) ->
68
+ @renderQueue = new PinkmanCollection unless @renderQueue?
69
+ @renderQueue.directPush(options)
@@ -2,8 +2,8 @@ class window.PinkmanObject extends window.PinkmanCommon
2
2
 
3
3
  @pinkmanType: 'object'
4
4
 
5
- constructor: (attributesObject) ->
6
-
5
+ constructor: (args...) ->
6
+ super(args...)
7
7
  @isPink = true
8
8
  @isObject = true
9
9
  @pinkmanType = 'object'
@@ -13,20 +13,13 @@ class window.PinkmanObject extends window.PinkmanCommon
13
13
 
14
14
  Pinkman.objects.push(this)
15
15
  Pinkman.all.push(this)
16
-
17
- @initialize(attributesObject)
18
-
19
- initialize: (attributesObject) ->
20
- if typeof attributesObject == 'object'
21
- for key, value of attributesObject
22
- @set(key,value) if PinkmanObject.privateAttributes.indexOf(key) is -1
23
16
 
24
17
  # Desc: assign attributes from a pure javascript object
25
18
  # Usage: a.assign( {attribute: value} )
26
19
  assign: (obj) ->
27
20
  if typeof obj == 'object'
28
21
  for k,v of obj
29
- if typeof v == 'object' and this[k]? and this[k].isPink? and not v.isPink
22
+ if typeof v == 'object' and this[k]? and this[k].isPink and not v.isPink
30
23
  this[k].assign(v)
31
24
  else
32
25
  this.set(k,v)
@@ -45,6 +38,15 @@ class window.PinkmanObject extends window.PinkmanCommon
45
38
  else
46
39
  a[k] = v
47
40
  return a
41
+
42
+ # Desc: json version of this
43
+ # desc: used in api comunications
44
+ json: () ->
45
+ a = new Object
46
+ for k,v of this
47
+ if PinkmanObject.privateAttributes.indexOf(k) == -1 and typeof v != 'function'
48
+ a[k] = if v.isPink then v.json() else v
49
+ return a
48
50
 
49
51
  # Desc: returns a array of attributes keys
50
52
  # Usage:
@@ -131,7 +133,7 @@ class window.PinkmanObject extends window.PinkmanCommon
131
133
  unless @id?
132
134
  Pinkman.ajax.post
133
135
  url: @api()
134
- data: { pink_obj: @attributes() }
136
+ data: { pink_obj: @json() }
135
137
  complete: (response) =>
136
138
  @assign(response)
137
139
  delete @errors unless response.errors?
@@ -139,11 +141,10 @@ class window.PinkmanObject extends window.PinkmanCommon
139
141
  return(this)
140
142
 
141
143
  update: (callback='') ->
142
- console.log this
143
144
  if @id?
144
145
  Pinkman.ajax.patch
145
146
  url: @api() + @id
146
- data: { pink_obj: @attributes() }
147
+ data: { pink_obj: @json() }
147
148
  complete: (response) =>
148
149
  @assign(response)
149
150
  delete @errors unless response.errors?
@@ -1,6 +1,3 @@
1
- PinkmanCollection.prototype.renderQueue = new PinkmanCollection
2
- PinkmanObject.prototype.renderQueue = new PinkmanCollection
3
-
4
1
  Pinkman.templates = new Pinkman.collection
5
2
 
6
3
  Pinkman.template_engine = '<%= Pinkman.configuration.js_template_engine %>'
@@ -16,6 +13,7 @@ Pinkman.template_engines =
16
13
  Pinkman.templates.push(template)
17
14
 
18
15
  options.object = options.context if options.context?
16
+ options.object = new Object unless options.object? and typeof options.object == 'object'
19
17
  content = template.handlebars(options.object)
20
18
 
21
19
 
@@ -36,6 +34,7 @@ Pinkman.template_engines =
36
34
  Pinkman.templates.push(template)
37
35
 
38
36
  options.object = options.context if options.context?
37
+ options.object = new Object unless options.object? and typeof options.object == 'object'
39
38
  content = template.hogan.render(options.object)
40
39
 
41
40
  if options.target?
@@ -55,6 +54,7 @@ Pinkman.template_engines =
55
54
  Pinkman.templates.push(template)
56
55
 
57
56
  options.object = options.context if options.context?
57
+ options.object = new Object unless options.object? and typeof options.object == 'object'
58
58
  content = template.markup($('#'+options.template).html(),options.object)
59
59
 
60
60
  if options.target?
@@ -70,7 +70,7 @@ Pinkman.render = (options) ->
70
70
 
71
71
  engine = Pinkman.template_engines[Pinkman.template_engine]
72
72
  content = engine(options)
73
- options.object.renderQueue.directPush(options) if options.reRender and options.object? and options.object.isPink
73
+ options.object.queue(options) if options.reRender and options.object? and options.object.isPink
74
74
 
75
75
  Pinkman.reRender = (object) ->
76
76
  engine = Pinkman.template_engines[Pinkman.template_engine]
@@ -17,8 +17,12 @@ module PinkmanHelper
17
17
  wrap_in('collection',&block)
18
18
  end
19
19
 
20
+ def each &block
21
+ collection(&block)
22
+ end
23
+
20
24
  def write string
21
- raw("{{ #{string} }}")
25
+ raw("{{#{string}}}")
22
26
  end
23
27
 
24
28
  def w *args
@@ -13,11 +13,11 @@ module Pinkman
13
13
  private
14
14
 
15
15
  def object_filename
16
- app_name.underscore.downcase + '_object.coffee'
16
+ 'app_object.coffee'
17
17
  end
18
18
 
19
19
  def collection_filename
20
- app_name.underscore.downcase + '_collection.coffee'
20
+ 'app_collection.coffee'
21
21
  end
22
22
 
23
23
  def app_name
@@ -1,3 +1,3 @@
1
1
  module Pinkman
2
- VERSION = "0.9.1.2"
2
+ VERSION = "0.9.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinkman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1.2
4
+ version: 0.9.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agilso Oliveira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-20 00:00:00.000000000 Z
11
+ date: 2017-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler