voidtools 0.2.9 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Readme.md +76 -5
- data/lib/voidtools.rb +3 -3
- data/lib/voidtools/dm/name_url.rb +3 -10
- data/lib/voidtools/sinatra/tracking.rb +1 -0
- data/lib/voidtools/sinatra/view_helpers.rb +6 -12
- data/lib/voidtools/version.rb +1 -1
- metadata +9 -13
- data/lib/voidtools/cap/deploy.rb +0 -152
- data/lib/voidtools/rails/app_mixin.rb +0 -8
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 58317def67a48164232061dceea6b6c53bda8d01
|
4
|
+
data.tar.gz: cfafac618982b4a0fac16124b0a0f9e0bed1b817
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9ae21b8dbaccec570dce75f76f9cc5e55bf622dba95a58328fd135cb4f8e8edfdca38aaa36756283be9fa0381cce24771b1d5f091651e3f68aae13404a96cc16
|
7
|
+
data.tar.gz: 5d8ef89c310cdd5152cbd8ccc98202564327c40d405729cbae5de668b73f55c0f486baf32e20edf97895084827d9a52e2f7e1432ebbbf571066ade7929b88e2d
|
data/Readme.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Voidtools
|
2
|
-
####
|
2
|
+
#### handy toolset for Sinatra with DataMapper and HAML
|
3
3
|
|
4
4
|
---
|
5
5
|
|
@@ -14,23 +14,93 @@
|
|
14
14
|
- pagination
|
15
15
|
|
16
16
|
### Sinatra
|
17
|
+
- seo tracking
|
17
18
|
- view helpers
|
18
19
|
- link_to
|
19
|
-
-
|
20
|
+
- image_tag
|
20
21
|
- include_assets (include_js, include_css)
|
21
|
-
|
22
|
+
- body_class
|
23
|
+
|
22
24
|
note: ruby 1.9 required
|
23
25
|
|
26
|
+
## Usage:
|
27
|
+
|
24
28
|
## DataMapper
|
25
29
|
### error_messages_for
|
26
30
|
|
27
31
|
in your form view:
|
28
32
|
|
29
|
-
|
33
|
+
error_messages_for :resource
|
30
34
|
|
31
35
|
or
|
32
36
|
|
33
|
-
|
37
|
+
error_messages_for @resource
|
38
|
+
|
39
|
+
### name url
|
40
|
+
|
41
|
+
example: in your DM model add a name_url property
|
42
|
+
|
43
|
+
property :name_url, String, length: 255
|
44
|
+
|
45
|
+
before :create do
|
46
|
+
self.name_url = generate_url_from_name name
|
47
|
+
end
|
48
|
+
|
49
|
+
before create, the name_url will be generated to make your urls seo-friendly
|
50
|
+
|
51
|
+
|
52
|
+
## Sinatra
|
53
|
+
|
54
|
+
helpers examples:
|
55
|
+
|
56
|
+
link_to "Label", "/your/link"
|
57
|
+
|
58
|
+
image_tag "/image/file.png"
|
59
|
+
|
60
|
+
include_js "antani" #=> <script src='/js/antani.js' ...>
|
61
|
+
include_css "antani" #=> <link href='/css/antani.css' ...>
|
62
|
+
|
63
|
+
|
64
|
+
%body{ class: body_class } #=> "/" -> home, "/posts/1" -> "posts", etc.
|
65
|
+
|
66
|
+
|
67
|
+
### Paginable
|
68
|
+
|
69
|
+
Usage:
|
70
|
+
|
71
|
+
in your model add:
|
72
|
+
|
73
|
+
require 'voidtools/dm/paginable'
|
74
|
+
include Voidtools::Paginable
|
75
|
+
|
76
|
+
in a controller (or similar):
|
77
|
+
|
78
|
+
Model.paginate(page: params[:page])
|
79
|
+
|
80
|
+
in your view:
|
81
|
+
|
82
|
+
.pagination
|
83
|
+
pag:
|
84
|
+
- Model.pages.times do |i|
|
85
|
+
%a{ :href => "/path?page=#{i}" }= i+1
|
86
|
+
|
87
|
+
(optional) in your model:
|
88
|
+
|
89
|
+
def self.per_page
|
90
|
+
20
|
91
|
+
end
|
92
|
+
|
93
|
+
a simple stylesheet (sass):
|
94
|
+
|
95
|
+
.pagination
|
96
|
+
margin: 10px 20px
|
97
|
+
a
|
98
|
+
padding: 3px 6px
|
99
|
+
background: #DDD
|
100
|
+
a:hover
|
101
|
+
background: #FFF
|
102
|
+
|
103
|
+
## Development
|
34
104
|
|
35
105
|
### Build & install
|
36
106
|
|
@@ -42,5 +112,6 @@ or
|
|
42
112
|
|
43
113
|
### Changelog
|
44
114
|
|
115
|
+
v0.3.1 - remove unnecessary files
|
45
116
|
v0.2.9 - added datamapper module autoload if DataMapper is defined
|
46
117
|
v0.2.3 - first stable version, autoloads modules for sinatra and rails
|
data/lib/voidtools.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Voidtools
|
2
2
|
|
3
|
+
# TODO: consider to remove rails support
|
4
|
+
|
3
5
|
# namespace our plugin and inherit from Rails::Railtie
|
4
6
|
# to get our plugin into the initialization process
|
5
7
|
if defined?(Rails)
|
@@ -14,7 +16,7 @@ module Voidtools
|
|
14
16
|
# event = ActiveSupport::Notifications::Event.new(*args)
|
15
17
|
# puts "Voidrails - got notification: #{event.inspect}"
|
16
18
|
# end
|
17
|
-
require 'voidtools/dm/
|
19
|
+
require 'voidtools/dm/datamapper'
|
18
20
|
require 'voidtools/sinatra/tracking'
|
19
21
|
ActiveSupport.on_load(:action_view) do
|
20
22
|
module ApplicationHelper
|
@@ -22,8 +24,6 @@ module Voidtools
|
|
22
24
|
include Voidtools::Tracking
|
23
25
|
end
|
24
26
|
end
|
25
|
-
# require 'voidtools/dm/name_url'
|
26
|
-
# require 'voidtools/dm/paginable'
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -1,16 +1,9 @@
|
|
1
1
|
module Voidtools
|
2
2
|
module NameUrl
|
3
|
-
def generate_url_from_name
|
4
|
-
name.gsub(/\./, '').gsub(/'
|
3
|
+
def generate_url_from_name(name)
|
4
|
+
name.gsub(/\./, '').gsub(/['"\/]/, ' ').gsub(/\s+/, '_').gsub(/_-_/, '_').downcase
|
5
5
|
end
|
6
|
-
|
7
|
-
# TODO: try to embed this into the model
|
8
|
-
|
9
|
-
# before :create do
|
10
|
-
# self.name_url = generate_url_from_name
|
11
|
-
# end
|
12
|
-
|
13
|
-
|
6
|
+
|
14
7
|
def generate_name_url
|
15
8
|
nurl = generate_url_from_name
|
16
9
|
update(name_url: nurl)
|
@@ -1,24 +1,18 @@
|
|
1
1
|
module Voidtools
|
2
2
|
module Sinatra
|
3
3
|
module ViewHelpers
|
4
|
-
|
5
|
-
# require 'voidtools/sinatra/tracking'
|
6
|
-
# include Voidtools::Tracking
|
7
|
-
|
4
|
+
|
8
5
|
def link_to(label, path="javascript:void(0)", options={})
|
9
|
-
# haml_tag :a, { href: path } do
|
10
|
-
# haml_concat label
|
11
|
-
# end
|
12
6
|
options = options.map do |key, value|
|
13
7
|
" #{key}='#{value}'"
|
14
8
|
end.join(" ")
|
15
9
|
haml_concat "<a href='#{path}'#{options}>#{label}</a>"
|
16
10
|
end
|
17
|
-
|
11
|
+
|
18
12
|
def image_tag(url, options={})
|
19
13
|
haml_tag :img, options.merge(src: url)
|
20
14
|
end
|
21
|
-
|
15
|
+
|
22
16
|
def include_assets(type, assets)
|
23
17
|
type_js = type == "js"
|
24
18
|
tag = type_js ? "script" : "link"
|
@@ -31,15 +25,15 @@ module Voidtools
|
|
31
25
|
haml_tag tag, options
|
32
26
|
end
|
33
27
|
end
|
34
|
-
|
28
|
+
|
35
29
|
def include_js(assets)
|
36
30
|
include_assets "js", assets
|
37
31
|
end
|
38
|
-
|
32
|
+
|
39
33
|
def include_css(assets)
|
40
34
|
include_assets "css", assets
|
41
35
|
end
|
42
|
-
|
36
|
+
|
43
37
|
def body_class
|
44
38
|
path = request.path.split("/")[1..2]
|
45
39
|
path = path.join(" ") unless path.nil?
|
data/lib/voidtools/version.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voidtools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Francesco 'makevoid' Canessa
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-28 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
|
-
description:
|
13
|
+
description: 'handy toolset for sinatra and datamapper - sinatra modules: tracking,
|
15
14
|
view_helpers - datamapper modules: form_helpers, name_url, paginable'
|
16
15
|
email: makevoid@gmail.com
|
17
16
|
executables: []
|
@@ -19,39 +18,36 @@ extensions: []
|
|
19
18
|
extra_rdoc_files: []
|
20
19
|
files:
|
21
20
|
- Readme.md
|
22
|
-
- lib/voidtools
|
21
|
+
- lib/voidtools.rb
|
23
22
|
- lib/voidtools/dm/datamapper.rb
|
24
23
|
- lib/voidtools/dm/form_helpers.rb
|
25
24
|
- lib/voidtools/dm/name_url.rb
|
26
25
|
- lib/voidtools/dm/paginable.rb
|
27
|
-
- lib/voidtools/rails/app_mixin.rb
|
28
26
|
- lib/voidtools/sinatra/sinatra.rb
|
29
27
|
- lib/voidtools/sinatra/tracking.rb
|
30
28
|
- lib/voidtools/sinatra/view_helpers.rb
|
31
29
|
- lib/voidtools/version.rb
|
32
|
-
- lib/voidtools.rb
|
33
30
|
homepage: http://www.makevoid.com
|
34
31
|
licenses: []
|
32
|
+
metadata: {}
|
35
33
|
post_install_message:
|
36
34
|
rdoc_options: []
|
37
35
|
require_paths:
|
38
36
|
- lib
|
39
37
|
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
38
|
requirements:
|
42
|
-
- -
|
39
|
+
- - ">="
|
43
40
|
- !ruby/object:Gem::Version
|
44
41
|
version: '0'
|
45
42
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
|
-
none: false
|
47
43
|
requirements:
|
48
|
-
- -
|
44
|
+
- - ">="
|
49
45
|
- !ruby/object:Gem::Version
|
50
46
|
version: '0'
|
51
47
|
requirements: []
|
52
48
|
rubyforge_project: voidtools
|
53
|
-
rubygems_version:
|
49
|
+
rubygems_version: 2.3.0
|
54
50
|
signing_key:
|
55
|
-
specification_version:
|
51
|
+
specification_version: 4
|
56
52
|
summary: handy toolset for sinatra and datamapper
|
57
53
|
test_files: []
|
data/lib/voidtools/cap/deploy.rb
DELETED
@@ -1,152 +0,0 @@
|
|
1
|
-
|
2
|
-
set :application, "thorrents"
|
3
|
-
|
4
|
-
#set :domain, "krikri.makevoid.com"
|
5
|
-
set :domain, "ovh.makevoid.com"
|
6
|
-
|
7
|
-
# git
|
8
|
-
|
9
|
-
# #set :repository, "svn://#{domain}/svn/#{application}"
|
10
|
-
# #default_run_options[:pty] = true # Must be set for the password prompt from git to work
|
11
|
-
set :repository, "git://github.com/makevoid/thorrents.git" # public
|
12
|
-
|
13
|
-
set :scm, "git"
|
14
|
-
set :branch, "master"
|
15
|
-
set :deploy_via, :remote_cache
|
16
|
-
|
17
|
-
set :password, File.read("/Users/makevoid/.password").strip.gsub(/33/, '')
|
18
|
-
|
19
|
-
|
20
|
-
set :user, "www-data"
|
21
|
-
|
22
|
-
set :use_sudo, false
|
23
|
-
set :deploy_to, "/www/#{application}"
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
# set :scm_username, "makevoid"
|
28
|
-
# set :scm_password, File.read("/home/www-data/.password").strip
|
29
|
-
|
30
|
-
role :app, domain
|
31
|
-
role :web, domain
|
32
|
-
role :db, domain, :primary => true
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
after :deploy, "deploy:cleanup"
|
38
|
-
#after :deploy, "db:seeds"
|
39
|
-
|
40
|
-
namespace :deploy do
|
41
|
-
|
42
|
-
desc "Restart Application"
|
43
|
-
task :restart, :roles => :app do
|
44
|
-
run "touch #{current_path}/tmp/restart.txt"
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
namespace :bundle do
|
50
|
-
desc "Install gems with bundler"
|
51
|
-
task :install do
|
52
|
-
run "cd #{current_path}; bundle install --relock"
|
53
|
-
end
|
54
|
-
|
55
|
-
desc "Commit, deploy and install"
|
56
|
-
task :installscom do
|
57
|
-
`svn commit -m ''`
|
58
|
-
`cap deploy`
|
59
|
-
`cap bundle:install`
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# ...
|
64
|
-
|
65
|
-
namespace :bundler do
|
66
|
-
task :create_symlink, :roles => :app do
|
67
|
-
shared_dir = File.join(shared_path, 'bundle')
|
68
|
-
release_dir = File.join(current_release, '.bundle')
|
69
|
-
run("mkdir -p #{shared_dir} && ln -s #{shared_dir} #{release_dir}")
|
70
|
-
end
|
71
|
-
|
72
|
-
task :bundle_new_release, :roles => :app do
|
73
|
-
bundler.create_symlink
|
74
|
-
run "cd #{release_path} && bundle install --without test"
|
75
|
-
end
|
76
|
-
|
77
|
-
task :lock, :roles => :app do
|
78
|
-
run "cd #{current_release} && bundle lock;"
|
79
|
-
end
|
80
|
-
|
81
|
-
task :unlock, :roles => :app do
|
82
|
-
run "cd #{current_release} && bundle unlock;"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
# HOOKS
|
87
|
-
after "deploy:update_code" do
|
88
|
-
bundler.bundle_new_release
|
89
|
-
# ...
|
90
|
-
end
|
91
|
-
|
92
|
-
R_ENV = "RACK_ENV"
|
93
|
-
|
94
|
-
namespace :scraper do
|
95
|
-
desc "Run the scraper"
|
96
|
-
task :scrape do
|
97
|
-
run "cd #{current_path}; #{R_ENV}=production bundle exec rake scraper:scrape --trace"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
|
102
|
-
namespace :db do
|
103
|
-
desc "Create database"
|
104
|
-
task :create do
|
105
|
-
run "mysql -u root --password=#{password} -e 'CREATE DATABASE IF NOT EXISTS #{application}_production;'"
|
106
|
-
end
|
107
|
-
|
108
|
-
desc "Seed database"
|
109
|
-
task :seeds do
|
110
|
-
run "cd #{current_path}; #{R_ENV}=production rake db:seeds"
|
111
|
-
end
|
112
|
-
|
113
|
-
desc "Migrate database"
|
114
|
-
task :automigrate do
|
115
|
-
run "cd #{current_path}; #{R_ENV}=production rake db:automigrate --trace"
|
116
|
-
end
|
117
|
-
|
118
|
-
desc "Send the local db to production server"
|
119
|
-
task :toprod do
|
120
|
-
# `rake db:seeds`
|
121
|
-
`mysqldump -u root #{application}_development > db/#{application}_development.sql`
|
122
|
-
upload "db/#{application}_development.sql", "#{current_path}/db", :via => :scp
|
123
|
-
run "mysql -u root --password=#{password} #{application}_production < #{current_path}/db/#{application}_development.sql"
|
124
|
-
end
|
125
|
-
|
126
|
-
desc "Get the remote copy of production db"
|
127
|
-
task :todev do
|
128
|
-
run "mysqldump -u root --password=#{password} #{application}_production > #{current_path}/db/#{application}_production.sql"
|
129
|
-
download "#{current_path}/db/#{application}_production.sql", "db/#{application}_production.sql"
|
130
|
-
local_path = `pwd`.strip
|
131
|
-
`mysql -u root #{application}_development < #{local_path}/db/#{application}_production.sql`
|
132
|
-
|
133
|
-
|
134
|
-
desc "Get the remote copy of production db [option: BACKUP]"
|
135
|
-
task :todev do
|
136
|
-
run "mysqldump -u root --password=#{password} #{application}_production > #{current_path}/db/#{application}_production.sql"
|
137
|
-
download "#{current_path}/db/#{application}_production.sql", "db/#{application}_production.sql"
|
138
|
-
local_path = `pwd`.strip
|
139
|
-
`mysql -u root #{application}_development < #{local_path}/db/#{application}_production.sql`
|
140
|
-
|
141
|
-
t = Time.now
|
142
|
-
file = "#{application}_production_#{t.strftime("%Y_%m_%d")}.sql"
|
143
|
-
`mv db/#{application}_production.sql db/#{file}`
|
144
|
-
|
145
|
-
if ENV["BACKUP"] != "" || ENV["BACKUP"].nil?
|
146
|
-
`cp db/#{file} ~/db_backups/`
|
147
|
-
puts "Backup saved on ~/db_backups/#{file}"
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|