static 0.1.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ require "vmc"
2
+ require "vmc/cli"
3
+
4
+ module Static
5
+ class CLI < VMC::CLI
6
+
7
+ def initialize(command = nil, input = nil)
8
+ config = File.expand_path(VMC::CONFIG_DIR)
9
+ if not File.exist? config
10
+ target = sane_target_url("http://api.static.me")
11
+ ensure_config_dir
12
+ File.open(File.expand_path(VMC::TARGET_FILE), "w") do |f|
13
+ f.write(sane_target_url(target))
14
+ end
15
+ info = target_info(client_target)
16
+ save_target_info(info)
17
+ end
18
+
19
+ super
20
+
21
+ @@commands.delete(:register)
22
+ end
23
+
24
+ def default_action
25
+ if input[:version]
26
+ line "static #{Static::Cmd::VERSION}"
27
+ end
28
+
29
+ super
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,40 @@
1
+ require "vmc/cli/app/base"
2
+ require "pp"
3
+
4
+ module VMC::App
5
+ class Download < Base
6
+ desc "Download Application"
7
+ group :apps, :manage
8
+ input :app, :desc => "Application name",
9
+ :argument => true, :from_given => by_name(:app)
10
+
11
+ def download
12
+ app = input[:app]
13
+
14
+ download_app(app)
15
+
16
+ rescue CFoundry::NotFound
17
+ fail "Invalid #{b(app.name)}"
18
+ rescue CFoundry::FileError => e
19
+ fail e.description
20
+ end
21
+
22
+ private
23
+
24
+ def download_app(app)
25
+ with_progress("Downloading #{c(app.name, :name)}") do
26
+ resp = client.base.get("apps", app.name, "application", :content => "application/octet-stream")
27
+
28
+ if not resp.nil?
29
+ File.open("#{app.name}.zip","w") { |f| f.puts resp }
30
+ else
31
+ raise
32
+ end
33
+ end
34
+ rescue
35
+ err "Download failed."
36
+ raise
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,5 @@
1
+ module Static
2
+ module Cmd
3
+ VERSION = "1.0.0".freeze
4
+ end
5
+ end
metadata CHANGED
@@ -1,91 +1,123 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: static
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.1.3
7
- date: 2007-08-04 00:00:00 -04:00
8
- summary: The author was too lazy to write a summary
9
- require_paths:
10
- - lib
11
- email: ryand-ruby@zenspider.com
12
- homepage: http://www.zenspider.com/ZSS/Products/static/
13
- rubyforge_project: static
14
- description: The author was too lazy to write a description
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ - 0
9
+ version: 1.0.0
25
10
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
11
  authors:
30
- - Ryan Davis
31
- files:
32
- - History.txt
33
- - Manifest.txt
34
- - README.txt
35
- - Rakefile
36
- - bin/static
37
- - bin/cli.rbml
38
- - lib/static.rb
39
- - lib/collection.rb
40
- - lib/filebase.rb
41
- - lib/page.rb
42
- - lib/site.rb
43
- - lib/xhtml.rb
44
- - lib/generator.rb
45
- - lib/extentions/class.rb
46
- - lib/extentions/string.rb
47
- - templates/page.copy
48
- - templates/site.map
49
- - templates/site.info
50
- - templates/submenu.copy
51
- - templates/disco/attributes
52
- - templates/disco/display
53
- - templates/disco/paginate
54
- - templates/disco/feed
55
- - templates/disco/link_list
56
- - templates/helpers/content.rb
57
- - templates/helpers/prototype.js
58
- - templates/layouts/default/contents.erbml
59
- - templates/layouts/default/main_navigation.erbml
60
- - templates/layouts/default/page_head.erbml
61
- - templates/layouts/default/submenu.erbml
62
- - templates/layouts/default/structure/default.rbml
63
- - templates/layouts/default/structure/footer.rbml
64
- - templates/layouts/default/stylesheets/default.css
65
- - templates/layouts/default/copy/page.copy
66
- test_files: []
12
+ - Static Development
13
+ autorequire:
14
+ bindir:
15
+ - bin
16
+ cert_chain: []
67
17
 
68
- rdoc_options:
69
- - --main
70
- - README.txt
71
- extra_rdoc_files:
72
- - History.txt
73
- - Manifest.txt
74
- - README.txt
18
+ date: 2013-03-07 00:00:00 -06:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :development
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 2
42
+ - 0
43
+ version: "2.0"
44
+ type: :development
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: vmc
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
55
+ - 5
56
+ - 0
57
+ version: 0.5.0
58
+ type: :runtime
59
+ version_requirements: *id003
60
+ - !ruby/object:Gem::Dependency
61
+ name: tunnel-vmc-plugin
62
+ prerelease: false
63
+ requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ - 2
70
+ - 2
71
+ version: 0.2.2
72
+ type: :runtime
73
+ version_requirements: *id004
74
+ description: " Static.com Cloud Command Line Client "
75
+ email:
76
+ - support@static.com
75
77
  executables:
76
78
  - static
77
- - cli.rbml
78
79
  extensions: []
79
80
 
81
+ extra_rdoc_files:
82
+ - README.md
83
+ - LICENSE
84
+ files:
85
+ - LICENSE
86
+ - README.md
87
+ - Rakefile
88
+ - lib/static/cli/app/download.rb
89
+ - lib/static/cli.rb
90
+ - lib/static/version.rb
91
+ - lib/static.rb
92
+ has_rdoc: true
93
+ homepage: http://www.static.com/
94
+ licenses: []
95
+
96
+ post_install_message:
97
+ rdoc_options: []
98
+
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ segments:
113
+ - 0
114
+ version: "0"
80
115
  requirements: []
81
116
 
82
- dependencies:
83
- - !ruby/object:Gem::Dependency
84
- name: hoe
85
- version_requirement:
86
- version_requirements: !ruby/object:Gem::Version::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: 1.2.1
91
- version:
117
+ rubyforge_project: static
118
+ rubygems_version: 1.3.6
119
+ signing_key:
120
+ specification_version: 3
121
+ summary: Static.com Cloud CLI
122
+ test_files: []
123
+
@@ -1,5 +0,0 @@
1
- == 1.0.0 / 2007-04-17
2
-
3
- * 1 major enhancement
4
- * Birthday!
5
-
@@ -1,36 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.txt
4
- Rakefile
5
- bin/static
6
- bin/cli.rbml
7
- lib/static.rb
8
- lib/collection.rb
9
- lib/filebase.rb
10
- lib/page.rb
11
- lib/site.rb
12
- lib/static.rb
13
- lib/xhtml.rb
14
- lib/generator.rb
15
- lib/extentions/class.rb
16
- lib/extentions/string.rb
17
- templates/page.copy
18
- templates/site.map
19
- templates/site.info
20
- templates/submenu.copy
21
- templates/disco/attributes
22
- templates/disco/display
23
- templates/disco/paginate
24
- templates/disco/feed
25
- templates/disco/link_list
26
- templates/helpers/content.rb
27
- templates/helpers/prototype.js
28
- templates/layouts/default/contents.erbml
29
- templates/layouts/default/main_navigation.erbml
30
- templates/layouts/default/page_head.erbml
31
- templates/layouts/default/submenu.erbml
32
- templates/layouts/default/structure/default.rbml
33
- templates/layouts/default/structure/footer.rbml
34
- templates/layouts/default/stylesheets/default.css
35
- templates/layouts/default/copy/page.copy
36
-
data/README.txt DELETED
@@ -1,307 +0,0 @@
1
- === static
2
- by evan short
3
-
4
- == DESCRIPTION:
5
-
6
- static is a command line environment for creating static websites.
7
- it uses a yaml site map to produce a blueprint with decoupled copy
8
- and structure. uses rbml for html processing. static incorporates
9
- arbitrary collections that can be displayed both within a page and
10
- paginated over a page. this allows such features as news, faqs,
11
- blogs and other galleries.
12
-
13
- == FEATURES:
14
-
15
- - command line interface
16
- - multiple site management
17
- - yaml site map
18
- - decoupled copy and structure
19
- - flexible, sectioned copy
20
- - html in block-syntax
21
- - collections
22
- - inner-page, such as news on a home page
23
- - paginated, a blog, for instance
24
- - plain ol' css for style
25
-
26
- == PROBLEMS:
27
-
28
- - cli needs some work
29
- - prompt context
30
- - tab completion
31
- - termios integration (or otherwise implemented command history)
32
- - better error messaging
33
- - documentation
34
- - how layouts work
35
- - how blueprints work
36
- - there are no specs
37
- - ready for a re-factor
38
-
39
- if i had to guess i would say that this will not work on windows. it
40
- is organized for a mac, but works fine, im sure, under unix in general
41
- i don't know that much about cygwin. i don't anticipate fixing this myself
42
- (or even look into it) without some incentive. i will happily take patches.
43
-
44
- == TODO:
45
-
46
- - deal with resources (e.g. images, movies, etc)
47
- - allow +display+ to take a block describing the layout
48
- - command to preview in browser
49
- - give better program hooks in the static home
50
- - allow pages to override the default layout
51
- - allow collections to override the default layout
52
- - give a method to display the site map
53
- - rename partials with underscores
54
- - option to turn links off if current
55
- - stop css from being overwritten when re-generating the blueprint
56
- - simple site versioning
57
- - css versioning
58
- - page splitting in copy
59
-
60
- == USAGE NOTES:
61
-
62
- so, first thing's first open up a terminal and run static. the first
63
- time it is run a folder called +static+ will be created in your <tt>~/</tt>.
64
- in this folder your layouts and projects will be kept, along with a
65
- few template files in <tt>.templates</tt> that will be used when
66
- creating a site.
67
-
68
- === site generation
69
-
70
- you will see a prompt: <tt>-></tt>
71
-
72
- -> start sample site
73
- starting a site map for sample
74
-
75
- at this point the footprint of your site (named sample in this example)
76
- has been created. a sitemap is generated from the site.map template
77
- in the static home (~/static). initially this is populated with an
78
- example map, but can be re-formatted or emptied if you choose.
79
-
80
- -> edit site.map
81
-
82
- this will open the previously mentioned site map in vi. there is a
83
- variable to change editors but, currently, no place to actually do
84
- it. sue me. i'll get to it soon.
85
-
86
- after the site map has been exited the pages are loaded into memory
87
- and you can then begin to build your site.
88
-
89
- -> build
90
-
91
- or
92
-
93
- -> build copy
94
-
95
- will generate the .copy yaml files that will hold the contents of each
96
- page in your site map. you may then run
97
-
98
- -> edit copy
99
-
100
- to edit the contents of those pages. more desireably, perhaps, you may
101
- zip this folder up and send it off to someone more suited to edit copy.
102
-
103
- some things to note when editing copy:
104
-
105
- - this must be a properly formatted yaml file
106
- - use <tt>: |</tt> followed by an indented block of text to use multiline text in yaml
107
- - use *s instead of -s to indicate list elements underneath <tt>: |</tt>s
108
-
109
- if it is not a properly formatted yaml file, generate will simply fail. you will hardly
110
- be given an error message, and certainly nothing helpful. it is for this reason i
111
- suggest you check your contents files twice before sending them through the grinder.
112
- definitely some robustness or something needed here.
113
- given no me you will simp
114
-
115
- anyway, next you must choose a layout.
116
-
117
- -> layout
118
-
119
- will give you a choice of the possible layouts. by default there is only
120
- one layout available. you may copy the default layout in the static home
121
- to create new layouts. there are plans to incorporate some of this into
122
- the cli. not yet, however.
123
-
124
- because there is only one layout available by default, running +layout+
125
- will choose it for you. if there were more than one you could run +layout+
126
- with a regex for the layout you would like to choose (or not) and then
127
- make a choice from the resulting list. choices in lists may be made by
128
- regex or number selection. no word on what happens if there are numbers
129
- in your possible selections.
130
-
131
- as an example, because the word 'regex' can be frightening to some, i might
132
- use <tt>layout def</tt> to find the default layout in a long list of selections.
133
-
134
- once a layout is chosen it is possible to make edits to it before building
135
- the basic structure of the site, called the blueprint. you may run
136
-
137
- -> edit layout
138
-
139
- to make changes to the layout you have chosen.
140
-
141
- once the layout is satisfactory, running
142
-
143
- -> build blueprint
144
-
145
- will put the blueprint folder in place.
146
-
147
- -> edit blueprint
148
-
149
- will take you there to edit.
150
-
151
- to build the copy, choose a layout, and build the blueprint in one go:
152
-
153
- -> build all
154
-
155
- it is worth noting that the edit commands may be used at any time, not only
156
- directly after building that particular section.
157
-
158
- either way you get here, at this point you may generate your site by running
159
-
160
- -> generate
161
-
162
- you may edit your site and generate as many times as you like.
163
- by default (not easily changable at the moment) your site will be
164
- generated to ~/Sites/static/name_of_site.
165
-
166
- use
167
-
168
- -> load site
169
-
170
- (which uses the choice module) to load a site or make a different
171
- site active. you may simply use +load+ if there is not already an
172
- active site.
173
-
174
- == collection managment
175
-
176
- once a site has been started that site will be active. once there is
177
- an active site you may begin dealing with collections. to start a
178
- collection
179
-
180
- -> start faq collection with question answer
181
-
182
- this will start a collection named faq with the attributes question and
183
- answer.
184
-
185
- because there is already an active site, the +collection+ key
186
- is assumed and therefore sugar. +with+ is purely sugar.
187
-
188
- the faq collection is now active (as it was just started and no other
189
- collection has been loaded). you may run
190
-
191
- -> edit attributes
192
-
193
- to edit the yaml file describing the attributes
194
-
195
- -> edit display
196
-
197
- to edit the default way a member of the collection is displayed
198
-
199
- and
200
-
201
- -> add
202
-
203
- to add an item to the collection. it is worth noting that the attribute
204
- files are processed by erb before they make it to your editor. so in the
205
- event you had a +date+ attribute in a collection, using +edit attributes+
206
- to make <tt>date: <%= Date.today.to_s.inspect %></tt> will start each
207
- added item with today's date ready for yaml.
208
-
209
- to show a collection within a page add a line like
210
-
211
- display 5, :faq
212
-
213
- on the blueprint of the desired page. display also responds to :all in place
214
- of the number.
215
-
216
- to paginate a collection over a particular page you must assign the
217
- collection to the page.
218
-
219
- -> assign
220
-
221
- will ask you first which collection you would like to choose and then which
222
- page. because each page is only allowed to be paginated once your choices
223
- will be limited to those that have not already been paginated. you may use
224
- -c or --collection to regex for a desired collection.
225
- likewise with -p and --page.
226
-
227
- you may also run +assign paginate+ with the same possible flags to paginate
228
- the collection automatically after the association.
229
-
230
- after associating the collection and the page you may use
231
-
232
- -> paginate
233
-
234
- and then
235
-
236
- -> generate
237
-
238
- to update the pages. in the future there should probably be a more direct
239
- way to generate over only paginated pages.
240
-
241
- in order to see the paginated items on the desired page simply add the line
242
-
243
- include_partial
244
-
245
- where you would like the paginated section of your collection to be included.
246
- to use the link list generated include the line
247
-
248
- get :page, :collection_name => :links
249
-
250
- <tt>:page</tt> is short for 'this page that we are in'. if you would like to
251
- be moroe explicit (or use the list elsewhere) simply put in the file name of
252
- the page (which would be the page name you gave it in the site map formatted
253
- as a lower-case symbol) as such:
254
-
255
- get :page_name, :collection_name => :links
256
-
257
- == A Note from the Author
258
-
259
- there is much more to say, and there is no doubt that this is a first release,
260
- but a lot of what is going on can be gleaned by looking at the stuff that is
261
- generated by default. any questions may be directed to
262
-
263
- evan.short @ pleasedontspam. gmail.please
264
-
265
- suggestions and criticisms are welcome. i am aware that when things go sour
266
- there is often no word as to what actually went wrong. you can tell me
267
- about them if you feel so inclined, but i am of the opinion that some more
268
- reasonable error messaging needs to happen in rbml rather than too much
269
- more effort going into my dilligence at writing horribly nested if statements
270
- in the cli script.
271
-
272
- == REQUIREMENTS:
273
-
274
- rbml v. 0.0.5.9.4.1
275
-
276
- == INSTALL:
277
-
278
- i looked into it briefly but found nothing about actually making a dependency
279
- in a gem. if anyone knows how to do this, please let me know.
280
-
281
- sudo gem install rbml
282
- sudo gem install static
283
-
284
- == LICENSE:
285
-
286
- (The MIT License)
287
-
288
- Copyright (c) 2007 Evan Short
289
-
290
- Permission is hereby granted, free of charge, to any person obtaining
291
- a copy of this software and associated documentation files (the
292
- 'Software'), to deal in the Software without restriction, including
293
- without limitation the rights to use, copy, modify, merge, publish,
294
- distribute, sublicense, and/or sell copies of the Software, and to
295
- permit persons to whom the Software is furnished to do so, subject to
296
- the following conditions:
297
-
298
- The above copyright notice and this permission notice shall be
299
- included in all copies or substantial portions of the Software.
300
-
301
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
302
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
303
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
304
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
305
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
306
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
307
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.