scalerui 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -11,6 +11,7 @@ begin
11
11
  gem.homepage = "http://github.com/tolatomeow/scalerui"
12
12
  gem.authors = ["Simon Chiu"]
13
13
  gem.add_development_dependency "shoulda", ">= 0"
14
+ gem.files.include %w( src/* )
14
15
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
16
  end
16
17
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/bin/scalerui ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
4
+ require 'scalerui'
5
+
6
+ arguments = Scalerui.new(ARGV)
data/lib/scalerui.rb CHANGED
@@ -0,0 +1,239 @@
1
+ dir = File.dirname(__FILE__)
2
+
3
+ require 'optparse'
4
+ require 'fileutils'
5
+ require 'shell'
6
+ require 'tmpdir'
7
+
8
+ class Scalerui
9
+ def initialize(args)
10
+
11
+ @args = args
12
+
13
+ # Default Options
14
+ @options = {
15
+ :install => false,
16
+ :upgrade => false,
17
+ :version => "latest",
18
+ :assets => nil
19
+ }
20
+
21
+ # Option Parser
22
+ optparse = OptionParser.new do |opts|
23
+ opts.banner = <<-EOF
24
+
25
+ Scaler UI Framework
26
+ (c) Copyright 2009 Simon Chiu, Scaler Apps http://ui.scalerapps.com
27
+ ---------------------------------------------------------------------------------------------------------
28
+
29
+ Usage: scalerui [options] [framework directory]
30
+
31
+ Description:
32
+ Enables you to easily install, remove, or upgrade Scaler UI for Rails
33
+
34
+ Options:
35
+
36
+ EOF
37
+
38
+ opts.on_tail('--help', "Displays this screen") do
39
+ puts opts
40
+ exit
41
+ end
42
+
43
+ opts.on('--install', "Installs the UI") do
44
+ @options[:install] = true
45
+ end
46
+
47
+ opts.on('--remove', "Removes the UI") do
48
+ @options[:install] = false
49
+ end
50
+
51
+ opts.on('--version n', "Installs a specific UI version") do |version|
52
+ @options[:version] = version
53
+ end
54
+
55
+ opts.on('--dir INSTALL-DIRECTORY', "Rails directoryw here you want to install UI") do |dir|
56
+ @options[:install_dir] = dir
57
+ end
58
+
59
+ opts.on('--assets ASSETS-LOCATION', "URL of where your assets are hosted, eg. CDN") do |url|
60
+ @options[:assets] = url
61
+ end
62
+
63
+ opts.parse!(@args)
64
+
65
+ # Sets some instance variables
66
+ @install = @options[:install]
67
+ @install_dir = @options[:install_dir]
68
+ @assets_dir = @options[:assets] || File.join(@install_dir, "public")
69
+ @scalerui_dir = File.join(@assets_dir, "scalerui")
70
+ @images_dir = File.join(@scalerui_dir, "images")
71
+ @js_dir = File.join(@scalerui_dir, "javascript")
72
+ @css_dir = File.join(@scalerui_dir, "css")
73
+ @src_dir = File.join(File.dirname(__FILE__) + "/../src")
74
+
75
+ process
76
+ end
77
+
78
+ end
79
+
80
+ protected
81
+
82
+ def process
83
+ raise NoTargetDirectoryError if @install_dir.nil?
84
+
85
+ if @install
86
+ # -- Begin of Installation
87
+
88
+ # Creates the appropriate directory for the framework files ------------------------------
89
+ begin
90
+ # Checks to see whether an existing scalerui is installed
91
+ if File.exist?(@scalerui_dir)
92
+ print "Existing Scaler UI detected. Installer will delete all files in existing Scaler UI directory. Do you want to continue? (y/n): "
93
+ response = gets.chomp
94
+ if response == 'n'
95
+ puts "Aborted"
96
+ return
97
+ else
98
+ cleanup
99
+ end
100
+ end
101
+ print "Creating directory structure: #{@scalerui_dir}..."
102
+ FileUtils.mkdir_p @scalerui_dir
103
+ FileUtils.mkdir_p @images_dir
104
+ FileUtils.mkdir_p @js_dir
105
+ FileUtils.mkdir_p @css_dir
106
+ puts "done"
107
+ rescue Exception => e
108
+ puts "An error has occurred while creating the directories"
109
+ cleanup
110
+ return
111
+ end
112
+
113
+ # Copies the files ------------------------------------------------------------------------
114
+ begin
115
+ all_source_files = Dir[File.join(@src_dir, "/*")]
116
+ version = @options[:version]
117
+ case version
118
+ when "latest"
119
+ @file_source = all_source_files.sort.last
120
+ else
121
+ @file_source = File.join(@src_dir, "/scalerui-#{version}.tar.gz")
122
+ end
123
+
124
+ # Check to see if file exists
125
+ raise NoSourceFileError unless File.exist?(@file_source)
126
+
127
+ # Untar and copies files over
128
+ copy_files
129
+
130
+ rescue NoSourceFileError => e
131
+ puts "Source file is missing. Please install the gem again."
132
+ cleanup
133
+ return
134
+ end
135
+
136
+ puts "Scaler UI Framework has been installed into this Rails app: #{@install_dir}"
137
+ puts ""
138
+ puts "Put the following lines into your template headers: "
139
+ puts '
140
+ <link href="/scalerui/css/reset.css" rel="stylesheet" type="text/css">
141
+ <link href="/scalerui/css/base.css" rel="stylesheet" type="text/css">
142
+ <link href="/scalerui/css/layout.css" rel="stylesheet" type="text/css">
143
+ <link href="/scalerui/css/components.css" rel="stylesheet" type="text/css">
144
+
145
+ <script src="http://www.google.com/jsapi"></script>
146
+ <script type="text/javascript">
147
+ // Load jQuery
148
+ google.load("jquery", "1.3.2");
149
+ google.load("jqueryui", "1.7.2");
150
+ </script>
151
+ <script type="text/javascript" src="javascript/scalerapps/ui-0.1.js"></script>
152
+ <!--[if IE 6]>
153
+ <link href="css/ie6.css" rel="stylesheet" type="text/css">
154
+
155
+ <script type="text/javascript" src="javascript/ie6/DD_belatedPNG_0.0.8a.js"></script>
156
+ <script type="text/javascript">
157
+ DD_belatedPNG.fix("span.icon, span.big-icon, img");
158
+ </script>
159
+ <![endif]-->
160
+
161
+ <!--[if IE]>
162
+ <link href="css/ie.css" rel="stylesheet" type="text/css">
163
+ <![endif]-->
164
+ '
165
+
166
+ # -- End of Installation
167
+ else
168
+ # -- Begin of Removal
169
+ cleanup
170
+ # -- End of Removal
171
+ end
172
+
173
+ end
174
+
175
+ def copy_files
176
+ decompress_source
177
+ copy_css
178
+ copy_images
179
+ copy_js
180
+ clean_source
181
+ end
182
+
183
+ def decompress_source
184
+ @tmpdir = Dir.mktmpdir
185
+ Shell.def_system_command "decompress", "tar xzf #{@file_source} -C #{@tmpdir}"
186
+ sh = Shell.new
187
+
188
+ print "Decompressing framework source files..."
189
+ sh.transact do
190
+ decompress
191
+ end
192
+ puts "done"
193
+ end
194
+
195
+ def clean_source
196
+ FileUtils.remove_dir(@tmpdir, true)
197
+ end
198
+
199
+ def copy_css
200
+ print "Copying CSS files..."
201
+ css_dir = File.join(@tmpdir, "css")
202
+ Dir.chdir(css_dir)
203
+ FileUtils.mv Dir.glob("*"), @css_dir
204
+ puts "done"
205
+ end
206
+
207
+ def copy_images
208
+ print "Copying images"
209
+ images_dir = File.join(@tmpdir, "images")
210
+ Dir.chdir(images_dir)
211
+ FileUtils.mv Dir.glob("*"), @images_dir
212
+ puts "done"
213
+ end
214
+
215
+ def copy_js
216
+ print "Copying Javascript files..."
217
+ js_dir = File.join(@tmpdir, "javascript")
218
+ Dir.chdir(js_dir)
219
+ FileUtils.mv Dir.glob("*"), @js_dir
220
+ puts "done"
221
+ end
222
+
223
+ # Cleans up after messy installations, uninstallation, etc...
224
+ def cleanup
225
+ if File.exist?(@scalerui_dir)
226
+ print "Cleaning up directories..."
227
+ FileUtils.rm_r(@scalerui_dir)
228
+ puts "done"
229
+ else
230
+ puts "Nothing to clean up!"
231
+ end
232
+ end
233
+
234
+ end
235
+
236
+ # Error Classes
237
+ class ScaleruiError < StandardError; end;
238
+ class NoTargetDirectoryError < ScaleruiError; end;
239
+ class NoSourceFileError < ScaleruiError; end;
data/scalerui.gemspec ADDED
@@ -0,0 +1,59 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{scalerui}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Simon Chiu"]
12
+ s.date = %q{2009-11-05}
13
+ s.default_executable = %q{scalerui}
14
+ s.description = %q{ A basic UI layout and object oriented CSS components we use for rapid development. Basically, this saves us time from having to rehash everything over, and over, and over... }
15
+ s.email = %q{dev@scalerapps.com}
16
+ s.executables = ["scalerui"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".gitignore",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/scalerui",
29
+ "lib/scalerui.rb",
30
+ "scalerui.gemspec",
31
+ "src/scalerui-0.1.1.tar.gz",
32
+ "src/scalerui-0.1.1.tar.gz",
33
+ "test/helper.rb",
34
+ "test/test_scalerui.rb"
35
+ ]
36
+ s.homepage = %q{http://github.com/tolatomeow/scalerui}
37
+ s.rdoc_options = ["--charset=UTF-8"]
38
+ s.require_paths = ["lib"]
39
+ s.rubygems_version = %q{1.3.5}
40
+ s.summary = %q{Our internal UI framework for rapid wireframing and web development}
41
+ s.test_files = [
42
+ "test/helper.rb",
43
+ "test/test_scalerui.rb"
44
+ ]
45
+
46
+ if s.respond_to? :specification_version then
47
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
+ s.specification_version = 3
49
+
50
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
51
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
52
+ else
53
+ s.add_dependency(%q<shoulda>, [">= 0"])
54
+ end
55
+ else
56
+ s.add_dependency(%q<shoulda>, [">= 0"])
57
+ end
58
+ end
59
+
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scalerui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Chiu
@@ -10,7 +10,7 @@ bindir: bin
10
10
  cert_chain: []
11
11
 
12
12
  date: 2009-11-05 00:00:00 -05:00
13
- default_executable:
13
+ default_executable: scalerui
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: shoulda
@@ -24,8 +24,8 @@ dependencies:
24
24
  version:
25
25
  description: " A basic UI layout and object oriented CSS components we use for rapid development. Basically, this saves us time from having to rehash everything over, and over, and over... "
26
26
  email: dev@scalerapps.com
27
- executables: []
28
-
27
+ executables:
28
+ - scalerui
29
29
  extensions: []
30
30
 
31
31
  extra_rdoc_files:
@@ -38,7 +38,10 @@ files:
38
38
  - README.rdoc
39
39
  - Rakefile
40
40
  - VERSION
41
+ - bin/scalerui
41
42
  - lib/scalerui.rb
43
+ - scalerui.gemspec
44
+ - src/scalerui-0.1.1.tar.gz
42
45
  - test/helper.rb
43
46
  - test/test_scalerui.rb
44
47
  has_rdoc: true