widget_bundler 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/app/models/widget_bundle.rb +32 -7
- metadata +29 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OWIxYmZkNDAwOTUyYjViNjJhODI0ZDY2Yjk1YzUyZTE3MDRhZDAwMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzEyN2VjZWQ1MTNjMzc3YWJiNGNiZDViYzRiNWNkNWY3NWVlNGRiYg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Y2FjY2I2OTY3MTY4NDdmYWQxZDYwZjYzMDZiMjZiZGJjYWVmY2Q2NWRiZDI0
|
10
|
+
ZTZiZWNhNjA2NTRjM2VhMWQ1M2UyYjZjNDBjZGUzNzQ3ZmYzZGFmODVlYjMy
|
11
|
+
ZDlmYjI0ZTMxM2E1ZjdhOTYzMjE0MzdjZjVjMmRlMzE5MzQ5YzM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODdjYmUwZmU4M2I4OTQ1OWFmZTRlMTQ3M2M3N2ViMzRiZTc2ZDI3YjZjNmQy
|
14
|
+
NGIzZWI4ODZhOWFmNWQ0YTNkMWI3ZmIxMjk2ZmFjNDMxYTY1MWUzYjFjY2Rl
|
15
|
+
NDA0NWFmODdkNzRlNTkwOGEyNDMxZGUzMDZlMGUyMWQzZDY3NDY=
|
@@ -1,11 +1,13 @@
|
|
1
1
|
#
|
2
2
|
# Class for packaging set of html, javascript, image and stylesheet files into a widget for an iBook
|
3
3
|
# => accepts an array of images, stylesheets and javascripts as full paths
|
4
|
-
# => images should be paperclip .url method path
|
4
|
+
# => images should be paperclip .url method path (gem assumes "#{Rails.root}/public" path for images)
|
5
5
|
# => acceps main haml file as string (fullpath)
|
6
6
|
#
|
7
7
|
require 'active_model'
|
8
8
|
require 'plist'
|
9
|
+
require 'uglifier'
|
10
|
+
require 'sass'
|
9
11
|
|
10
12
|
class WidgetBundle
|
11
13
|
|
@@ -33,7 +35,6 @@ class WidgetBundle
|
|
33
35
|
FileUtils.mkdir_p path
|
34
36
|
|
35
37
|
# make requred directories
|
36
|
-
# images_dir = FileUtils.mkdir("#{path}/")[0]
|
37
38
|
images_dir = path
|
38
39
|
css_js_dir = FileUtils.mkdir("#{path}/assets/")[0]
|
39
40
|
|
@@ -48,11 +49,11 @@ class WidgetBundle
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
51
|
-
#
|
52
|
-
|
52
|
+
# minify stylesheets
|
53
|
+
minify_stylesheets(stylesheets, css_js_dir)
|
53
54
|
|
54
|
-
#
|
55
|
-
|
55
|
+
# minify javascripts
|
56
|
+
minify_javascripts(javascripts, css_js_dir)
|
56
57
|
|
57
58
|
# create Info.plist
|
58
59
|
File.open("#{path}/Info.plist", "w") { |file| file.write(plist_content(display_name, bundle_identifier, bundle_name)) }
|
@@ -67,6 +68,30 @@ class WidgetBundle
|
|
67
68
|
|
68
69
|
protected
|
69
70
|
|
71
|
+
# Minify stylesheets into one file
|
72
|
+
#
|
73
|
+
def minify_stylesheets(stylesheets, path)
|
74
|
+
out = ''
|
75
|
+
stylesheets.each do |css|
|
76
|
+
out << Sass::Engine.new(File.open(css).read, syntax: :scss, style: :compressed).render
|
77
|
+
end
|
78
|
+
|
79
|
+
# write the main.css file
|
80
|
+
File.open("#{path}/main.css", 'w'){|file| file.write(out) }
|
81
|
+
end
|
82
|
+
|
83
|
+
# Minify javascripts into one file
|
84
|
+
#
|
85
|
+
def minify_javascripts(javascripts, path)
|
86
|
+
out = ''
|
87
|
+
javascripts.each do |js|
|
88
|
+
out << Uglifier.compile(File.read(js))
|
89
|
+
end
|
90
|
+
|
91
|
+
# write the main.js file
|
92
|
+
File.open("#{path}/main.js", 'w'){|file| file.write(out) }
|
93
|
+
end
|
94
|
+
|
70
95
|
# Compresses the widget folder to a zip for downloading. Zip file will be created within the *.wdgt folder.
|
71
96
|
# path: full path to *.wdgt folder
|
72
97
|
def compress(path)
|
@@ -87,7 +112,7 @@ class WidgetBundle
|
|
87
112
|
end
|
88
113
|
|
89
114
|
# Generate plist for widget
|
90
|
-
#
|
115
|
+
#
|
91
116
|
def plist_content(display_name, bundle_identifier, bundle_name)
|
92
117
|
plist = {
|
93
118
|
CFBundleDevelopmentRegion: 'English',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: widget_bundler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Franken
|
@@ -53,6 +53,34 @@ dependencies:
|
|
53
53
|
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: uglifier
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: sass-rails
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
56
84
|
- !ruby/object:Gem::Dependency
|
57
85
|
name: rake
|
58
86
|
requirement: !ruby/object:Gem::Requirement
|