voidtools 0.2.3 → 0.2.9

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/Readme.md CHANGED
@@ -3,6 +3,11 @@
3
3
 
4
4
  ---
5
5
 
6
+ ### Install from RubyGems
7
+
8
+ gem i voidtools
9
+
10
+
6
11
  ### DataMapper
7
12
  - form helpers: error_messages_for
8
13
  - name url
@@ -29,4 +34,13 @@ or
29
34
 
30
35
  ### Build & install
31
36
 
32
- gem build voidtools.gemspec; gem install voidtools-0.2.3.gem
37
+
38
+ git clone git://github.com/makevoid/voidtools.git
39
+ cd voidtools;
40
+ gem build voidtools.gemspec; gem install voidtools-x.x.x.gem
41
+
42
+
43
+ ### Changelog
44
+
45
+ v0.2.9 - added datamapper module autoload if DataMapper is defined
46
+ v0.2.3 - first stable version, autoloads modules for sinatra and rails
@@ -1,23 +1,25 @@
1
1
  module Voidtools
2
-
2
+
3
3
  # namespace our plugin and inherit from Rails::Railtie
4
4
  # to get our plugin into the initialization process
5
5
  if defined?(Rails)
6
6
  class Railtie < Rails::Railtie
7
-
7
+
8
8
  # configure our plugin on boot. other extension points such
9
9
  # as configuration, rake tasks, etc, are also available
10
10
  initializer "voidtools.initialize" do |app|
11
-
11
+
12
12
  # subscribe to all rails notifications: controllers, AR, etc.
13
13
  # ActiveSupport::Notifications.subscribe do |*args|
14
14
  # event = ActiveSupport::Notifications::Event.new(*args)
15
15
  # puts "Voidrails - got notification: #{event.inspect}"
16
16
  # end
17
17
  require 'voidtools/dm/form_helpers'
18
+ require 'voidtools/sinatra/tracking'
18
19
  ActiveSupport.on_load(:action_view) do
19
20
  module ApplicationHelper
20
21
  include Voidtools::FormHelpers
22
+ include Voidtools::Tracking
21
23
  end
22
24
  end
23
25
  # require 'voidtools/dm/name_url'
@@ -25,9 +27,14 @@ module Voidtools
25
27
  end
26
28
  end
27
29
  end
28
-
30
+
31
+ @@path = File.expand_path "../", __FILE__
32
+
29
33
  if defined?(Sinatra)
30
- path = File.expand_path "../", __FILE__
31
- require "#{path}/voidtools/sinatra/sinatra"
34
+ require "#{@@path}/voidtools/sinatra/sinatra"
35
+ end
36
+
37
+ if defined?(DataMapper)
38
+ require "#{@@path}/voidtools/dm/datamapper"
32
39
  end
33
40
  end
@@ -0,0 +1,3 @@
1
+ require_relative "form_helpers"
2
+ require_relative "name_url"
3
+ require_relative "paginable"
@@ -1,3 +1,35 @@
1
+ # Paginable
2
+ #
3
+ # Usage:
4
+ #
5
+ # in your model add:
6
+ # require 'voidtools/dm/paginable'
7
+ # include Voidtools::Paginable
8
+ #
9
+ # in a controller (or similar):
10
+ # Model.paginate(page: params[:page])
11
+ #
12
+ # in your view:
13
+ # .pagination
14
+ # pag:
15
+ # - Model.pages.times do |i|
16
+ # %a{ :href => "/path?page=#{i}" }= i+1
17
+ #
18
+ # (optional) in your model:
19
+ # def self.per_page
20
+ # 20
21
+ # end
22
+ #
23
+ # sass:
24
+ #
25
+ # .pagination
26
+ # margin: 10px 20px
27
+ # a
28
+ # padding: 3px 6px
29
+ # background: #DDD
30
+ # a:hover
31
+ # background: #FFF
32
+
1
33
  module Voidtools
2
34
 
3
35
  module Paginable
@@ -18,7 +50,7 @@ module Voidtools
18
50
  end
19
51
 
20
52
  def pages
21
- all.count/x_page
53
+ (all.count.to_f/x_page).ceil
22
54
  end
23
55
  end
24
56
 
@@ -1,2 +1,11 @@
1
1
  path = File.expand_path "../", __FILE__
2
- require "#{path}/view_helpers"
2
+ require "#{path}/view_helpers"
3
+
4
+ require "#{path}/tracking"
5
+ module Voidtools
6
+ module Sinatra
7
+ module ViewHelpers
8
+ include Voidtools::Tracking
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,88 @@
1
+ # Voidtools::Tracking
2
+ # ---------------------------------------------
3
+
4
+ # Setup:
5
+ #
6
+ # put these lines in your app_helper.rb:
7
+ #
8
+ # require 'voidtools/sinatra/tracking'
9
+ # include Voidtools::Tracking
10
+
11
+
12
+ # Usage:
13
+ #
14
+ # :javascript
15
+ # #{crazyegg}
16
+ # #{gauges("id")}
17
+
18
+
19
+ module Voidtools
20
+ module Tracking
21
+
22
+ def track_run(&block)
23
+ if defined?(Rails)
24
+ yield if Rails.env != "development"
25
+ else
26
+ yield if ENV["RACK_ENV"] != "development"
27
+ end
28
+ end
29
+
30
+ def analytics(id, *domains) # before the end of head tag
31
+ # FIXME: try with multiple domains
32
+ # TODO: test case
33
+ track_run do
34
+ out = <<-FUN
35
+ var _gaq = _gaq || [];
36
+ _gaq.push(['_setAccount', '#{id}']);FUN
37
+ domains.each do |domain|
38
+ out << " _gaq.push(['_setDomainName', '.#{domain}']);"
39
+ end
40
+ <<-FUN
41
+ _gaq.push(['_trackPageview']);
42
+
43
+ (function() {
44
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
45
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
46
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
47
+ })();
48
+ FUN
49
+ end
50
+ end
51
+
52
+ def mixpanel
53
+ track_run do
54
+ # ...
55
+ end
56
+ end
57
+
58
+ def crazyegg # before the end of body tag
59
+
60
+ track_run do
61
+ <<-FUN
62
+ setTimeout(function(){var a=document.createElement("script");
63
+ var b=document.getElementsByTagName('script')[0];
64
+ a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0011/5433.js";
65
+ a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
66
+ FUN
67
+ end
68
+
69
+ end
70
+
71
+ def gauges(id) # before the end of body tag
72
+ track_run do
73
+ <<-FUN
74
+ (function() {
75
+ var t = document.createElement('script');
76
+ t.type = 'text/javascript';
77
+ t.async = true;
78
+ t.id = 'gauges-tracker';
79
+ t.setAttribute('data-site-id', '#{id}');
80
+ t.src = '//secure.gaug.es/track.js';
81
+ var s = document.getElementsByTagName('script')[0];
82
+ s.parentNode.insertBefore(t, s);
83
+ })();
84
+ FUN
85
+ end
86
+ end
87
+ end
88
+ end
@@ -1,6 +1,10 @@
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
  def link_to(label, path="javascript:void(0)", options={})
5
9
  # haml_tag :a, { href: path } do
6
10
  # haml_concat label
@@ -35,6 +39,12 @@ module Voidtools
35
39
  def include_css(assets)
36
40
  include_assets "css", assets
37
41
  end
42
+
43
+ def body_class
44
+ path = request.path.split("/")[1..2]
45
+ path = path.join(" ") unless path.nil?
46
+ request.path == "/" ? "home" : path
47
+ end
38
48
  end
39
49
  end
40
50
  end
@@ -1,3 +1,3 @@
1
1
  module Voidtools
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.9"
3
3
  end
metadata CHANGED
@@ -1,65 +1,57 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: voidtools
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.9
4
5
  prerelease:
5
- version: 0.2.3
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Francesco 'makevoid' Canessa
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-07 00:00:00 +02:00
14
- default_executable:
12
+ date: 2012-02-26 00:00:00.000000000 Z
15
13
  dependencies: []
16
-
17
- description: "custom rails3 toolset setup with helpers for: datamapper, jquery, haml and warden"
14
+ description: ! 'handy toolset for sinatra and datamapper - sinatra modules: tracking,
15
+ view_helpers - datamapper modules: form_helpers, name_url, paginable'
18
16
  email: makevoid@gmail.com
19
17
  executables: []
20
-
21
18
  extensions: []
22
-
23
19
  extra_rdoc_files: []
24
-
25
- files:
20
+ files:
26
21
  - Readme.md
27
22
  - lib/voidtools/cap/deploy.rb
23
+ - lib/voidtools/dm/datamapper.rb
28
24
  - lib/voidtools/dm/form_helpers.rb
29
25
  - lib/voidtools/dm/name_url.rb
30
26
  - lib/voidtools/dm/paginable.rb
31
27
  - lib/voidtools/rails/app_mixin.rb
32
28
  - lib/voidtools/sinatra/sinatra.rb
29
+ - lib/voidtools/sinatra/tracking.rb
33
30
  - lib/voidtools/sinatra/view_helpers.rb
34
31
  - lib/voidtools/version.rb
35
32
  - lib/voidtools.rb
36
- has_rdoc: true
37
33
  homepage: http://www.makevoid.com
38
34
  licenses: []
39
-
40
35
  post_install_message:
41
36
  rdoc_options: []
42
-
43
- require_paths:
37
+ require_paths:
44
38
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
39
+ required_ruby_version: !ruby/object:Gem::Requirement
46
40
  none: false
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: "0"
51
- required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
46
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
57
51
  requirements: []
58
-
59
52
  rubyforge_project: voidtools
60
- rubygems_version: 1.6.2
53
+ rubygems_version: 1.8.10
61
54
  signing_key:
62
55
  specification_version: 3
63
- summary: custom rails3 toolset - for dm+jquery+haml+warden setup
56
+ summary: handy toolset for sinatra and datamapper
64
57
  test_files: []
65
-