cloudrider 0.2.4 → 0.2.5
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/generica/Gemfile +1 -1
- data/generica/Gemfile.lock +3 -8
- data/generica/app/assets/javascripts/apiv1.js.ls +2 -0
- data/generica/app/assets/javascripts/application.js +2 -0
- data/generica/app/assets/javascripts/components/preload-billboard.js.em +20 -0
- data/generica/app/assets/javascripts/components/preload-image.js.em +16 -0
- data/generica/app/assets/javascripts/packages/image_preloader.js.em +23 -0
- data/generica/app/assets/javascripts/templates/application.emblem +15 -14
- data/generica/app/assets/javascripts/templates/components/preload-billboard.emblem +12 -0
- data/generica/app/assets/javascripts/templates/components/product-display.emblem +1 -1
- data/generica/app/assets/stylesheets/apiv1/_application.css.scss +1 -0
- data/generica/app/assets/stylesheets/apiv1/components/_preload-billboard.css.scss +12 -0
- data/generica/lib/generica.rb +1 -0
- data/generica/lib/generica/image-preload.js.erb +1 -0
- data/generica/lib/generica/image_preloader.rb +61 -0
- data/generica/lib/tasks/cloudrider.rake +1 -1
- data/generica/lib/tasks/production.rake +7 -0
- data/generica/spec/generica/image_preloader_spec.rb +24 -0
- data/generica/vendor/assets/javascripts/generica/image-preload.js +1 -0
- data/lib/cloudrider/version.rb +1 -1
- data/lib/generators/cloudrider/client/client_generator.rb +2 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03060f9be1960c9c0efbf42c8e9c70ded3d12597
|
4
|
+
data.tar.gz: d29bad6873347937457febd5994547d7eb1fc195
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f1f856e646d165cdd3acca7edf7faa5e3d290e58aac4c1f7f77dde0dede00bf5b0b1bb319ab496e2651cc99699f08a4669037622514435889a4e4bb5955f171
|
7
|
+
data.tar.gz: 817ae43bec67630191acfdb84cb957c6cf7c653e15ebe4747f42f81076020d2a1cd6ad1591c38f9e799fb05f2b5990bce265bfe34209e20af1139625d0a1ab56
|
data/generica/Gemfile
CHANGED
@@ -28,7 +28,7 @@ gem "font-awesome-sass", "~> 4.1.0.0"
|
|
28
28
|
gem 'font-awesome-rails', '~> 4.1.0.0'
|
29
29
|
gem 'compass-rails', '~> 1.1.7'
|
30
30
|
gem 'compass-flexbox', '~>1.1.3'
|
31
|
-
gem 'jquery-ui-
|
31
|
+
gem 'jquery-ui-rails', '>=5.0.2'
|
32
32
|
gem 'jquery-rails'
|
33
33
|
gem 'foundation-rails', '~> 5.3.1.0'
|
34
34
|
gem 'modernizr-rails', '~> 2.7.1'
|
data/generica/Gemfile.lock
CHANGED
@@ -160,13 +160,8 @@ GEM
|
|
160
160
|
jquery-rails (3.1.2)
|
161
161
|
railties (>= 3.0, < 5.0)
|
162
162
|
thor (>= 0.14, < 2.0)
|
163
|
-
jquery-ui-rails (
|
164
|
-
|
165
|
-
railties (>= 3.1.0)
|
166
|
-
jquery-ui-sass-rails (4.0.3.0)
|
167
|
-
jquery-rails
|
168
|
-
jquery-ui-rails (= 4.0.3)
|
169
|
-
railties (>= 3.1.0)
|
163
|
+
jquery-ui-rails (5.0.2)
|
164
|
+
railties (>= 3.2.16)
|
170
165
|
json (1.8.1)
|
171
166
|
jwt (1.0.0)
|
172
167
|
kaminari (0.16.1)
|
@@ -339,7 +334,7 @@ DEPENDENCIES
|
|
339
334
|
i18n-js
|
340
335
|
jbuilder (~> 1.2)
|
341
336
|
jquery-rails
|
342
|
-
jquery-ui-
|
337
|
+
jquery-ui-rails (>= 5.0.2)
|
343
338
|
kaminari (~> 0.16.1)
|
344
339
|
livescript-rails
|
345
340
|
modernizr-rails (~> 2.7.1)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Apiv1.PreloadBillboardComponent extends Ember.Component
|
2
|
+
classNames: ["preload-billboard"]
|
3
|
+
|
4
|
+
+computed Apiv1.ImagePreloader.instance.isLoading
|
5
|
+
stillLoading: -> Apiv1.ImagePreloader.instance.get "isLoading"
|
6
|
+
|
7
|
+
+computed Apiv1.ImagePreloader.instance.isLoading
|
8
|
+
finishedLoading: -> not Apiv1.ImagePreloader.instance.get "isLoading"
|
9
|
+
|
10
|
+
+observer Apiv1.ImagePreloader.instance.isLoading
|
11
|
+
manageWhichToHide: ->
|
12
|
+
if @stillLoading
|
13
|
+
$("#billboard-holder").show()
|
14
|
+
$("#everything-else-holder").hide()
|
15
|
+
if @finishedLoading
|
16
|
+
$("#everything-else-holder").show()
|
17
|
+
$("#billboard-holder").hide "puff", 750
|
18
|
+
|
19
|
+
didInsertElement: ->
|
20
|
+
@manageWhichToHide()
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Apiv1.PreloadImageComponent extends Ember.Component
|
2
|
+
attributeBindings: ["id", "class", "alt", "src"]
|
3
|
+
classNames: ["preload-image"]
|
4
|
+
tagName: ['img']
|
5
|
+
alreadyQueuedPreloader: false
|
6
|
+
|
7
|
+
+observer source
|
8
|
+
manageSourcePreloading: ->
|
9
|
+
return if @alreadyQueuedPreloader or Ember.isBlank @source
|
10
|
+
@alreadyQueuedPreloader = true
|
11
|
+
Apiv1.ImagePreloader.registerImage @source, (img) =>
|
12
|
+
console.log img
|
13
|
+
@src = img.src
|
14
|
+
|
15
|
+
didInsertElement: ->
|
16
|
+
@manageSourcePreloading()
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class Apiv1.ImagePreloader extends Ember.Object
|
2
|
+
areWeUsingPreloader: false
|
3
|
+
stillLoadingImages: []
|
4
|
+
registerImage: (source, callback) ->
|
5
|
+
img = new Image()
|
6
|
+
@areWeUsingPreloader = true
|
7
|
+
@stillLoadingImages.pushObject img
|
8
|
+
img.onload = =>
|
9
|
+
@stillLoadingImages.removeObject img
|
10
|
+
callback img if typeof callback is "function"
|
11
|
+
img.src = source
|
12
|
+
|
13
|
+
preloadImagesFromCSS: ->
|
14
|
+
Apiv1.ImagesToPreload.map _.bind @registerImage, @
|
15
|
+
|
16
|
+
+computed stillLoadingImages.length, areWeUsingPreloader
|
17
|
+
isLoading: ->
|
18
|
+
@areWeUsingPreloader and @stillLoadingImages.length > 0
|
19
|
+
|
20
|
+
|
21
|
+
Apiv1.ImagePreloader.instance = new Apiv1.ImagePreloader()
|
22
|
+
Apiv1.ImagePreloader.instance.preloadImagesFromCSS()
|
23
|
+
Apiv1.ImagePreloader.registerImage = _.bind Apiv1.ImagePreloader.instance.registerImage, Apiv1.ImagePreloader.instance
|
@@ -1,14 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
.modal-
|
14
|
-
|
1
|
+
preload-billboard
|
2
|
+
.application-container.toggle-shift.shifted
|
3
|
+
#canvas-menu-top
|
4
|
+
site-nav
|
5
|
+
#page-wrapper
|
6
|
+
.site-content
|
7
|
+
.not-site-footer
|
8
|
+
== outlet
|
9
|
+
site-footer action="displayModal"
|
10
|
+
#fixed-bottom
|
11
|
+
.row
|
12
|
+
flash-message
|
13
|
+
.modal-background
|
14
|
+
.modal-vertical-container
|
15
|
+
== outlet "modal"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
if product
|
2
2
|
.media-object
|
3
3
|
link-to "products.product.show" product.id
|
4
|
-
|
4
|
+
preload-image class="product-image" source=product.pictures.firstObject.picUrl
|
5
5
|
.media-texts
|
6
6
|
h2.product-title
|
7
7
|
link-to "products.product.show" product.id
|
@@ -17,6 +17,7 @@
|
|
17
17
|
@import 'apiv1/components/promise-button';
|
18
18
|
@import 'apiv1/components/block-grid-pictures';
|
19
19
|
@import 'apiv1/components/fancy-paginator';
|
20
|
+
@import 'apiv1/components/preload-billboard';
|
20
21
|
@import "apiv1/modals/login";
|
21
22
|
@import 'apiv1/products/product/show';
|
22
23
|
|
data/generica/lib/generica.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
Apiv1.ImagesToPreload = <%= file_image_urls.inspect %>;
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'tilt'
|
2
|
+
require 'erb'
|
3
|
+
module Generica; end
|
4
|
+
class Generica::ImagePreloader
|
5
|
+
include Thor::Base
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
def write_preloader_js_file
|
9
|
+
create_file _destination, _file_contents
|
10
|
+
end
|
11
|
+
private
|
12
|
+
def _destination
|
13
|
+
Rails.root.join "vendor", "assets", "javascripts", "generica", "image-preload.js"
|
14
|
+
end
|
15
|
+
def _file_contents
|
16
|
+
_template.render _context
|
17
|
+
end
|
18
|
+
def _template
|
19
|
+
@template ||= Tilt::ERBTemplate.new _source
|
20
|
+
end
|
21
|
+
def _source
|
22
|
+
@source ||= File.join __dir__, "image-preload.js.erb"
|
23
|
+
end
|
24
|
+
def _context
|
25
|
+
@context ||= Context.new
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Generica::ImagePreloader::Context
|
30
|
+
def file_image_urls
|
31
|
+
_css_files.map { |file| _get_image_urls_from_file.call file }.flatten.uniq
|
32
|
+
end
|
33
|
+
private
|
34
|
+
def _css_files
|
35
|
+
Dir.glob(Rails.root.join "app", "assets", "stylesheets", "**", "*").reject { |f| Dir.exists? f }
|
36
|
+
end
|
37
|
+
def _get_image_urls_from_file
|
38
|
+
_filename_to_string >> _string_to_raw_css_urls >> _clean_css_urls
|
39
|
+
end
|
40
|
+
def _filename_to_string
|
41
|
+
-> (file) { File.read file }
|
42
|
+
end
|
43
|
+
def _string_to_raw_css_urls
|
44
|
+
-> (string) { string.to_s.scan /url\(*[a-z0-9_\-\s,\/]+\.[a-z]*\)/i }
|
45
|
+
end
|
46
|
+
def _clean_css_urls
|
47
|
+
-> (css_urls) { css_urls.map { |css_url| _clean_css_url.call css_url } }
|
48
|
+
end
|
49
|
+
def _clean_css_url
|
50
|
+
_clean_front_css_url >> _clean_rear_css_url >> _append_asset_path
|
51
|
+
end
|
52
|
+
def _append_asset_path
|
53
|
+
-> (url) { File.join "assets", url }
|
54
|
+
end
|
55
|
+
def _clean_front_css_url
|
56
|
+
-> (css_url) { css_url.gsub /^url\(('|")*/i, "" }
|
57
|
+
end
|
58
|
+
def _clean_rear_css_url
|
59
|
+
-> (css_url) { css_url.gsub /('|")*\)$/, "" }
|
60
|
+
end
|
61
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require Rails.root.join "lib", "generica"
|
2
1
|
namespace :cloudrider do
|
3
2
|
desc "Creates a default seed file using the google translate api"
|
4
3
|
task make_translation_seed: :environment do
|
4
|
+
require Rails.root.join "lib", "generica"
|
5
5
|
Generica::SeedGenerator.new.write_file
|
6
6
|
end
|
7
7
|
end
|
@@ -7,9 +7,16 @@ namespace :production do
|
|
7
7
|
|
8
8
|
desc "These tasks should be run everytime you restart the server"
|
9
9
|
task on_restart: :environment do
|
10
|
+
Rake::Task["production:image_preload"].invoke
|
10
11
|
Rake::Task["assets:clobber"].invoke
|
11
12
|
Rake::Task["assets:precompile"].invoke
|
12
13
|
Rake::Task["assets:unretardify"].invoke
|
13
14
|
Rake::Task["elasticsearch:simple_import"].invoke
|
14
15
|
end
|
16
|
+
|
17
|
+
desc "generates the image-preload.js file"
|
18
|
+
task image_preload: :environment do
|
19
|
+
require Rails.root.join "lib", "generica", "image_preloader"
|
20
|
+
Generica::ImagePreloader.new.write_preloader_js_file
|
21
|
+
end
|
15
22
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
require Rails.root.join "lib", "generica", "image_preloader"
|
3
|
+
|
4
|
+
describe Generica::ImagePreloader do
|
5
|
+
context 'sanity' do
|
6
|
+
subject { described_class }
|
7
|
+
specify { should be_present }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe Generica::ImagePreloader::Context do
|
12
|
+
let(:context) { described_class.new }
|
13
|
+
context '#_clean_css_url' do
|
14
|
+
subject { context.send('_clean_css_url').call 'url("dog/cat/bat.jpg")' }
|
15
|
+
specify { should eq "dog/cat/bat.jpg" }
|
16
|
+
end
|
17
|
+
context '#_clean_css_urls' do
|
18
|
+
let(:css_urls) { ["url(hero-splash/dog.jpg)", "url(dogs/bag.png)"] }
|
19
|
+
let(:expected) { ["hero-splash/dog.jpg", "dogs/bag.png"] }
|
20
|
+
subject { context.send('_clean_css_urls').call css_urls }
|
21
|
+
specify { should eq expected }
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Apiv1.ImagesToPreload = ["assets/hero-splash/albatross.jpg", "assets/hero-splash/seaweed.png", "assets/cookie-splash/albatross.jpg"];
|
data/lib/cloudrider/version.rb
CHANGED
@@ -85,6 +85,7 @@ class Cloudrider::Generators::ClientGenerator < Rails::Generators::Base
|
|
85
85
|
"select-locale",
|
86
86
|
"tree-taxon-li",
|
87
87
|
"tree-taxon-ul",
|
88
|
+
"preload-billboard",
|
88
89
|
"tree-taxon-wrapper"
|
89
90
|
].each do |component|
|
90
91
|
copy_file "app/assets/javascripts/templates/components/#{component}.emblem", "app/assets/javascripts/templates/components/#{component}.emblem"
|
@@ -106,6 +107,7 @@ class Cloudrider::Generators::ClientGenerator < Rails::Generators::Base
|
|
106
107
|
"select-locale",
|
107
108
|
"site-footer",
|
108
109
|
"type-ahead",
|
110
|
+
"preload-billboard",
|
109
111
|
"tree-taxon-wrapper"].each do |file|
|
110
112
|
copy_file "app/assets/stylesheets/apiv1/components/_#{file}.css.scss", "app/assets/stylesheets/apiv1/components/_#{file}.css.scss"
|
111
113
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudrider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Chen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -143,6 +143,8 @@ files:
|
|
143
143
|
- generica/app/assets/javascripts/components/form-for.js.em
|
144
144
|
- generica/app/assets/javascripts/components/hero-splash.js.em
|
145
145
|
- generica/app/assets/javascripts/components/introductory-lobby.js.em
|
146
|
+
- generica/app/assets/javascripts/components/preload-billboard.js.em
|
147
|
+
- generica/app/assets/javascripts/components/preload-image.js.em
|
146
148
|
- generica/app/assets/javascripts/components/product-display.js.em
|
147
149
|
- generica/app/assets/javascripts/components/product-listing.js.em
|
148
150
|
- generica/app/assets/javascripts/components/products-catalog.js.em
|
@@ -204,6 +206,7 @@ files:
|
|
204
206
|
- generica/app/assets/javascripts/models/taxon.js.em
|
205
207
|
- generica/app/assets/javascripts/models/translation.js.em
|
206
208
|
- generica/app/assets/javascripts/packages/flash.js.em
|
209
|
+
- generica/app/assets/javascripts/packages/image_preloader.js.em
|
207
210
|
- generica/app/assets/javascripts/packages/tranny.js.ls
|
208
211
|
- generica/app/assets/javascripts/routes/.gitkeep
|
209
212
|
- generica/app/assets/javascripts/routes/admin/employees/index_route.js.em
|
@@ -257,6 +260,7 @@ files:
|
|
257
260
|
- generica/app/assets/javascripts/templates/components/hero-splash/_splash-cta.emblem
|
258
261
|
- generica/app/assets/javascripts/templates/components/hero-splash/_splash-tagline.emblem
|
259
262
|
- generica/app/assets/javascripts/templates/components/introductory-lobby.emblem
|
263
|
+
- generica/app/assets/javascripts/templates/components/preload-billboard.emblem
|
260
264
|
- generica/app/assets/javascripts/templates/components/product-display.emblem
|
261
265
|
- generica/app/assets/javascripts/templates/components/product-listing.emblem
|
262
266
|
- generica/app/assets/javascripts/templates/components/products-catalog.emblem
|
@@ -300,6 +304,7 @@ files:
|
|
300
304
|
- generica/app/assets/stylesheets/apiv1/components/_flash-message.css.scss
|
301
305
|
- generica/app/assets/stylesheets/apiv1/components/_hero-splash.css.scss
|
302
306
|
- generica/app/assets/stylesheets/apiv1/components/_introductory-lobby.css.scss
|
307
|
+
- generica/app/assets/stylesheets/apiv1/components/_preload-billboard.css.scss
|
303
308
|
- generica/app/assets/stylesheets/apiv1/components/_product-display.css.scss
|
304
309
|
- generica/app/assets/stylesheets/apiv1/components/_product-listing.css.scss
|
305
310
|
- generica/app/assets/stylesheets/apiv1/components/_products-catalog.css.scss
|
@@ -455,6 +460,8 @@ files:
|
|
455
460
|
- generica/db/seeds/users.rb
|
456
461
|
- generica/lib/assets/.keep
|
457
462
|
- generica/lib/generica.rb
|
463
|
+
- generica/lib/generica/image-preload.js.erb
|
464
|
+
- generica/lib/generica/image_preloader.rb
|
458
465
|
- generica/lib/generica/locale.yml.erb
|
459
466
|
- generica/lib/generica/seed.en.yml
|
460
467
|
- generica/lib/generica/seed_generator.rb
|
@@ -492,6 +499,7 @@ files:
|
|
492
499
|
- generica/spec/factories/apiv1/product_factory.rb
|
493
500
|
- generica/spec/factories/apiv1/taxon_factory.rb
|
494
501
|
- generica/spec/factories/base_factory.rb
|
502
|
+
- generica/spec/generica/image_preloader_spec.rb
|
495
503
|
- generica/spec/models/admin/pictures_factory_spec.rb
|
496
504
|
- generica/spec/models/admin/product_factory_spec.rb
|
497
505
|
- generica/spec/models/admin/product_modifier_spec.rb
|
@@ -503,6 +511,7 @@ files:
|
|
503
511
|
- generica/spec/rails_helper.rb
|
504
512
|
- generica/spec/spec_helper.rb
|
505
513
|
- generica/vendor/assets/javascripts/.keep
|
514
|
+
- generica/vendor/assets/javascripts/generica/image-preload.js
|
506
515
|
- generica/vendor/assets/stylesheets/.keep
|
507
516
|
- lib/cloudrider.rb
|
508
517
|
- lib/cloudrider/apiv1.rb
|