twirly 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +122 -0
  5. data/LICENSE +20 -0
  6. data/README.md +56 -0
  7. data/bin/twirly +6 -0
  8. data/config/initializers/trello.rb +4 -0
  9. data/lib/twirly/cli.rb +22 -0
  10. data/lib/twirly/commands/base.rb +14 -0
  11. data/lib/twirly/commands/fetch_user.rb +9 -0
  12. data/lib/twirly/commands/pick.rb +9 -0
  13. data/lib/twirly/commands/pull.rb +9 -0
  14. data/lib/twirly/commands.rb +6 -0
  15. data/lib/twirly/compiler.rb +26 -0
  16. data/lib/twirly/helpers/youtube.rb +37 -0
  17. data/lib/twirly/helpers.rb +3 -0
  18. data/lib/twirly/post.rb +81 -0
  19. data/lib/twirly/serializers/post.rb +21 -0
  20. data/lib/twirly/serializers/user.rb +20 -0
  21. data/lib/twirly/serializers.rb +6 -0
  22. data/lib/twirly/user.rb +31 -0
  23. data/lib/twirly/version.rb +3 -0
  24. data/lib/twirly.rb +45 -0
  25. data/spec/cli_spec.rb +24 -0
  26. data/spec/commands/fetch_user_spec.rb +16 -0
  27. data/spec/commands/pick_spec.rb +16 -0
  28. data/spec/commands/pull_spec.rb +10 -0
  29. data/spec/dummy/.bowerrc +3 -0
  30. data/spec/dummy/.gitignore +1 -0
  31. data/spec/dummy/Gemfile +12 -0
  32. data/spec/dummy/Gemfile.lock +116 -0
  33. data/spec/dummy/Guardfile +10 -0
  34. data/spec/dummy/assets/javascripts/app.coffee +3 -0
  35. data/spec/dummy/assets/javascripts/router.coffee +27 -0
  36. data/spec/dummy/assets/stylesheets/index.css.scss +17 -0
  37. data/spec/dummy/assets/stylesheets/partials/_header.css.scss +20 -0
  38. data/spec/dummy/assets/stylesheets/partials/_post.css.scss +19 -0
  39. data/spec/dummy/assets/stylesheets/partials/_reset.css.scss +425 -0
  40. data/spec/dummy/source/.gitkeep +0 -0
  41. data/spec/dummy/vendor/assets/bower_components/backbone/backbone.js +1608 -0
  42. data/spec/dummy/vendor/assets/bower_components/backbone/bower.json +9 -0
  43. data/spec/dummy/vendor/assets/bower_components/backbone/index.js +1 -0
  44. data/spec/dummy/vendor/assets/bower_components/jquery/bower.json +27 -0
  45. data/spec/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.js +5 -0
  46. data/spec/dummy/vendor/assets/bower_components/underscore/bower.json +8 -0
  47. data/spec/dummy/vendor/assets/bower_components/underscore/underscore.js +1343 -0
  48. data/spec/factories/post.rb +9 -0
  49. data/spec/factories/trello/attachment.rb +17 -0
  50. data/spec/factories/trello/board.rb +20 -0
  51. data/spec/factories/trello/card.rb +56 -0
  52. data/spec/factories/trello/label.rb +19 -0
  53. data/spec/factories/trello/member.rb +16 -0
  54. data/spec/factories/user.rb +9 -0
  55. data/spec/post_spec.rb +155 -0
  56. data/spec/serializers/post_spec.rb +41 -0
  57. data/spec/serializers/user_spec.rb +34 -0
  58. data/spec/spec_helper.rb +19 -0
  59. data/spec/user_spec.rb +43 -0
  60. data/twirly.gemspec +38 -0
  61. data/twirly.yml.sample +4 -0
  62. metadata +324 -0
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+ group :development do
5
+ gem 'twirly', path: '/home/zorbash/dev/twirly'
6
+ gem 'rake'
7
+ gem 'pry'
8
+ gem 'sass'
9
+ gem 'coffee-script'
10
+ gem 'guard-sass'
11
+ gem 'guard-coffeescript'
12
+ end
@@ -0,0 +1,116 @@
1
+ PATH
2
+ remote: /home/zorbash/dev/twirly
3
+ specs:
4
+ twirly (0.0.1)
5
+ actionview
6
+ activesupport (~> 4.1)
7
+ awesome_print
8
+ json (~> 1.8.1)
9
+ kramdown
10
+ liquid
11
+ rack
12
+ redis
13
+ ruby-trello
14
+ thor
15
+ tilt
16
+ will_paginate (~> 3.0.5)
17
+
18
+ GEM
19
+ remote: https://rubygems.org/
20
+ specs:
21
+ actionview (4.1.1)
22
+ activesupport (= 4.1.1)
23
+ builder (~> 3.1)
24
+ erubis (~> 2.7.0)
25
+ activemodel (4.1.1)
26
+ activesupport (= 4.1.1)
27
+ builder (~> 3.1)
28
+ activesupport (4.1.1)
29
+ i18n (~> 0.6, >= 0.6.9)
30
+ json (~> 1.7, >= 1.7.7)
31
+ minitest (~> 5.1)
32
+ thread_safe (~> 0.1)
33
+ tzinfo (~> 1.1)
34
+ addressable (2.3.6)
35
+ awesome_print (1.2.0)
36
+ builder (3.2.2)
37
+ celluloid (0.15.2)
38
+ timers (~> 1.1.0)
39
+ celluloid-io (0.15.0)
40
+ celluloid (>= 0.15.0)
41
+ nio4r (>= 0.5.0)
42
+ coderay (1.1.0)
43
+ coffee-script (2.2.0)
44
+ coffee-script-source
45
+ execjs
46
+ coffee-script-source (1.7.0)
47
+ erubis (2.7.0)
48
+ execjs (2.0.2)
49
+ ffi (1.9.3)
50
+ formatador (0.2.4)
51
+ guard (2.6.1)
52
+ formatador (>= 0.2.4)
53
+ listen (~> 2.7)
54
+ lumberjack (~> 1.0)
55
+ pry (>= 0.9.12)
56
+ thor (>= 0.18.1)
57
+ guard-coffeescript (1.4.0)
58
+ coffee-script (>= 2.2.0)
59
+ guard (>= 1.1.0)
60
+ guard-sass (1.4.0)
61
+ guard (>= 1.1.0)
62
+ sass (>= 3.1)
63
+ i18n (0.6.9)
64
+ json (1.8.1)
65
+ kramdown (1.3.3)
66
+ liquid (2.6.1)
67
+ listen (2.7.4)
68
+ celluloid (>= 0.15.2)
69
+ celluloid-io (>= 0.15.0)
70
+ rb-fsevent (>= 0.9.3)
71
+ rb-inotify (>= 0.9)
72
+ lumberjack (1.0.5)
73
+ method_source (0.8.2)
74
+ mime-types (2.2)
75
+ minitest (5.3.4)
76
+ nio4r (1.0.0)
77
+ oauth (0.4.7)
78
+ pry (0.9.12.6)
79
+ coderay (~> 1.0)
80
+ method_source (~> 0.8)
81
+ slop (~> 3.4)
82
+ rack (1.5.2)
83
+ rake (10.2.2)
84
+ rb-fsevent (0.9.4)
85
+ rb-inotify (0.9.4)
86
+ ffi (>= 0.5.0)
87
+ redis (3.0.7)
88
+ rest-client (1.6.7)
89
+ mime-types (>= 1.16)
90
+ ruby-trello (1.1.1)
91
+ activemodel (>= 3.2.0)
92
+ addressable (~> 2.3)
93
+ json
94
+ oauth (~> 0.4.5)
95
+ rest-client (~> 1.6.7)
96
+ sass (3.2.19)
97
+ slop (3.5.0)
98
+ thor (0.19.1)
99
+ thread_safe (0.3.3)
100
+ tilt (2.0.1)
101
+ timers (1.1.0)
102
+ tzinfo (1.1.0)
103
+ thread_safe (~> 0.1)
104
+ will_paginate (3.0.5)
105
+
106
+ PLATFORMS
107
+ ruby
108
+
109
+ DEPENDENCIES
110
+ coffee-script
111
+ guard-coffeescript
112
+ guard-sass
113
+ pry
114
+ rake
115
+ sass
116
+ twirly!
@@ -0,0 +1,10 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'sass', input: 'assets/stylesheets', output: 'public/stylesheets'
5
+
6
+ guard 'coffeescript', output: 'public/javascripts' do
7
+ watch(%r{assets/javascripts/(.+\.coffee)})
8
+ end
9
+
10
+ notification :off
@@ -0,0 +1,3 @@
1
+ $ ->
2
+ app.router = new app.Router()
3
+ Backbone.history.start()
@@ -0,0 +1,27 @@
1
+ class app.Router extends Backbone.Router
2
+ cache = {}
3
+
4
+ routes:
5
+ '': 'index'
6
+ 'posts/:card_id.html': 'postsShow'
7
+ 'users/:id.html': 'usersShow'
8
+
9
+ index: -> @_showView($('#posts'))
10
+
11
+ postsShow: (card_id) ->
12
+ @_fetchContent("posts/#{card_id}.html").then (data) => @_showView($('#post'), data)
13
+
14
+ usersShow: (id) ->
15
+ @_fetchContent("users/#{id}.html").then (data) => @_showView($('#user'), data)
16
+
17
+ _showView: ($view, content) ->
18
+ $('.view').hide()
19
+ $view.html(content) if content
20
+ $view.show()
21
+
22
+ _fetchContent: (url) ->
23
+ dfd = $.Deferred()
24
+ return dfd.resolve(cache[url]) if cache[url]
25
+
26
+ $.ajax(url).then (data) -> cache[url] = data
27
+
@@ -0,0 +1,17 @@
1
+ @import 'partials/_reset.css.scss';
2
+ @import 'partials/_header.css.scss';
3
+ @import 'partials/_post.css.scss';
4
+
5
+ body {
6
+ background-color: #F2F2F2;
7
+ margin: 0;
8
+ padding: 0;
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+
13
+ #main {
14
+ margin-top: 0;
15
+ padding-left: 60px;
16
+ padding-right: 60px;
17
+ }
@@ -0,0 +1,20 @@
1
+ .header {
2
+ background-color: #FFF;
3
+ height: 46px;
4
+
5
+ padding-left: 15px;
6
+ box-shadow: 0 0px 5px rgba(0, 0, 0, 0.4);
7
+
8
+ .logo {
9
+ text-decoration: none;
10
+ font-family: "EB Lato";
11
+ font-size: 20px;
12
+ color: #333;
13
+ font-weight: 600;
14
+ line-height: 46px;
15
+
16
+ &:visited {
17
+ color: #333;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,19 @@
1
+ .post {
2
+ margin-bottom: 10%;
3
+ text-decoration: none;
4
+ color: #525252;
5
+
6
+ .title {
7
+ font-size: 20px;
8
+ font-family: "EB Lato";
9
+ font-weight: 300;
10
+ padding-bottom: 35px;
11
+ }
12
+
13
+ .thumb {
14
+ display: block;
15
+ margin: 0 auto;
16
+
17
+ max-height: 348px;
18
+ }
19
+ }
@@ -0,0 +1,425 @@
1
+ /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
29
+ * Correct `block` display not defined for `main` in IE 11.
30
+ */
31
+
32
+ article,
33
+ aside,
34
+ details,
35
+ figcaption,
36
+ figure,
37
+ footer,
38
+ header,
39
+ hgroup,
40
+ main,
41
+ nav,
42
+ section,
43
+ summary {
44
+ display: block;
45
+ }
46
+
47
+ /**
48
+ * 1. Correct `inline-block` display not defined in IE 8/9.
49
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
50
+ */
51
+
52
+ audio,
53
+ canvas,
54
+ progress,
55
+ video {
56
+ display: inline-block; /* 1 */
57
+ vertical-align: baseline; /* 2 */
58
+ }
59
+
60
+ /**
61
+ * Prevent modern browsers from displaying `audio` without controls.
62
+ * Remove excess height in iOS 5 devices.
63
+ */
64
+
65
+ audio:not([controls]) {
66
+ display: none;
67
+ height: 0;
68
+ }
69
+
70
+ /**
71
+ * Address `[hidden]` styling not present in IE 8/9/10.
72
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
73
+ */
74
+
75
+ [hidden],
76
+ template {
77
+ display: none;
78
+ }
79
+
80
+ /* Links
81
+ ========================================================================== */
82
+
83
+ /**
84
+ * Remove the gray background color from active links in IE 10.
85
+ */
86
+
87
+ a {
88
+ background: transparent;
89
+ }
90
+
91
+ /**
92
+ * Improve readability when focused and also mouse hovered in all browsers.
93
+ */
94
+
95
+ a:active,
96
+ a:hover {
97
+ outline: 0;
98
+ }
99
+
100
+ /* Text-level semantics
101
+ ========================================================================== */
102
+
103
+ /**
104
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
105
+ */
106
+
107
+ abbr[title] {
108
+ border-bottom: 1px dotted;
109
+ }
110
+
111
+ /**
112
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
113
+ */
114
+
115
+ b,
116
+ strong {
117
+ font-weight: bold;
118
+ }
119
+
120
+ /**
121
+ * Address styling not present in Safari and Chrome.
122
+ */
123
+
124
+ dfn {
125
+ font-style: italic;
126
+ }
127
+
128
+ /**
129
+ * Address variable `h1` font-size and margin within `section` and `article`
130
+ * contexts in Firefox 4+, Safari, and Chrome.
131
+ */
132
+
133
+ h1 {
134
+ font-size: 2em;
135
+ margin: 0.67em 0;
136
+ }
137
+
138
+ /**
139
+ * Address styling not present in IE 8/9.
140
+ */
141
+
142
+ mark {
143
+ background: #ff0;
144
+ color: #000;
145
+ }
146
+
147
+ /**
148
+ * Address inconsistent and variable font size in all browsers.
149
+ */
150
+
151
+ small {
152
+ font-size: 80%;
153
+ }
154
+
155
+ /**
156
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
157
+ */
158
+
159
+ sub,
160
+ sup {
161
+ font-size: 75%;
162
+ line-height: 0;
163
+ position: relative;
164
+ vertical-align: baseline;
165
+ }
166
+
167
+ sup {
168
+ top: -0.5em;
169
+ }
170
+
171
+ sub {
172
+ bottom: -0.25em;
173
+ }
174
+
175
+ /* Embedded content
176
+ ========================================================================== */
177
+
178
+ /**
179
+ * Remove border when inside `a` element in IE 8/9/10.
180
+ */
181
+
182
+ img {
183
+ border: 0;
184
+ }
185
+
186
+ /**
187
+ * Correct overflow not hidden in IE 9/10/11.
188
+ */
189
+
190
+ svg:not(:root) {
191
+ overflow: hidden;
192
+ }
193
+
194
+ /* Grouping content
195
+ ========================================================================== */
196
+
197
+ /**
198
+ * Address margin not present in IE 8/9 and Safari.
199
+ */
200
+
201
+ figure {
202
+ margin: 1em 40px;
203
+ }
204
+
205
+ /**
206
+ * Address differences between Firefox and other browsers.
207
+ */
208
+
209
+ hr {
210
+ -moz-box-sizing: content-box;
211
+ box-sizing: content-box;
212
+ height: 0;
213
+ }
214
+
215
+ /**
216
+ * Contain overflow in all browsers.
217
+ */
218
+
219
+ pre {
220
+ overflow: auto;
221
+ }
222
+
223
+ /**
224
+ * Address odd `em`-unit font size rendering in all browsers.
225
+ */
226
+
227
+ code,
228
+ kbd,
229
+ pre,
230
+ samp {
231
+ font-family: monospace, monospace;
232
+ font-size: 1em;
233
+ }
234
+
235
+ /* Forms
236
+ ========================================================================== */
237
+
238
+ /**
239
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
240
+ * styling of `select`, unless a `border` property is set.
241
+ */
242
+
243
+ /**
244
+ * 1. Correct color not being inherited.
245
+ * Known issue: affects color of disabled elements.
246
+ * 2. Correct font properties not being inherited.
247
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
248
+ */
249
+
250
+ button,
251
+ input,
252
+ optgroup,
253
+ select,
254
+ textarea {
255
+ color: inherit; /* 1 */
256
+ font: inherit; /* 2 */
257
+ margin: 0; /* 3 */
258
+ }
259
+
260
+ /**
261
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
262
+ */
263
+
264
+ button {
265
+ overflow: visible;
266
+ }
267
+
268
+ /**
269
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
270
+ * All other form control elements do not inherit `text-transform` values.
271
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
272
+ * Correct `select` style inheritance in Firefox.
273
+ */
274
+
275
+ button,
276
+ select {
277
+ text-transform: none;
278
+ }
279
+
280
+ /**
281
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
282
+ * and `video` controls.
283
+ * 2. Correct inability to style clickable `input` types in iOS.
284
+ * 3. Improve usability and consistency of cursor style between image-type
285
+ * `input` and others.
286
+ */
287
+
288
+ button,
289
+ html input[type="button"], /* 1 */
290
+ input[type="reset"],
291
+ input[type="submit"] {
292
+ -webkit-appearance: button; /* 2 */
293
+ cursor: pointer; /* 3 */
294
+ }
295
+
296
+ /**
297
+ * Re-set default cursor for disabled elements.
298
+ */
299
+
300
+ button[disabled],
301
+ html input[disabled] {
302
+ cursor: default;
303
+ }
304
+
305
+ /**
306
+ * Remove inner padding and border in Firefox 4+.
307
+ */
308
+
309
+ button::-moz-focus-inner,
310
+ input::-moz-focus-inner {
311
+ border: 0;
312
+ padding: 0;
313
+ }
314
+
315
+ /**
316
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
317
+ * the UA stylesheet.
318
+ */
319
+
320
+ input {
321
+ line-height: normal;
322
+ }
323
+
324
+ /**
325
+ * It's recommended that you don't attempt to style these elements.
326
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
327
+ *
328
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
329
+ * 2. Remove excess padding in IE 8/9/10.
330
+ */
331
+
332
+ input[type="checkbox"],
333
+ input[type="radio"] {
334
+ box-sizing: border-box; /* 1 */
335
+ padding: 0; /* 2 */
336
+ }
337
+
338
+ /**
339
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
340
+ * `font-size` values of the `input`, it causes the cursor style of the
341
+ * decrement button to change from `default` to `text`.
342
+ */
343
+
344
+ input[type="number"]::-webkit-inner-spin-button,
345
+ input[type="number"]::-webkit-outer-spin-button {
346
+ height: auto;
347
+ }
348
+
349
+ /**
350
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
351
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
352
+ * (include `-moz` to future-proof).
353
+ */
354
+
355
+ input[type="search"] {
356
+ -webkit-appearance: textfield; /* 1 */
357
+ -moz-box-sizing: content-box;
358
+ -webkit-box-sizing: content-box; /* 2 */
359
+ box-sizing: content-box;
360
+ }
361
+
362
+ /**
363
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
364
+ * Safari (but not Chrome) clips the cancel button when the search input has
365
+ * padding (and `textfield` appearance).
366
+ */
367
+
368
+ input[type="search"]::-webkit-search-cancel-button,
369
+ input[type="search"]::-webkit-search-decoration {
370
+ -webkit-appearance: none;
371
+ }
372
+
373
+ /**
374
+ * Define consistent border, margin, and padding.
375
+ */
376
+
377
+ fieldset {
378
+ border: 1px solid #c0c0c0;
379
+ margin: 0 2px;
380
+ padding: 0.35em 0.625em 0.75em;
381
+ }
382
+
383
+ /**
384
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
385
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
386
+ */
387
+
388
+ legend {
389
+ border: 0; /* 1 */
390
+ padding: 0; /* 2 */
391
+ }
392
+
393
+ /**
394
+ * Remove default vertical scrollbar in IE 8/9/10/11.
395
+ */
396
+
397
+ textarea {
398
+ overflow: auto;
399
+ }
400
+
401
+ /**
402
+ * Don't inherit the `font-weight` (applied by a rule above).
403
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
404
+ */
405
+
406
+ optgroup {
407
+ font-weight: bold;
408
+ }
409
+
410
+ /* Tables
411
+ ========================================================================== */
412
+
413
+ /**
414
+ * Remove most spacing between table cells.
415
+ */
416
+
417
+ table {
418
+ border-collapse: collapse;
419
+ border-spacing: 0;
420
+ }
421
+
422
+ td,
423
+ th {
424
+ padding: 0;
425
+ }
File without changes