abstracted 0.2.7 → 0.2.8
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 +4 -4
- data/app/assets/javascripts/abstracted/app.fab_delete.coffee +6 -8
- data/app/assets/javascripts/abstracted/app.resource_form.coffee +21 -33
- data/app/assets/javascripts/abstracted/app.resources_list.coffee +30 -30
- data/app/assets/javascripts/abstracted/app.shared.coffee +22 -18
- data/app/assets/javascripts/abstracted/app.sweetalert.coffee +2 -2
- data/app/assets/javascripts/abstracted/keypress.coffee +1 -1
- data/app/assets/javascripts/init.js.coffee +14 -2
- data/lib/abstracted/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b73dcabdb96ea0290f29b71b1a46515a3657754
|
4
|
+
data.tar.gz: e9c098ac91e56ed4ff7e2f6b440e8dcc89d9cc68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 313f43d9bc4948b6e23e496f4a1dab414bcb823e3f5789285cb1b0bb9cabd920a2a551f3e223251cb2d91a9c45c4e876dd8dbd82849532ffb3b77fcf808d39f5
|
7
|
+
data.tar.gz: 250a29942397a4660686d96d46e0104c78d7938b44ec2db93ce4db14cb681605475c718a26b3681f9f6f68246f5179613d6994bee8a9ef3a1306feb7ad4dca3c
|
@@ -1,9 +1,7 @@
|
|
1
1
|
class App.fabDelete
|
2
|
+
|
2
3
|
constructor: (@el) ->
|
3
4
|
# initialize some stuff
|
4
|
-
@shared = new App.Shared()
|
5
|
-
|
6
|
-
|
7
5
|
|
8
6
|
closeSweetAlert: ($elem=null) =>
|
9
7
|
try
|
@@ -81,7 +79,7 @@ class App.fabDelete
|
|
81
79
|
return
|
82
80
|
|
83
81
|
loader = '<div class="preloader-wrapper medium active"> <div class="spinner-layer spinner-blue-only"> <div class="circle-clipper left"> <div class="circle"></div> </div><div class="gap-patch"> <div class="circle"></div> </div><div class="circle-clipper right"> <div class="circle"></div> </div> </div> </div>'
|
84
|
-
|
82
|
+
App.shared.setLoader( $(elem).closest('.fixed-action-btn'),loader)
|
85
83
|
oxremote = elem.data('oxremote')
|
86
84
|
if (oxremote=='false' or oxremote==false)
|
87
85
|
switch elem.data('method')
|
@@ -96,16 +94,16 @@ class App.fabDelete
|
|
96
94
|
jqxhr = $.ajax
|
97
95
|
url: elem.data('url') || elem.attr('href')
|
98
96
|
type: elem.data('method') || 'get'
|
99
|
-
data:
|
97
|
+
data: App.shared.dataArgumentOn(elem)
|
100
98
|
dataType: elem.data('type') || 'html'
|
101
99
|
.done (data) =>
|
102
|
-
|
100
|
+
App.shared.releaseLoader()
|
103
101
|
if elem.data('modal')
|
104
102
|
$(elem.data('modal')).html(data).openModal()
|
105
103
|
else
|
106
104
|
$(document.body).append(data)
|
107
105
|
.error (data) =>
|
108
|
-
|
106
|
+
App.shared.releaseLoader()
|
109
107
|
$(document.body).append(data)
|
110
108
|
return false
|
111
109
|
|
@@ -131,7 +129,7 @@ class App.fabDelete
|
|
131
129
|
closeOnConfirm: false,
|
132
130
|
confirmButtonText: "Yes, delete it!",
|
133
131
|
confirmButtonColor: "#ec6c62",
|
134
|
-
(confirmed)
|
132
|
+
(confirmed) =>
|
135
133
|
if !confirmed
|
136
134
|
@closeSweetAlert($elem)
|
137
135
|
else
|
@@ -1,8 +1,6 @@
|
|
1
1
|
class App.ResourceForm
|
2
2
|
constructor: (@el) ->
|
3
3
|
# initialize some stuff
|
4
|
-
inputForm = null
|
5
|
-
|
6
4
|
|
7
5
|
#
|
8
6
|
# make sure fields with values do not have their labels obscuring your view
|
@@ -16,43 +14,33 @@ class App.ResourceForm
|
|
16
14
|
#console.log this
|
17
15
|
|
18
16
|
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
|
22
|
-
#
|
23
|
-
initializeForm: (f) ->
|
24
|
-
@inputForm = f
|
25
|
-
#
|
26
|
-
# Initialize SELECT's
|
27
|
-
#
|
28
|
-
$('select').each () ->
|
29
|
-
# remove span.caret's from previous 'runs' - however that happens
|
30
|
-
$(this).parent().parent().find('span.caret').remove()
|
31
|
-
$(this).material_select()
|
32
|
-
|
33
|
-
#
|
34
|
-
# make labels on fields with content move out of the way
|
35
|
-
#
|
36
|
-
@setLabels('.input-field label')
|
17
|
+
# prepare the form - a data: {form_type: record }
|
18
|
+
# kind of form that is
|
19
|
+
prepare: ->
|
37
20
|
|
38
|
-
|
39
|
-
# Initialize INPUT TYPE='DATE'
|
40
|
-
#
|
41
|
-
# %input.datepicker{ type:"date" }
|
42
|
-
#
|
43
|
-
$('.datepicker').pickadate
|
44
|
-
selectMonths: true, # Creates a dropdown to control month
|
45
|
-
selectYears: 15 # Creates a dropdown of 15 years to control year
|
21
|
+
try
|
46
22
|
|
23
|
+
#
|
24
|
+
# Initialize SELECT's
|
25
|
+
#
|
26
|
+
$('select').each () ->
|
27
|
+
# remove span.caret's from previous 'runs' - however that happens
|
28
|
+
$(this).parent().parent().find('span.caret').remove()
|
29
|
+
$(this).material_select()
|
47
30
|
|
48
|
-
|
31
|
+
#
|
32
|
+
# make labels on fields with content move out of the way
|
33
|
+
#
|
34
|
+
@setLabels('.input-field label')
|
49
35
|
|
50
|
-
try
|
51
36
|
#
|
52
|
-
#
|
37
|
+
# Initialize INPUT TYPE='DATE'
|
38
|
+
#
|
39
|
+
# %input.datepicker{ type:"date" }
|
53
40
|
#
|
54
|
-
$('
|
55
|
-
|
41
|
+
$('.datepicker').pickadate
|
42
|
+
selectMonths: true, # Creates a dropdown to control month
|
43
|
+
selectYears: 15 # Creates a dropdown of 15 years to control year
|
56
44
|
|
57
45
|
catch error
|
58
46
|
alert 'App.ResourceForm did not prepare!'
|
@@ -2,8 +2,8 @@ class App.ResourcesList
|
|
2
2
|
|
3
3
|
constructor: (@el) ->
|
4
4
|
# initialize some stuff
|
5
|
-
@
|
6
|
-
|
5
|
+
@searchForm = @el[0]
|
6
|
+
|
7
7
|
#
|
8
8
|
# printPost handles printing posts either way
|
9
9
|
#
|
@@ -30,12 +30,12 @@ class App.ResourcesList
|
|
30
30
|
# </a>
|
31
31
|
#
|
32
32
|
# data-url="", data-id="", data-print-action="", data-message-ok="", data-message-error=""
|
33
|
-
printPost: (elem)
|
33
|
+
printPost: (elem) =>
|
34
34
|
elem = $(elem)
|
35
35
|
url = elem.data('url') || elem.attr('href')
|
36
36
|
if elem.data('browser')=='new'
|
37
|
-
|
38
|
-
window.open url + '?' + $.param dataArgumentOn(elem)
|
37
|
+
App.shared.releaseLoader()
|
38
|
+
window.open url + '?' + $.param App.shared.dataArgumentOn(elem)
|
39
39
|
return
|
40
40
|
|
41
41
|
oxremote = elem.data('oxremote')
|
@@ -53,19 +53,19 @@ class App.ResourcesList
|
|
53
53
|
jqxhr = $.ajax
|
54
54
|
url: elem.data('url') || elem.attr('href')
|
55
55
|
type: elem.data('method') || 'get'
|
56
|
-
data: dataArgumentOn(elem)
|
56
|
+
data: App.shared.dataArgumentOn(elem)
|
57
57
|
dataType: elem.data('type') || 'html'
|
58
|
-
.done (data)
|
59
|
-
|
58
|
+
.done (data) =>
|
59
|
+
App.shared.releaseLoader()
|
60
60
|
if elem.data('download')
|
61
|
-
|
61
|
+
App.shared.getDownload(jqxhr,data)
|
62
62
|
else
|
63
63
|
$(document.body).append(data)
|
64
64
|
|
65
|
-
.fail (response,status)
|
66
|
-
|
65
|
+
.fail (response,status) =>
|
66
|
+
App.shared.releaseLoader()
|
67
67
|
if jqxhr.state=='rejected'
|
68
|
-
|
68
|
+
App.shared.reportError('Der er ingen forbindelse til serveren - prøv lidt senere!')
|
69
69
|
else
|
70
70
|
$(document.body).append(response.responseText)
|
71
71
|
|
@@ -106,10 +106,10 @@ class App.ResourcesList
|
|
106
106
|
#
|
107
107
|
# searchPost handles ordering search on index actions
|
108
108
|
#
|
109
|
-
orderSearch: (url,query)
|
109
|
+
orderSearch: (url,query) =>
|
110
110
|
loader = '<div class="preloader-wrapper small active"> <div class="spinner-layer spinner-blue-only"> <div class="circle-clipper left"> <div class="circle"></div> </div><div class="gap-patch"> <div class="circle"></div> </div><div class="circle-clipper right"> <div class="circle"></div> </div> </div> </div>'
|
111
111
|
loaded_element = $('.fixed-action-btn')
|
112
|
-
|
112
|
+
App.shared.setLoader( loaded_element,loader )
|
113
113
|
window.location.href= url + '?q=' + encodeURIComponent(query)
|
114
114
|
|
115
115
|
|
@@ -117,7 +117,7 @@ class App.ResourcesList
|
|
117
117
|
# handleAttachLinks
|
118
118
|
# allows for attaching/detaching resources from their parents - like: /admin/users/2/printers/3/attach.js
|
119
119
|
#
|
120
|
-
handleAttachLinks: (e)
|
120
|
+
handleAttachLinks: (e) =>
|
121
121
|
e.preventDefault()
|
122
122
|
e.stopPropagation()
|
123
123
|
|
@@ -126,10 +126,10 @@ class App.ResourcesList
|
|
126
126
|
url: $elem.attr('href'),
|
127
127
|
type: "get",
|
128
128
|
dataType: 'html'
|
129
|
-
.done (data)
|
129
|
+
.done (data) =>
|
130
130
|
$( $elem[0].parentElement).html(data)
|
131
131
|
|
132
|
-
.error (data)
|
132
|
+
.error (data) =>
|
133
133
|
swal("Oops", "We couldn't connect to the server!", "error")
|
134
134
|
return false
|
135
135
|
|
@@ -137,7 +137,7 @@ class App.ResourcesList
|
|
137
137
|
# handleActivateLinks
|
138
138
|
# allows for activating/deactivating resources - like: /admin/users/2/activate
|
139
139
|
#
|
140
|
-
handleActivateLinks: (e)
|
140
|
+
handleActivateLinks: (e) =>
|
141
141
|
e.preventDefault()
|
142
142
|
e.stopPropagation()
|
143
143
|
|
@@ -146,10 +146,10 @@ class App.ResourcesList
|
|
146
146
|
url: $elem.attr('href'),
|
147
147
|
type: "get",
|
148
148
|
dataType: 'html'
|
149
|
-
.done (data)
|
149
|
+
.done (data) =>
|
150
150
|
$( $elem[0].parentElement).html(data)
|
151
151
|
|
152
|
-
.error (data)
|
152
|
+
.error (data) =>
|
153
153
|
swal("Oops", "We couldn't connect to the server!", "error")
|
154
154
|
return false
|
155
155
|
|
@@ -158,7 +158,7 @@ class App.ResourcesList
|
|
158
158
|
# handlePreferredLinks
|
159
159
|
# allows for activating/deactivating resources - like: /admin/users/2/activate
|
160
160
|
#
|
161
|
-
handlePreferredLinks: (e)
|
161
|
+
handlePreferredLinks: (e) =>
|
162
162
|
e.preventDefault()
|
163
163
|
e.stopPropagation()
|
164
164
|
|
@@ -167,15 +167,15 @@ class App.ResourcesList
|
|
167
167
|
url: $elem.attr('href'),
|
168
168
|
type: "get",
|
169
169
|
dataType: 'html'
|
170
|
-
.done (data)
|
170
|
+
.done (data) =>
|
171
171
|
# here we have to write all the existing preferred ones
|
172
|
-
$.when $('i.preferred').each (k,e)
|
172
|
+
$.when $('i.preferred').each (k,e) =>
|
173
173
|
$e = $(e)
|
174
174
|
$( $e[0].parentElement).html( data.replace /{{id}}/, $e.data('id'))
|
175
175
|
# $( $elem[0].parentElement).html(data)
|
176
176
|
.then $( $elem[0].parentElement).html('<i class="preferred material-icons green-text" data-id="' + $elem.data('id') + '">bookmark</i>')
|
177
177
|
|
178
|
-
.error (data)
|
178
|
+
.error (data) =>
|
179
179
|
swal("Oops", "We couldn't connect to the server!", "error")
|
180
180
|
return false
|
181
181
|
|
@@ -183,14 +183,14 @@ class App.ResourcesList
|
|
183
183
|
# handlePrintLinks
|
184
184
|
# initializes the tags classed with '.print_post_link' to print a post
|
185
185
|
#
|
186
|
-
handlePrintLinks: (e)
|
186
|
+
handlePrintLinks: (e) =>
|
187
187
|
e.preventDefault()
|
188
188
|
e.stopPropagation()
|
189
189
|
|
190
190
|
$elem = $(e.currentTarget)
|
191
191
|
loader = '<div class="preloader-wrapper small active"> <div class="spinner-layer spinner-blue-only"> <div class="circle-clipper left"> <div class="circle"></div> </div><div class="gap-patch"> <div class="circle"></div> </div><div class="circle-clipper right"> <div class="circle"></div> </div> </div> </div>'
|
192
192
|
loaded_element = $elem.closest('.loader_container')
|
193
|
-
|
193
|
+
App.shared.setLoader( loaded_element,loader )
|
194
194
|
@printPost($elem)
|
195
195
|
return false
|
196
196
|
|
@@ -202,7 +202,7 @@ class App.ResourcesList
|
|
202
202
|
e.preventDefault()
|
203
203
|
e.stopPropagation()
|
204
204
|
$elem = $('input.search-list')
|
205
|
-
@orderSearch(@
|
205
|
+
@orderSearch(@searchForm.action, $elem.val())
|
206
206
|
|
207
207
|
#
|
208
208
|
# starting a search - and making some noise about it!
|
@@ -211,10 +211,10 @@ class App.ResourcesList
|
|
211
211
|
e.preventDefault()
|
212
212
|
e.stopPropagation()
|
213
213
|
$elem = $('input.search-list')
|
214
|
-
@orderSearch(@
|
214
|
+
@orderSearch(@searchForm.action, $elem.val())
|
215
215
|
|
216
216
|
|
217
|
-
prepare:
|
217
|
+
prepare: =>
|
218
218
|
|
219
219
|
try
|
220
220
|
$(document.body).unbind('click.print')
|
@@ -229,7 +229,7 @@ class App.ResourcesList
|
|
229
229
|
#
|
230
230
|
# If this page has a resources_list
|
231
231
|
#
|
232
|
-
$('table.resources_table').map (k,t)
|
232
|
+
$('table.resources_table').map (k,t) =>
|
233
233
|
$(document.body).on 'click.attach', 'a.attached, a.detached', @handleAttachLinks
|
234
234
|
$(document.body).on 'click.activate', 'a.activated, a.deactivated', @handleActivateLinks
|
235
235
|
$(document.body).on 'click.prefer', 'a.preferred, a.deferred', @handlePreferredLinks
|
@@ -2,15 +2,20 @@
|
|
2
2
|
# to make room for a loader
|
3
3
|
#
|
4
4
|
class App.Shared
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
constructor: (@el) ->
|
6
|
+
# initialize some stuff
|
7
|
+
# it will be re-instated with releaseLoader
|
8
|
+
@loaded_html = ""
|
9
|
+
@loaded_element = ""
|
10
|
+
@currentForm = ""
|
10
11
|
|
12
|
+
setCurrentForm: (f) =>
|
13
|
+
@currentForm = f
|
11
14
|
|
15
|
+
getCurrentForm: =>
|
16
|
+
@currentForm
|
12
17
|
|
13
|
-
getDownload: (xhr,data)
|
18
|
+
getDownload: (xhr,data) =>
|
14
19
|
# Check if a filename is existing on the response headers.
|
15
20
|
filename = ""
|
16
21
|
disposition = xhr.getResponseHeader("Content-Disposition")
|
@@ -21,7 +26,6 @@ class App.Shared
|
|
21
26
|
filename = matches[1].replace(/[""]/g, "")
|
22
27
|
#
|
23
28
|
type = xhr.getResponseHeader("Content-Type")
|
24
|
-
console.log 'getDownload ' + type
|
25
29
|
blob = new Blob([data], {type: type})
|
26
30
|
#
|
27
31
|
if typeof window.navigator.msSaveBlob != "undefined"
|
@@ -55,7 +59,7 @@ class App.Shared
|
|
55
59
|
# 03-07-2015 (whd) not sure whether this method is OK!!!!
|
56
60
|
# cp'ed from: http://scriptcult.com/subcategory_1/article_414-copy-or-clone-javascript-array-object
|
57
61
|
#
|
58
|
-
cloneObject: (source)
|
62
|
+
cloneObject: (source) =>
|
59
63
|
for i in source
|
60
64
|
if typeof source[i] == 'source'
|
61
65
|
this[i] = new cloneObject source[i]
|
@@ -70,24 +74,24 @@ class App.Shared
|
|
70
74
|
#
|
71
75
|
setLoader: (elem,html) =>
|
72
76
|
html ||= '<div class="progress"><div class="indeterminate"></div></div>'
|
73
|
-
loaded_element = $(elem)
|
74
|
-
loaded_html = elem.html()
|
77
|
+
@loaded_element = $(elem)
|
78
|
+
@loaded_html = elem.html()
|
75
79
|
elem.html(html)
|
76
|
-
return loaded_html
|
80
|
+
return @loaded_html
|
77
81
|
|
78
82
|
#
|
79
83
|
# release the loader
|
80
84
|
#
|
81
85
|
releaseLoader: (elem=null) =>
|
82
|
-
elem ||= loaded_element
|
83
|
-
$(elem).html(loaded_html)
|
86
|
+
elem ||= @loaded_element
|
87
|
+
$(elem).html(@loaded_html)
|
84
88
|
|
85
|
-
tellResponse: (msg,anchor='.message_container',fade=15000,selector='.alert')
|
89
|
+
tellResponse: (msg,anchor='.message_container',fade=15000,selector='.alert') =>
|
86
90
|
$(anchor).prepend(msg)
|
87
91
|
if fade>0
|
88
92
|
fadeItOut $(anchor).find(selector), 15000
|
89
93
|
|
90
|
-
reportError: (msg)
|
94
|
+
reportError: (msg) =>
|
91
95
|
Materialize.toast( msg, 4500, 'red lighten-3')
|
92
96
|
|
93
97
|
|
@@ -95,7 +99,7 @@ class App.Shared
|
|
95
99
|
# fadeItOut will fade an element out with a preset or
|
96
100
|
# supplied delay
|
97
101
|
#
|
98
|
-
fadeItOut: (e,delay=3500)
|
102
|
+
fadeItOut: (e,delay=3500) =>
|
99
103
|
$(e).delay( delay ).fadeOut( 1000 )
|
100
104
|
|
101
105
|
#
|
@@ -104,7 +108,7 @@ class App.Shared
|
|
104
108
|
#
|
105
109
|
# excemptions: data-id, data-remote, data-ajax, data-method, data-type and data-url
|
106
110
|
#
|
107
|
-
dataArgumentOn: (elem)
|
111
|
+
dataArgumentOn: (elem) =>
|
108
112
|
$(elem).data()
|
109
113
|
# try
|
110
114
|
#
|
@@ -117,7 +121,7 @@ class App.Shared
|
|
117
121
|
#
|
118
122
|
# check to see iff this browser supperts the File APIs
|
119
123
|
#
|
120
|
-
fileApiSupportCheck: ()
|
124
|
+
fileApiSupportCheck: () =>
|
121
125
|
if (window.File && window.FileReader && window.FileList && window.Blob)
|
122
126
|
# All the File APIs are supported.
|
123
127
|
console.log 'file APIs supported '
|
@@ -7,7 +7,7 @@ class App.SweetAlert
|
|
7
7
|
# initializeSweetAlert
|
8
8
|
# initializes the sweetalert prompt
|
9
9
|
#
|
10
|
-
initializeSweetAlert: ()
|
10
|
+
initializeSweetAlert: () =>
|
11
11
|
try
|
12
12
|
# console.log 'sweet alert initializing...'
|
13
13
|
# sweetHTML = '<div class="sweet-overlay" tabIndex="-1"></div><div class="sweet-alert" tabIndex="-1"><div class="icon error"><span class="x-mark"><span class="line left"></span><span class="line right"></span></span></div><div class="icon warning"> <span class="body"></span> <span class="dot"></span> </div> <div class="icon info"></div> <div class="icon success"> <span class="line tip"></span> <span class="line long"></span> <div class="placeholder"></div> <div class="fix"></div> </div> <div class="icon custom"></div> <h2>Title</h2><p>Text</p><button class="cancel" tabIndex="2">Cancel</button><button class="confirm" tabIndex="1">OK</button></div>'
|
@@ -19,7 +19,7 @@ class App.SweetAlert
|
|
19
19
|
console.log 'sweetalert says: ' + error
|
20
20
|
|
21
21
|
|
22
|
-
prepare:
|
22
|
+
prepare: =>
|
23
23
|
|
24
24
|
try
|
25
25
|
if ($('.sweet-alert').length<1)
|
@@ -3,7 +3,16 @@
|
|
3
3
|
#
|
4
4
|
# reacts to 'app.something' events
|
5
5
|
#
|
6
|
-
window.App ||= { name: 'App'}
|
6
|
+
window.App ||= { name: 'App', shared: null, cf: null }
|
7
|
+
|
8
|
+
App.shared = ->
|
9
|
+
@shared
|
10
|
+
|
11
|
+
App.currentForm = (val) ->
|
12
|
+
@shared.setCurrentForm(val)
|
13
|
+
|
14
|
+
App.currentForm = ->
|
15
|
+
@shared.getCurrentForm()
|
7
16
|
|
8
17
|
App.trigger = (event) ->
|
9
18
|
$(App).trigger(event)
|
@@ -11,6 +20,8 @@ App.trigger = (event) ->
|
|
11
20
|
#
|
12
21
|
# signal App
|
13
22
|
App.init = ->
|
23
|
+
|
24
|
+
@shared = new App.Shared()
|
14
25
|
#
|
15
26
|
App.trigger('app:init')
|
16
27
|
#
|
@@ -35,4 +46,5 @@ App.pageload = ->
|
|
35
46
|
# closeNotice
|
36
47
|
# will close the notice DIV
|
37
48
|
App.closeNotice = (e) ->
|
38
|
-
|
49
|
+
shared = new App.Shared()
|
50
|
+
shared.fadeItOut $(e).closest('.alert') #.remove()
|
data/lib/abstracted/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abstracted
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Walther H Diechmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|