mark_facets 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010 markbates
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,3 @@
1
+ README
2
+ ========================================================================
3
+ mark_facets was developed by: markbates
@@ -0,0 +1,15 @@
1
+ module Rails
2
+
3
+ class << self
4
+
5
+ def v3?
6
+ Rails.version.match(/^3\./)
7
+ end
8
+
9
+ def v2?
10
+ Rails.version.match(/^2\./)
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -0,0 +1,38 @@
1
+ if defined?(Authlogic)
2
+
3
+ if Rails.v3?
4
+
5
+ def login(user = @user)
6
+ @current_user = user
7
+ activate_authlogic
8
+ sess = UserSession.create(user)
9
+ UserSession.stub!(:find).and_return(sess)
10
+ end
11
+
12
+ def logout
13
+ @current_user = nil
14
+ UserSession.stub!(:find).and_return(nil)
15
+ end
16
+
17
+ end # Rails 3
18
+
19
+ if Rails.v2?
20
+
21
+ def login(user = @user)
22
+ @current_user = user
23
+ UserSession.create(user)
24
+ controller.stub!(:current_user).and_return(user)
25
+ end
26
+
27
+ def logout
28
+ @current_user = nil
29
+ controller.stub!(:current_user).and_return(nil)
30
+ end
31
+
32
+ end # Rails 2
33
+
34
+ def current_user
35
+ @current_user
36
+ end
37
+
38
+ end
@@ -0,0 +1,3 @@
1
+ def decode_json(json)
2
+ ActiveSupport::JSON.decode(json).to_mash
3
+ end
@@ -0,0 +1,3 @@
1
+ def delivered_emails
2
+ ActionMailer::Base.deliveries
3
+ end
@@ -0,0 +1,3 @@
1
+ def enable_ssl
2
+ request.env['HTTPS'] = 'on'
3
+ end
@@ -0,0 +1,3 @@
1
+ %w{decode_json delivered_emails enable_ssl authlogic rspec/all}.each do |f|
2
+ File.expand_path(File.join(File.dirname(__FILE__), f))
3
+ end
@@ -0,0 +1,5 @@
1
+ if defined?(RSpec) || defined?(Spec)
2
+ %w{should/render_404 should/have_same_elements}.each do |f|
3
+ File.expand_path(File.join(File.dirname(__FILE__), f))
4
+ end
5
+ end
@@ -0,0 +1,22 @@
1
+ if Rails.v3?
2
+
3
+ end
4
+
5
+ if Rails.v2?
6
+ def have_same_elements(expected)
7
+ simple_matcher("equal #{expected.inspect}") do |given, matcher|
8
+ matcher.failure_message = "expected #{given.inspect} to include the same elements as #{expected.inspect}"
9
+ matcher.negative_failure_message = "expected #{given.inspect} not to include the same elements as #{expected.inspect}"
10
+ unless given.size == expected.size
11
+ false
12
+ else
13
+ ret = true
14
+ given.each do |v|
15
+ ret = expected.include?(v)
16
+ break if !ret
17
+ end
18
+ ret
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ if Rails.v3?
2
+ Rspec::Matchers.define :render_404 do
3
+ match do |response|
4
+ response.code.should == '404'
5
+ end
6
+ end
7
+ end
8
+
9
+ if Rails.v2?
10
+ def render_404
11
+ simple_matcher("render a 404 page") do |given, matcher|
12
+ matcher.failure_message = "expected #{given.inspect} to render a 404 page"
13
+ matcher.negative_failure_message = "expected #{given.inspect} not to render a 404 page"
14
+ given.code.should == '404'
15
+ given.should render_template('public/404')
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ require 'bigdecimal'
2
+ class BigDecimal
3
+
4
+ def inspect
5
+ self.to_s('F')
6
+ end
7
+
8
+ end
@@ -0,0 +1,14 @@
1
+ require 'hashie'
2
+ class Hash
3
+
4
+ def to_mash
5
+ h = self.dup
6
+ h.each do |k, v|
7
+ if v.is_a?(Hash) && !v.is_a?(Hashie::Mash)
8
+ h[k] = v.to_mash
9
+ end
10
+ end
11
+ Hashie::Mash.new(h)
12
+ end
13
+
14
+ end
@@ -0,0 +1,19 @@
1
+ module Math
2
+
3
+ def self.log2(x)
4
+ self.logBase(x, 2.0)
5
+ end
6
+
7
+ def self.logBase(x, base)
8
+ self.log(x) / self.log(base)
9
+ end
10
+
11
+ def self.min(a, b)
12
+ a < b ? a : b
13
+ end
14
+
15
+ def self.max(a, b)
16
+ a > b ? a : b
17
+ end
18
+
19
+ end
@@ -0,0 +1,15 @@
1
+ module Ruby
2
+
3
+ class << self
4
+
5
+ def v19?
6
+ RUBY_VERSION.match(/^1\.9/)
7
+ end
8
+
9
+ def v18?
10
+ RUBY_VERSION.match(/^1\.8/)
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -0,0 +1,42 @@
1
+ require 'digest/md5' if Ruby.v18?
2
+ class String
3
+
4
+ def md5_hash
5
+ Digest::MD5.hexdigest(self).to_s
6
+ end
7
+
8
+ def hexdigest
9
+ Digest::SHA1.hexdigest(self)
10
+ end
11
+
12
+ def hexdigest!
13
+ self.replace(self.hexdigest)
14
+ end
15
+
16
+ def to_bool
17
+ case self.downcase
18
+ when 'n', 'no', 'f', 'false', 'nay'
19
+ return false
20
+ end
21
+ return true
22
+ end
23
+
24
+ alias_method :to_boolean, :to_bool
25
+
26
+ class << self
27
+
28
+ RANDOM_CHARS = [('A'..'H').to_a, ('J'..'N').to_a, ('P'..'T').to_a, ('W'..'Z').to_a, ('3'..'9').to_a].flatten
29
+
30
+ def random(size = 20)
31
+ newpass = ''
32
+ 1.upto(size) { |i| newpass << RANDOM_CHARS[rand(RANDOM_CHARS.size-1)] }
33
+ return newpass.upcase
34
+ end
35
+
36
+ def cast_from(object)
37
+ object.to_s
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,20 @@
1
+ # Dir.glob(File.join(File.dirname(__FILE__), 'mark_facets', '**/*.rb')).each do |f|
2
+ # require File.expand_path(f)
3
+ # end
4
+
5
+ path = File.join(File.dirname(__FILE__), 'mark_facets')
6
+ ruby_path = File.join(path, 'ruby')
7
+ rails_path = File.join(path, 'rails')
8
+
9
+ %w{ruby string hash big_decimal math}.each do |f|
10
+ p = File.expand_path(File.join(ruby_path, f))
11
+ puts p
12
+ require p
13
+ end
14
+
15
+ if defined?(Rails)
16
+ puts "load Rails stuff!"
17
+ %w{rails}.each do |f|
18
+ require File.expand_path(File.join(rails_path, f))
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mark_facets
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - markbates
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-07-14 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: hashie
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description: "mark_facets was developed by: markbates"
36
+ email: mark@markbates.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ - LICENSE
44
+ files:
45
+ - lib/mark_facets/rails/rails.rb
46
+ - lib/mark_facets/rails/test/authlogic.rb
47
+ - lib/mark_facets/rails/test/decode_json.rb
48
+ - lib/mark_facets/rails/test/delivered_emails.rb
49
+ - lib/mark_facets/rails/test/enable_ssl.rb
50
+ - lib/mark_facets/rails/test/helpers.rb
51
+ - lib/mark_facets/rails/test/rspec/all.rb
52
+ - lib/mark_facets/rails/test/rspec/should/have_same_elements.rb
53
+ - lib/mark_facets/rails/test/rspec/should/render_404.rb
54
+ - lib/mark_facets/ruby/big_decimal.rb
55
+ - lib/mark_facets/ruby/hash.rb
56
+ - lib/mark_facets/ruby/math.rb
57
+ - lib/mark_facets/ruby/ruby.rb
58
+ - lib/mark_facets/ruby/string.rb
59
+ - lib/mark_facets.rb
60
+ - README
61
+ - LICENSE
62
+ has_rdoc: true
63
+ homepage: http://www.metabates.com
64
+ licenses: []
65
+
66
+ post_install_message:
67
+ rdoc_options: []
68
+
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ requirements: []
90
+
91
+ rubyforge_project: magrathea
92
+ rubygems_version: 1.3.7
93
+ signing_key:
94
+ specification_version: 3
95
+ summary: mark_facets
96
+ test_files: []
97
+