type_station 0.3.0 → 0.3.1
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/type_station/editables/entity_editor.js.coffee +14 -8
- data/lib/type_station/version.rb +1 -1
- data/spec/dummy/log/development.log +243 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/48d06b052d87bd96e9e9b8a50a69b18a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4c48023968030daffd8c05e4e1ea78bf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/722eee3ce416c20905dda68eab3d517e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/afa9de4377b9615980b737000fc68a2a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ccc931022e80caf6ac008099f2589e7d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d5de77884a5b0a88b13f76a0d8d2075e +0 -0
- data/spec/dummy/tmp/pids/server.pid +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: 7f727c42559fda0d1785aae498049d5962a2392b
|
|
4
|
+
data.tar.gz: a79ed1ec8452901ffdcc2ed74c37412fcedf9d8a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6fa59979d74fb32558047c115fec04d7697b545e5cda8b6e639bbb986133ba292e6f806cb39d2ed4344eb2135df4213f3605b7a8525900c620dca7bade7dc6b7
|
|
7
|
+
data.tar.gz: 916db463f86df89a663471bd25656030e3bd086e0367aed6b7c9a76927757265d6df964aa2d82ea23f3c0d4d9f44275e09b99814eb3fd047e765243ffbd66743
|
|
@@ -97,11 +97,13 @@ handleCreateEditEntity = (editor) ->
|
|
|
97
97
|
when 'html'
|
|
98
98
|
valid = true
|
|
99
99
|
else
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
check_value = v.replace(/[\{\}\.\,\:\;\/\&\?\!\(\)]/g, '')
|
|
101
|
+
if check_value.length > 0
|
|
102
|
+
if check_value.length > 1 # seems to be an issue when the text length is around 1 ? :confused:
|
|
103
|
+
try
|
|
104
|
+
valid = !$(check_value).is('*')
|
|
105
|
+
catch
|
|
106
|
+
valid = false
|
|
105
107
|
else
|
|
106
108
|
break
|
|
107
109
|
|
|
@@ -133,9 +135,13 @@ handleCreateEditEntity = (editor) ->
|
|
|
133
135
|
when 'html'
|
|
134
136
|
valid = true
|
|
135
137
|
else
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
check_value = v.replace(/[\{\}\.\,\:\;\/\&\?\!\(\)]/g, '')
|
|
139
|
+
if check_value.length > 0
|
|
140
|
+
if check_value.length > 1 # seems to be an issue when the text length is around 1 ? :confused:
|
|
141
|
+
try
|
|
142
|
+
valid = !$(check_value).is('*')
|
|
143
|
+
catch
|
|
144
|
+
valid = false
|
|
139
145
|
else
|
|
140
146
|
break
|
|
141
147
|
contents.push({ field: k, value: v, type: field.type })
|
data/lib/type_station/version.rb
CHANGED
|
@@ -10136,3 +10136,246 @@ Started GET "/assets/type_station/application.js?body=1" for 192.168.99.1 at 201
|
|
|
10136
10136
|
|
|
10137
10137
|
|
|
10138
10138
|
Started GET "/assets/ionicons.ttf?v=2.0.0" for 192.168.99.1 at 2016-02-11 22:12:19 +0000
|
|
10139
|
+
|
|
10140
|
+
|
|
10141
|
+
Started GET "/" for 192.168.99.1 at 2016-02-12 11:32:13 +0000
|
|
10142
|
+
Processing by Rails::WelcomeController#index as HTML
|
|
10143
|
+
Rendered /usr/local/bundle/gems/railties-4.2.0/lib/rails/templates/rails/welcome/index.html.erb (8.5ms)
|
|
10144
|
+
Completed 200 OK in 50ms (Views: 49.7ms)
|
|
10145
|
+
|
|
10146
|
+
|
|
10147
|
+
Started GET "/type_station" for 192.168.99.1 at 2016-02-12 11:32:18 +0000
|
|
10148
|
+
Processing by TypeStation::PagesController#index as HTML
|
|
10149
|
+
MOPED: 172.17.0.4:27017 COMMAND database=admin command={:ismaster=>1} runtime: 1.4339ms
|
|
10150
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=>nil, "_type"=>{"$in"=>["TypeStation::Page"]}}, "$orderby"=>{"position"=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 4.9229ms
|
|
10151
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=><BSON::ObjectId:0x46992737950000 data=55c9024d6531330008000000>, "_type"=>"TypeStation::Page"}, "$orderby"=>{"position"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.7564ms
|
|
10152
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=><BSON::ObjectId:0x46992737950000 data=55c9024d6531330008000000>, "_type"=>{"$in"=>["Team"]}}, "$orderby"=>{"position"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.7169ms
|
|
10153
|
+
Rendered /workspace/app/views/type_station/toolbars/_admin_bar.html.haml (46.4ms)
|
|
10154
|
+
Rendered pages/index_other.html.erb within layouts/application (730.1ms)
|
|
10155
|
+
Completed 200 OK in 3276ms (Views: 3192.8ms)
|
|
10156
|
+
|
|
10157
|
+
|
|
10158
|
+
Started GET "/assets/jquery.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10159
|
+
|
|
10160
|
+
|
|
10161
|
+
Started GET "/assets/application.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10162
|
+
|
|
10163
|
+
|
|
10164
|
+
Started GET "/assets/medium-editor/medium-editor.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10165
|
+
|
|
10166
|
+
|
|
10167
|
+
Started GET "/assets/medium-editor/themes/bootstrap.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10168
|
+
|
|
10169
|
+
|
|
10170
|
+
Started GET "/assets/application.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10171
|
+
|
|
10172
|
+
|
|
10173
|
+
Started GET "/assets/jquery.textcomplete.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10174
|
+
|
|
10175
|
+
|
|
10176
|
+
Started GET "/assets/chosen.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10177
|
+
|
|
10178
|
+
|
|
10179
|
+
Started GET "/assets/drop-theme-arrows-bounce-dark.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:22 +0000
|
|
10180
|
+
|
|
10181
|
+
|
|
10182
|
+
Started GET "/assets/vex.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10183
|
+
|
|
10184
|
+
|
|
10185
|
+
Started GET "/assets/vex-theme-os.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10186
|
+
|
|
10187
|
+
|
|
10188
|
+
Started GET "/assets/ionicons.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10189
|
+
|
|
10190
|
+
|
|
10191
|
+
Started GET "/assets/type_station/admin_bar.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10192
|
+
|
|
10193
|
+
|
|
10194
|
+
Started GET "/assets/type_station/base.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10195
|
+
|
|
10196
|
+
|
|
10197
|
+
Started GET "/assets/type_station/application.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10198
|
+
|
|
10199
|
+
|
|
10200
|
+
Started GET "/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10201
|
+
|
|
10202
|
+
|
|
10203
|
+
Started GET "/assets/jquery-fileupload/jquery.iframe-transport.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10204
|
+
|
|
10205
|
+
|
|
10206
|
+
Started GET "/assets/jquery-fileupload/jquery.fileupload.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:23 +0000
|
|
10207
|
+
|
|
10208
|
+
|
|
10209
|
+
Started GET "/assets/jquery-fileupload/basic.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10210
|
+
|
|
10211
|
+
|
|
10212
|
+
Started GET "/assets/jquery.cloudinary.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10213
|
+
|
|
10214
|
+
|
|
10215
|
+
Started GET "/assets/jquery.textcomplete.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10216
|
+
|
|
10217
|
+
|
|
10218
|
+
Started GET "/assets/classList.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10219
|
+
|
|
10220
|
+
|
|
10221
|
+
Started GET "/assets/medium-editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10222
|
+
|
|
10223
|
+
|
|
10224
|
+
Started GET "/assets/chosen.jquery.min.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10225
|
+
|
|
10226
|
+
|
|
10227
|
+
Started GET "/assets/drop.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10228
|
+
|
|
10229
|
+
|
|
10230
|
+
Started GET "/assets/vex.combined.min.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10231
|
+
|
|
10232
|
+
|
|
10233
|
+
Started GET "/assets/type_station/lib/ts.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10234
|
+
|
|
10235
|
+
|
|
10236
|
+
Started GET "/assets/type_station/lib/models.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10237
|
+
|
|
10238
|
+
|
|
10239
|
+
Started GET "/assets/type_station/lib/helpers.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:24 +0000
|
|
10240
|
+
|
|
10241
|
+
|
|
10242
|
+
Started GET "/assets/type_station/editables/admin_bar.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10243
|
+
|
|
10244
|
+
|
|
10245
|
+
Started GET "/assets/type_station/editables/entity_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10246
|
+
|
|
10247
|
+
|
|
10248
|
+
Started GET "/assets/type_station/editables/file_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10249
|
+
|
|
10250
|
+
|
|
10251
|
+
Started GET "/assets/type_station/editables/link_finder.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10252
|
+
|
|
10253
|
+
|
|
10254
|
+
Started GET "/assets/type_station/editables/text_html_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10255
|
+
|
|
10256
|
+
|
|
10257
|
+
Started GET "/assets/type_station/init.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10258
|
+
|
|
10259
|
+
|
|
10260
|
+
Started GET "/assets/type_station/application.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:25 +0000
|
|
10261
|
+
|
|
10262
|
+
|
|
10263
|
+
Started GET "/assets/ionicons.ttf?v=2.0.0" for 192.168.99.1 at 2016-02-12 11:32:30 +0000
|
|
10264
|
+
|
|
10265
|
+
|
|
10266
|
+
Started GET "/type_station" for 192.168.99.1 at 2016-02-12 11:32:42 +0000
|
|
10267
|
+
Processing by TypeStation::PagesController#index as HTML
|
|
10268
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=>nil, "_type"=>{"$in"=>["TypeStation::Page"]}}, "$orderby"=>{"position"=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.7405ms
|
|
10269
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=><BSON::ObjectId:0x70155350123180 data=55c9024d6531330008000000>, "_type"=>"TypeStation::Page"}, "$orderby"=>{"position"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.6794ms
|
|
10270
|
+
MOPED: 172.17.0.4:27017 QUERY database=type_station_development collection=type_station_entities selector={"$query"=>{"parent_id"=><BSON::ObjectId:0x70155350123180 data=55c9024d6531330008000000>, "_type"=>{"$in"=>["Team"]}}, "$orderby"=>{"position"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.4446ms
|
|
10271
|
+
Rendered /workspace/app/views/type_station/toolbars/_admin_bar.html.haml (12.3ms)
|
|
10272
|
+
Rendered pages/index_other.html.erb within layouts/application (143.7ms)
|
|
10273
|
+
Completed 200 OK in 1087ms (Views: 1085.0ms)
|
|
10274
|
+
|
|
10275
|
+
|
|
10276
|
+
Started GET "/assets/application.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10277
|
+
|
|
10278
|
+
|
|
10279
|
+
Started GET "/assets/jquery.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10280
|
+
|
|
10281
|
+
|
|
10282
|
+
Started GET "/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10283
|
+
|
|
10284
|
+
|
|
10285
|
+
Started GET "/assets/jquery-fileupload/jquery.fileupload.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10286
|
+
|
|
10287
|
+
|
|
10288
|
+
Started GET "/assets/jquery-fileupload/jquery.iframe-transport.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10289
|
+
|
|
10290
|
+
|
|
10291
|
+
Started GET "/assets/application.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10292
|
+
|
|
10293
|
+
|
|
10294
|
+
Started GET "/assets/jquery-fileupload/basic.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:43 +0000
|
|
10295
|
+
|
|
10296
|
+
|
|
10297
|
+
Started GET "/assets/jquery.cloudinary.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10298
|
+
|
|
10299
|
+
|
|
10300
|
+
Started GET "/assets/jquery.textcomplete.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10301
|
+
|
|
10302
|
+
|
|
10303
|
+
Started GET "/assets/classList.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10304
|
+
|
|
10305
|
+
|
|
10306
|
+
Started GET "/assets/medium-editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10307
|
+
|
|
10308
|
+
|
|
10309
|
+
Started GET "/assets/chosen.jquery.min.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10310
|
+
|
|
10311
|
+
|
|
10312
|
+
Started GET "/assets/medium-editor/medium-editor.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10313
|
+
|
|
10314
|
+
|
|
10315
|
+
Started GET "/assets/medium-editor/themes/bootstrap.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10316
|
+
|
|
10317
|
+
|
|
10318
|
+
Started GET "/assets/jquery.textcomplete.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10319
|
+
|
|
10320
|
+
|
|
10321
|
+
Started GET "/assets/chosen.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10322
|
+
|
|
10323
|
+
|
|
10324
|
+
Started GET "/assets/drop-theme-arrows-bounce-dark.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10325
|
+
|
|
10326
|
+
|
|
10327
|
+
Started GET "/assets/vex.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10328
|
+
|
|
10329
|
+
|
|
10330
|
+
Started GET "/assets/vex-theme-os.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10331
|
+
|
|
10332
|
+
|
|
10333
|
+
Started GET "/assets/ionicons.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10334
|
+
|
|
10335
|
+
|
|
10336
|
+
Started GET "/assets/type_station/admin_bar.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10337
|
+
|
|
10338
|
+
|
|
10339
|
+
Started GET "/assets/type_station/base.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:44 +0000
|
|
10340
|
+
|
|
10341
|
+
|
|
10342
|
+
Started GET "/assets/type_station/application.css?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10343
|
+
|
|
10344
|
+
|
|
10345
|
+
Started GET "/assets/drop.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10346
|
+
|
|
10347
|
+
|
|
10348
|
+
Started GET "/assets/vex.combined.min.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10349
|
+
|
|
10350
|
+
|
|
10351
|
+
Started GET "/assets/type_station/lib/ts.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10352
|
+
|
|
10353
|
+
|
|
10354
|
+
Started GET "/assets/type_station/lib/models.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10355
|
+
|
|
10356
|
+
|
|
10357
|
+
Started GET "/assets/type_station/lib/helpers.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10358
|
+
|
|
10359
|
+
|
|
10360
|
+
Started GET "/assets/type_station/editables/admin_bar.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10361
|
+
|
|
10362
|
+
|
|
10363
|
+
Started GET "/assets/type_station/editables/entity_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10364
|
+
|
|
10365
|
+
|
|
10366
|
+
Started GET "/assets/type_station/editables/file_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10367
|
+
|
|
10368
|
+
|
|
10369
|
+
Started GET "/assets/type_station/editables/link_finder.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10370
|
+
|
|
10371
|
+
|
|
10372
|
+
Started GET "/assets/type_station/editables/text_html_editor.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10373
|
+
|
|
10374
|
+
|
|
10375
|
+
Started GET "/assets/type_station/init.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10376
|
+
|
|
10377
|
+
|
|
10378
|
+
Started GET "/assets/type_station/application.js?body=1" for 192.168.99.1 at 2016-02-12 11:32:45 +0000
|
|
10379
|
+
|
|
10380
|
+
|
|
10381
|
+
Started GET "/assets/ionicons.ttf?v=2.0.0" for 192.168.99.1 at 2016-02-12 11:32:47 +0000
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
7
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: type_station
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Richard Adams
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-02-
|
|
11
|
+
date: 2016-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|