duffy 0.2.4 → 0.2.5
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.
- checksums.yaml +4 -4
- data/README.md +31 -26
- data/lib/duffy/beast_mode_helper.rb +49 -0
- data/lib/duffy/railtie.rb +6 -0
- data/lib/duffy/version.rb +2 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 304f86f07f2a4318944a13f241921faba0d8f969
|
4
|
+
data.tar.gz: d90859be246a584b6cd460c8a8d942a1de39c07d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ff94dbc71c7d44f306a1698173ac7a05763a16b3c44d0090b182561d57eb565edd935431b36a70deec574743a7c1fa92054ac1cd59208607f4f37819366c565
|
7
|
+
data.tar.gz: 66637e5c757d8e36a12911abb8395215d3d7119118fb6e703a6871c7c7bc1bc36761c088218813a831988bc2b629023d73c20fd36e58c112825009a264e6355e
|
data/README.md
CHANGED
@@ -8,7 +8,6 @@ This is a collection of reusable things I don't want to keep duplicating in tons
|
|
8
8
|
## Installation
|
9
9
|
|
10
10
|
Add this line to your application's Gemfile:
|
11
|
-
* This is a work in progress. If someone decides to use this, you may want to lock your version number in your gemfile.
|
12
11
|
|
13
12
|
```ruby
|
14
13
|
gem 'duffy'
|
@@ -39,21 +38,21 @@ gender_human | "F" | "Female"
|
|
39
38
|
smart_titlecase | "this and that" | "This and That" (Note: Has config options. See lib/duffy.rb)
|
40
39
|
|
41
40
|
|
42
|
-
Date Patches:
|
41
|
+
## Date Patches:
|
43
42
|
|
44
43
|
Method | Example | Output
|
45
44
|
------------------|-----------------|-------
|
46
45
|
fiscal_year | Date.today | 2015 (See config to set your organization's fiscal year start.)
|
47
46
|
|
48
47
|
|
49
|
-
NilClass Patches:
|
48
|
+
## NilClass Patches:
|
50
49
|
|
51
50
|
Method | Example | Output
|
52
51
|
------------------|-----------------|-------
|
53
52
|
to_date | nil | self (Exists so you can call .to_date on Date, String or nil
|
54
53
|
|
55
54
|
|
56
|
-
Active Record Aliases:
|
55
|
+
## Active Record Aliases:
|
57
56
|
|
58
57
|
Alias | Standard
|
59
58
|
------------------|---------
|
@@ -61,35 +60,41 @@ accepts | accepts_nested_attributes_for
|
|
61
60
|
habtm | has_and_belongs_to_many
|
62
61
|
|
63
62
|
|
64
|
-
Git Access:
|
63
|
+
## Git Access:
|
65
64
|
This one is namespaced in case you use the 'git' gem. I found it to be overkill for what I wanted.
|
66
|
-
```ruby
|
67
|
-
Duffy::Git.log # => Produce tab separated listing of current git log.
|
68
|
-
Duffy::Git.count # => Count of git commits in current branch
|
69
|
-
Duffy::Git.email # => Local repo's git user.email or global if none.
|
70
|
-
Duffy::Git.branch # => Current git branch.
|
71
|
-
```
|
72
65
|
|
73
|
-
|
66
|
+
Method | Result
|
67
|
+
----------|---------
|
68
|
+
Duffy::Git.log | Produce tab separated listing of current git log.
|
69
|
+
Duffy::Git.count | Count of git commits in current branch
|
70
|
+
Duffy::Git.email | Local repo's git user.email or global if none.
|
71
|
+
Duffy::Git.branch | Current git branch.
|
72
|
+
|
73
|
+
|
74
|
+
## CPU Detection:
|
74
75
|
Linux and Mac only for now, each method returns 1 on unsupported hosts.
|
75
76
|
Example results for my dual core i5 with hyperthreading.
|
76
|
-
```ruby
|
77
|
-
Duffy::System.cpus # => 1
|
78
|
-
Duffy::System.cores # => 2
|
79
|
-
Duffy::System.threads # => 4
|
80
|
-
Duffy::System.sane_load # => 3
|
81
|
-
```
|
82
77
|
|
78
|
+
Method | Result
|
79
|
+
----------|---------
|
80
|
+
Duffy::System.cpus | 1
|
81
|
+
Duffy::System.cores | 2
|
82
|
+
Duffy::System.threads | 4
|
83
|
+
Duffy::System.sane_load | 3
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
## View Helpers:
|
88
|
+
|
89
|
+
Method | Example | Result
|
90
|
+
------------|-------------------------------------|-------
|
91
|
+
beast_mode | beast_mode tags | renders tag partial in parallel. Only available if you have the Parallel gem in your Gemfile. You must also wrap your partial in a cache block.
|
92
|
+
excel_icon | excel_icon | generates hyperlinked excel.png in an li block to .xlsx version of current page or passed link. Maintains current GET params.
|
93
|
+
icon | icon("tags", tags_path) | generates link of class "icon" with the title and link provided. also sets id based on controller and action |
|
94
|
+
menu_tag | menu_tag("Login", login_path) | generated hyperlinked li block used in common ul based navigation toolbars.
|
83
95
|
|
84
|
-
View Helpers:
|
85
|
-
This is a work in progress. I'm going to try to put all my generic helpers here.
|
86
|
-
```ruby
|
87
|
-
menu_tag
|
88
|
-
excel_icon
|
89
|
-
icon
|
90
|
-
```
|
91
96
|
|
92
|
-
CSS Reset & Print Styles: Very barebones CSS Reset / Sensible defaults and Print stylesheets.
|
97
|
+
## CSS Reset & Print Styles: Very barebones CSS Reset / Sensible defaults and Print stylesheets.
|
93
98
|
```ruby
|
94
99
|
require duffy/reset
|
95
100
|
require duffy/print
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module BeastModeHelper
|
2
|
+
|
3
|
+
# Cache each partial in a collection, then display from cache.
|
4
|
+
#
|
5
|
+
# IMPORTANT: This only works if you've wrapped your partial in a cache block.
|
6
|
+
# If you don't it will take longer than just calling render()
|
7
|
+
# You also need the Parallel gem installed: https://github.com/grosser/parallel
|
8
|
+
#
|
9
|
+
# Examples:
|
10
|
+
# beast_mode(@jobs)
|
11
|
+
# beast_mode(partial: 'jobs/job', collection: @jobs)
|
12
|
+
#
|
13
|
+
def beast_mode(options = {})
|
14
|
+
|
15
|
+
if defined? Parallel
|
16
|
+
|
17
|
+
if options.is_a?(Hash)
|
18
|
+
# eg: beast_mode(partial: 'jobs/job', collection: @jobs)
|
19
|
+
|
20
|
+
# Issue ArgumentError if anything is missing
|
21
|
+
raise ArgumentError.new("partial: option is required") unless options.has_key?(:partial)
|
22
|
+
raise ArgumentError.new("collection: option is required") unless options.has_key?(:collection)
|
23
|
+
|
24
|
+
collection = options[:collection]
|
25
|
+
partial = options[:partial]
|
26
|
+
|
27
|
+
# Issue ArgumentError if collection isn't a collection
|
28
|
+
raise ArgumentError.new("collection doesn't look like something I can render") unless collection.respond_to?(:each)
|
29
|
+
|
30
|
+
|
31
|
+
# silently render each partial as quickly as possible. It's up to you to include a cache block!
|
32
|
+
Parallel.each(collection, in_processes: MAX_PROCESSES) do |object|
|
33
|
+
render(partial: partial, object: object)
|
34
|
+
end
|
35
|
+
else
|
36
|
+
# eg: beast_mode(@jobs)
|
37
|
+
# Generate the Cache fragments for each object in parallel as fast as possible, but don't show them yet
|
38
|
+
Parallel.each(options, in_processes: MAX_PROCESSES) do |object|
|
39
|
+
render(object)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
else
|
43
|
+
warn " [WARNING] beast_mode is not executing in parallel. Please add https://github.com/grosser/parallel"
|
44
|
+
end
|
45
|
+
|
46
|
+
# Display the cached fragments.
|
47
|
+
render(options)
|
48
|
+
end
|
49
|
+
end
|
data/lib/duffy/railtie.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
# http://stackoverflow.com/questions/5791211/how-do-i-extract-rails-view-helpers-into-a-gem
|
2
2
|
|
3
3
|
require File.dirname(__FILE__) + "/duffy_helper"
|
4
|
+
require File.dirname(__FILE__) + "/beast_mode_helper"
|
5
|
+
|
4
6
|
module Duffy
|
5
7
|
class Railtie < Rails::Railtie
|
6
8
|
initializer "duffy_helper" do
|
7
9
|
ActiveSupport.on_load( :action_view ){ include DuffyHelper }
|
8
10
|
end
|
11
|
+
|
12
|
+
initializer "beast_mode_helper" do
|
13
|
+
ActiveSupport.on_load( :action_view ){ include BeastModeHelper }
|
14
|
+
end
|
9
15
|
end
|
10
16
|
end
|
data/lib/duffy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duffy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Duffy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- duffy.gemspec
|
97
97
|
- lib/duffy.rb
|
98
98
|
- lib/duffy/active_record.rb
|
99
|
+
- lib/duffy/beast_mode_helper.rb
|
99
100
|
- lib/duffy/date.rb
|
100
101
|
- lib/duffy/duffy_helper.rb
|
101
102
|
- lib/duffy/engine.rb
|