socks 0.1.9.beta → 0.1.10.beta
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/socks +230 -0
- data/lib/socks/router.rb +3 -0
- data/lib/socks/router_helpers.rb +8 -0
- data/lib/socks/version.rb +4 -1
- metadata +22 -4
data/bin/socks
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'commander/import'
|
5
|
+
require 'socks'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
program :version, Socks::VERSION
|
9
|
+
program :description, 'A Ruby-Rack-based microframework'
|
10
|
+
|
11
|
+
default_command :about
|
12
|
+
|
13
|
+
command :new do |c|
|
14
|
+
c.syntax = 'socks new [options]'
|
15
|
+
c.summary = 'Create a new Socks app'
|
16
|
+
c.description = 'Use Rack and other utilities to make a new Socks app from scratch'
|
17
|
+
c.action do |args, opt|
|
18
|
+
|
19
|
+
# Pull out the first arg in args[]
|
20
|
+
app = args[0]
|
21
|
+
|
22
|
+
# -------------------------------------------------------------------------
|
23
|
+
# File Contents |
|
24
|
+
# -------------------------------------------------------------------------
|
25
|
+
|
26
|
+
config_ru = "# config.ru is used for running rack-based applications. Please do not edit this file without proper understanding of Rack
|
27
|
+
# or some bad things may happen.
|
28
|
+
|
29
|
+
|
30
|
+
# Bundler setup
|
31
|
+
require \"bundler/setup\"
|
32
|
+
Bundler.setup
|
33
|
+
|
34
|
+
# http_router
|
35
|
+
require File.expand_path(\"../config/router.rb\", __FILE__)
|
36
|
+
|
37
|
+
# Controllers
|
38
|
+
Dir[\"../app/controllers\" + \"*.rb\"].each do |file|
|
39
|
+
require file
|
40
|
+
end
|
41
|
+
|
42
|
+
# Used so Rack can automatically get updated to file contents without
|
43
|
+
# a ten second cooldown
|
44
|
+
use Rack::Reloader, 0
|
45
|
+
|
46
|
+
# Used to run your router (app!)
|
47
|
+
# Go to config/router.rb to declare routes
|
48
|
+
run #{app.capitalize}::Router"
|
49
|
+
|
50
|
+
gemfile = "# List dependencies for your app in your Gemfile, then run the `bundle` command
|
51
|
+
|
52
|
+
source \"http://rubygems.org\"
|
53
|
+
|
54
|
+
# Socks itself!
|
55
|
+
gem \"socks\", \"~> #{Socks::VERSION}\"
|
56
|
+
|
57
|
+
# Rack HTTP
|
58
|
+
gem \"rack\"
|
59
|
+
|
60
|
+
# Startup your server with thin
|
61
|
+
gem \"thin\"
|
62
|
+
|
63
|
+
# Or use Foreman
|
64
|
+
gem \"foreman\"
|
65
|
+
|
66
|
+
# Use HttpRouter for routes (required)
|
67
|
+
gem \"http_router\"
|
68
|
+
|
69
|
+
# Mange todos, fixmes, etc. via tasks.rb with do_it
|
70
|
+
gem \"do_it\"
|
71
|
+
|
72
|
+
# Use Warden for authentication
|
73
|
+
# gem \"warden\"
|
74
|
+
|
75
|
+
group :development, :test do
|
76
|
+
# Use RSpec for tests
|
77
|
+
gem \"rspec\"
|
78
|
+
|
79
|
+
# Use Capybara to replicate the user
|
80
|
+
gem \"capybara\"
|
81
|
+
end"
|
82
|
+
|
83
|
+
rakefile = "# Socks generates many helpful Rake tasks for you!
|
84
|
+
require \"socks\"
|
85
|
+
Socks::Tasks.install"
|
86
|
+
|
87
|
+
gitignore = ".DS_Store
|
88
|
+
Gemfile.lock"
|
89
|
+
|
90
|
+
procfile = "web: bundle exec rackup config.ru -p 4000"
|
91
|
+
|
92
|
+
app_template = "require \"socks\""
|
93
|
+
|
94
|
+
router_template = "# Declare the paths to your routes here.
|
95
|
+
require \"http_router\"
|
96
|
+
require \"socks\"
|
97
|
+
|
98
|
+
module #{app.capitalize}
|
99
|
+
Router = HttpRouter.new do
|
100
|
+
|
101
|
+
# See what you can do at https://github.com/joshbuddy/http_router
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
105
|
+
"
|
106
|
+
|
107
|
+
config_template = "# Setup your main configuration here.
|
108
|
+
|
109
|
+
Socks.configure do |config|
|
110
|
+
end"
|
111
|
+
|
112
|
+
########################
|
113
|
+
# Spec-helper template #
|
114
|
+
########################
|
115
|
+
|
116
|
+
spec_helper = "# Default helpers for your specs are added here
|
117
|
+
require \"rspec\"
|
118
|
+
require \"rspec-socks\"
|
119
|
+
require \"rack\"
|
120
|
+
"
|
121
|
+
|
122
|
+
dotrspec = "--color
|
123
|
+
--format documentation"
|
124
|
+
|
125
|
+
tasks = "# Put app TODOS, FIXMES, and/or NOTES in here.
|
126
|
+
require \"do_it\"
|
127
|
+
|
128
|
+
app = DoIt.new do
|
129
|
+
# See what you can do at https://github.com/Beakr/do_it
|
130
|
+
end
|
131
|
+
|
132
|
+
app.list # Format list"
|
133
|
+
|
134
|
+
|
135
|
+
# -------------------------------------------------------------------------
|
136
|
+
# Creation |
|
137
|
+
# -------------------------------------------------------------------------
|
138
|
+
|
139
|
+
FileUtils.mkdir app
|
140
|
+
FileUtils.cd app
|
141
|
+
FileUtils.mkdir %w( config spec )
|
142
|
+
FileUtils.touch %w( spec/spec_helper.rb .rspec ) # Spec file(s)
|
143
|
+
FileUtils.touch %w( Dofile ) # Todo manager
|
144
|
+
FileUtils.touch %w( config/app_config.rb )
|
145
|
+
|
146
|
+
# -------------------------------------------------------------------------
|
147
|
+
# File Initialization |
|
148
|
+
# -------------------------------------------------------------------------
|
149
|
+
|
150
|
+
|
151
|
+
system("echo '#{config_ru}' >> config.ru")
|
152
|
+
system("echo '#{gemfile}' >> Gemfile")
|
153
|
+
system("echo '#{rakefile}' >> Rakefile")
|
154
|
+
|
155
|
+
system("echo '#{gitignore}' >> .gitignore")
|
156
|
+
system("echo '#{procfile}' >> Procfile")
|
157
|
+
system("echo '#{tasks}' >> Dofile")
|
158
|
+
|
159
|
+
system("echo '#{router_template}' >> config/router.rb")
|
160
|
+
system("echo '#{config_template}' >> config/app_config.rb")
|
161
|
+
|
162
|
+
system("echo '#{spec_helper}' >> spec/spec_helper.rb")
|
163
|
+
system("echo '#{dotrspec}' >> .rspec")
|
164
|
+
|
165
|
+
system("bundle")
|
166
|
+
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
command :controller do |c|
|
171
|
+
c.syntax = 'socks controller [options]'
|
172
|
+
c.description = 'Create a template for something'
|
173
|
+
c.action do |args, options|
|
174
|
+
cont = args[0]
|
175
|
+
|
176
|
+
cont_template = "# Specify pages in the controller
|
177
|
+
|
178
|
+
# e.g.
|
179
|
+
#
|
180
|
+
# def index
|
181
|
+
# \"This is a socks app!\"
|
182
|
+
# end
|
183
|
+
#
|
184
|
+
|
185
|
+
class #{cont.capitalize}Controller < Socks::BaseController
|
186
|
+
# ...
|
187
|
+
end
|
188
|
+
"
|
189
|
+
|
190
|
+
FileUtils.touch "app/controllers/#{cont}_controller.rb"
|
191
|
+
system("echo '#{cont_template}' >> app/controllers/#{cont}_controller.rb")
|
192
|
+
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
command :start do |c|
|
197
|
+
c.syntax = 'socks start [options]'
|
198
|
+
c.description = 'Startup a Rack server'
|
199
|
+
c.action do |args, options|
|
200
|
+
system('foreman start') # Startup server including code in lib/ that runs on port 4000
|
201
|
+
notify "Socks server is up"
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
command :test do |c|
|
206
|
+
c.syntax = 'socks test [options]'
|
207
|
+
c.description = 'Run tests with RSpec'
|
208
|
+
c.action do |args, options|
|
209
|
+
system('rspec .')
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
command :version do |c|
|
214
|
+
c.syntax = 'socks version [options]'
|
215
|
+
c.description = 'Display the current version (altertative to --version)'
|
216
|
+
c.action do |args, options|
|
217
|
+
Socks::VERSION
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
command :about do |c|
|
222
|
+
c.syntax = 'socks about [options]'
|
223
|
+
c.action do |args, options|
|
224
|
+
system("echo \"\e[32m Usage: socks new APP_NAME\"")
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
# -------------------------------------------------------------------------
|
229
|
+
# Helpers |
|
230
|
+
# -------------------------------------------------------------------------
|
data/lib/socks/router.rb
CHANGED
data/lib/socks/router_helpers.rb
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
# General helpers for the Socks router
|
2
2
|
|
3
3
|
module Socks
|
4
|
+
|
5
|
+
# This class is purely of helper methods for the Socks App::Router generated in
|
6
|
+
# router.rb of your Socks app.
|
4
7
|
module RouterHelpers
|
8
|
+
|
9
|
+
# Takes the pain of filling in a text content-type for you
|
10
|
+
# @param [String] The string to display
|
11
|
+
# @return [text] The text rendered onto the screen
|
5
12
|
def txt(str)
|
6
13
|
return [200, {'Content-type' => 'text/plain'}, ["#{str}"]]
|
7
14
|
end
|
15
|
+
|
8
16
|
end
|
9
17
|
end
|
data/lib/socks/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: socks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.10.beta
|
5
|
+
prerelease: 7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Chris Clarke
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
@@ -139,13 +139,31 @@ dependencies:
|
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: do_it
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
142
158
|
description: An in-development web framework using Rack.
|
143
159
|
email:
|
144
160
|
- beakr@ninjanizr.com
|
145
|
-
executables:
|
161
|
+
executables:
|
162
|
+
- socks
|
146
163
|
extensions: []
|
147
164
|
extra_rdoc_files: []
|
148
165
|
files:
|
166
|
+
- bin/socks
|
149
167
|
- lib/socks.rb
|
150
168
|
- lib/socks/version.rb
|
151
169
|
- lib/socks/config.rb
|