kelredd-useful 0.1.20 → 0.1.25
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.rdoc +1 -1
- data/Rakefile +15 -7
- data/lib/useful/ruby_extensions/hash.rb +37 -11
- data/lib/useful/ruby_extensions/string.rb +5 -1
- data/lib/useful/ruby_extensions_from_rails/string.rb +8 -0
- data/lib/useful/sinatra_helpers/erb/links.rb +2 -2
- data/lib/useful/sinatra_helpers/mailer/tls.rb +2 -0
- data/lib/useful/version.rb +1 -1
- metadata +19 -19
- data/test/test_helper.rb +0 -10
- data/test/unit/useful_test.rb +0 -13
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -7,19 +7,20 @@ require 'lib/useful/version'
|
|
7
7
|
task :default => :test
|
8
8
|
|
9
9
|
spec = Gem::Specification.new do |s|
|
10
|
-
s.name = 'useful'
|
10
|
+
s.name = 'kelredd-useful'
|
11
11
|
s.version = Useful::Version.to_s
|
12
12
|
s.has_rdoc = true
|
13
13
|
s.extra_rdoc_files = %w(README.rdoc)
|
14
14
|
s.rdoc_options = %w(--main README.rdoc)
|
15
15
|
s.summary = "A collection of useful helpers for various ruby things."
|
16
|
-
s.author = '
|
17
|
-
s.email = ''
|
18
|
-
s.homepage = ''
|
19
|
-
s.files = %w(README.rdoc Rakefile) + Dir.glob("{lib
|
16
|
+
s.author = 'Kelly Redding'
|
17
|
+
s.email = 'kelly@kelredd.com'
|
18
|
+
s.homepage = 'http://code.kelredd.com'
|
19
|
+
s.files = %w(README.rdoc Rakefile) + Dir.glob("{lib}/**/*")
|
20
20
|
# s.executables = ['useful']
|
21
21
|
|
22
22
|
s.add_dependency('json')
|
23
|
+
s.add_dependency('tmail')
|
23
24
|
end
|
24
25
|
|
25
26
|
Rake::GemPackageTask.new(spec) do |pkg|
|
@@ -33,8 +34,15 @@ Rake::TestTask.new do |t|
|
|
33
34
|
end
|
34
35
|
|
35
36
|
desc 'Generate the gemspec to serve this Gem from Github'
|
36
|
-
task :
|
37
|
+
task :gemspec do
|
37
38
|
file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
|
38
39
|
File.open(file, 'w') {|f| f << spec.to_ruby }
|
39
40
|
puts "Created gemspec: #{file}"
|
40
|
-
end
|
41
|
+
end
|
42
|
+
|
43
|
+
require 'cucumber'
|
44
|
+
require 'cucumber/rake/task'
|
45
|
+
|
46
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
47
|
+
t.cucumber_opts = "test/features --format pretty"
|
48
|
+
end
|
@@ -45,13 +45,16 @@ module Useful
|
|
45
45
|
self.class.except(self, keys)
|
46
46
|
end
|
47
47
|
|
48
|
-
#
|
49
|
-
def
|
48
|
+
# Returns the value for the provided key(s). Allows searching in nested hashes
|
49
|
+
def get_value(*keys)
|
50
50
|
val = self[keys.first] || self[keys.first.to_s]
|
51
51
|
val = self[keys.first.to_s.intern] unless val || keys.first.to_s.empty? || keys.first.kind_of?(Symbol)
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
val.kind_of?(Hash) && keys.length > 1 ? val.get_value?(keys[1..-1]) : val
|
53
|
+
end
|
54
|
+
# Determines if a value exists for the provided key(s). Allows searching in nested hashes
|
55
|
+
def check_value?(*keys)
|
56
|
+
val = self.get_value(keys)
|
57
|
+
val && !val.empty? ? true : false
|
55
58
|
end
|
56
59
|
|
57
60
|
# takes any empty values and makes them nil inline
|
@@ -65,13 +68,36 @@ module Useful
|
|
65
68
|
# # => "?id=thomas_hardy"
|
66
69
|
# {:id => 23423, :since => Time.now}.to_http_query_str
|
67
70
|
# # => "?since=Thu,%2021%20Jun%202007%2012:10:05%20-0500&id=23423"
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
71
|
+
# {:id => [1,2]}.to_http_query_str
|
72
|
+
# # => "?id[]=1&id[]=2"
|
73
|
+
# {:poo => {:foo => 1, :bar => 2}}.to_http_query_str
|
74
|
+
# # => "?poo[bar]=2&poo[foo]=1"
|
75
|
+
# {:poo => {:foo => 1, :bar => {:bar1 => 1, :bar2 => "nasty"}}}.to_http_query_str
|
76
|
+
# "?poo[bar][bar1]=1&poo[bar][bar2]=nasty&poo[foo]=1"
|
77
|
+
unless {}.respond_to?(:to_http_query_str)
|
78
|
+
def to_http_query_str(opts = {})
|
79
|
+
require 'cgi' unless defined?(::CGI) && defined?(::CGI::escape)
|
80
|
+
opts[:prepend] ||= '?'
|
81
|
+
opts[:append] ||= ''
|
82
|
+
opts[:key_ns] ||= nil
|
83
|
+
opt_strings = self.collect do |key, val|
|
84
|
+
key_s = opts[:key_ns] ? "#{opts[:key_ns]}[#{key.to_s}]" : key.to_s
|
85
|
+
if val.kind_of?(::Array)
|
86
|
+
val.collect{|i| "#{key_s}[]=#{::CGI.escape(i.to_s)}"}.join('&')
|
87
|
+
elsif val.kind_of?(::Hash)
|
88
|
+
val.to_http_query_str({
|
89
|
+
:prepend => '',
|
90
|
+
:key_ns => key_s,
|
91
|
+
:append => ''
|
92
|
+
})
|
93
|
+
else
|
94
|
+
"#{key_s}=#{::CGI.escape(val.to_s)}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
self.empty? ? '' : "#{opts[:prepend]}#{opt_strings.join('&')}#{opts[:append]}"
|
98
|
+
end
|
73
99
|
end
|
74
|
-
|
100
|
+
|
75
101
|
def to_html_attrs
|
76
102
|
self.empty? ? '' : self.collect{|key, val| "#{key}=\"#{val}\""}.join(' ')
|
77
103
|
end
|
@@ -156,6 +156,14 @@ module Useful
|
|
156
156
|
prefix = prefix.to_s
|
157
157
|
self[0, prefix.length] == prefix
|
158
158
|
end
|
159
|
+
|
160
|
+
def to_datetime
|
161
|
+
::DateTime.civil(*::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 }) rescue nil
|
162
|
+
end
|
163
|
+
|
164
|
+
def to_date
|
165
|
+
::Date.civil(*::Date._parse(self, false).values_at(:year, :mon, :mday).map { |arg| arg || 0 }) rescue nil
|
166
|
+
end
|
159
167
|
|
160
168
|
end
|
161
169
|
end
|
@@ -19,8 +19,8 @@ module Sinatra
|
|
19
19
|
link_to(content, href, options)
|
20
20
|
end
|
21
21
|
|
22
|
-
def mail_link_to(email)
|
23
|
-
link_to email, "mailto: #{email}"
|
22
|
+
def mail_link_to(email, options={})
|
23
|
+
link_to options[:label] || email, "mailto: #{email}"
|
24
24
|
end
|
25
25
|
|
26
26
|
def link_to_function(content, function, opts={})
|
data/lib/useful/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kelredd-useful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Kelly Redding
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-06 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,8 +22,18 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "0"
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: tmail
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
25
35
|
description:
|
26
|
-
email:
|
36
|
+
email: kelly@kelredd.com
|
27
37
|
executables: []
|
28
38
|
|
29
39
|
extensions: []
|
@@ -33,19 +43,14 @@ extra_rdoc_files:
|
|
33
43
|
files:
|
34
44
|
- README.rdoc
|
35
45
|
- Rakefile
|
36
|
-
- lib/useful
|
37
|
-
- lib/useful/active_record_helpers
|
38
46
|
- lib/useful/active_record_helpers/mysql_migration_helpers.rb
|
39
47
|
- lib/useful/active_record_helpers.rb
|
40
|
-
- lib/useful/cap_tasks
|
41
48
|
- lib/useful/cap_tasks/cache.rb
|
42
49
|
- lib/useful/cap_tasks/gemsconfig.rb
|
43
50
|
- lib/useful/cap_tasks/globals.rb
|
44
51
|
- lib/useful/cap_tasks.rb
|
45
|
-
- lib/useful/rails_extensions
|
46
52
|
- lib/useful/rails_extensions/environment_tests.rb
|
47
53
|
- lib/useful/rails_extensions.rb
|
48
|
-
- lib/useful/ruby_extensions
|
49
54
|
- lib/useful/ruby_extensions/array.rb
|
50
55
|
- lib/useful/ruby_extensions/date.rb
|
51
56
|
- lib/useful/ruby_extensions/false_class.rb
|
@@ -56,7 +61,6 @@ files:
|
|
56
61
|
- lib/useful/ruby_extensions/string.rb
|
57
62
|
- lib/useful/ruby_extensions/true_class.rb
|
58
63
|
- lib/useful/ruby_extensions.rb
|
59
|
-
- lib/useful/ruby_extensions_from_rails
|
60
64
|
- lib/useful/ruby_extensions_from_rails/date.rb
|
61
65
|
- lib/useful/ruby_extensions_from_rails/duration.rb
|
62
66
|
- lib/useful/ruby_extensions_from_rails/fixnum.rb
|
@@ -66,9 +70,7 @@ files:
|
|
66
70
|
- lib/useful/ruby_extensions_from_rails/string.rb
|
67
71
|
- lib/useful/ruby_extensions_from_rails/time.rb
|
68
72
|
- lib/useful/ruby_extensions_from_rails.rb
|
69
|
-
- lib/useful/sinatra_helpers
|
70
73
|
- lib/useful/sinatra_helpers/environment_tests.rb
|
71
|
-
- lib/useful/sinatra_helpers/erb
|
72
74
|
- lib/useful/sinatra_helpers/erb/error_pages.rb
|
73
75
|
- lib/useful/sinatra_helpers/erb/forms.rb
|
74
76
|
- lib/useful/sinatra_helpers/erb/helpers.rb
|
@@ -76,7 +78,6 @@ files:
|
|
76
78
|
- lib/useful/sinatra_helpers/erb/partials.rb
|
77
79
|
- lib/useful/sinatra_helpers/erb/tags.rb
|
78
80
|
- lib/useful/sinatra_helpers/erb.rb
|
79
|
-
- lib/useful/sinatra_helpers/mailer
|
80
81
|
- lib/useful/sinatra_helpers/mailer/base.rb
|
81
82
|
- lib/useful/sinatra_helpers/mailer/exceptions.rb
|
82
83
|
- lib/useful/sinatra_helpers/mailer/tls.rb
|
@@ -84,11 +85,10 @@ files:
|
|
84
85
|
- lib/useful/sinatra_helpers.rb
|
85
86
|
- lib/useful/version.rb
|
86
87
|
- lib/useful.rb
|
87
|
-
- test/test_helper.rb
|
88
|
-
- test/unit
|
89
|
-
- test/unit/useful_test.rb
|
90
88
|
has_rdoc: true
|
91
|
-
homepage:
|
89
|
+
homepage: http://code.kelredd.com
|
90
|
+
licenses: []
|
91
|
+
|
92
92
|
post_install_message:
|
93
93
|
rdoc_options:
|
94
94
|
- --main
|
@@ -110,9 +110,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements: []
|
111
111
|
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.
|
113
|
+
rubygems_version: 1.3.5
|
114
114
|
signing_key:
|
115
|
-
specification_version:
|
115
|
+
specification_version: 3
|
116
116
|
summary: A collection of useful helpers for various ruby things.
|
117
117
|
test_files: []
|
118
118
|
|
data/test/test_helper.rb
DELETED
data/test/unit/useful_test.rb
DELETED