scalerui 0.1.0 → 0.1.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.
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