preciousss 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,61 +1,61 @@
1
- module Preciousss
2
- module Controllers
3
- module Helpers
4
- BOTS_REGEXP = /Googlebot|facebookexternalhit/i.freeze
5
-
6
- def self.included(base) # :nodoc:
7
- base.extend ClassMethods
8
- base.send :include, InstanceMethods
9
- base.class_eval do
10
- helper_method :errors_for, :is_bot?
11
- end
12
- end
13
-
14
- module ClassMethods
15
- end
16
-
17
- module InstanceMethods
18
-
19
- def is_bot?
20
- @is_bot ||= request.user_agent.to_s =~ BOTS_REGEXP
21
- end
22
-
23
- def errors_for(*params)
24
- options = params.extract_options!.symbolize_keys
25
- options[:on] = [*options[:on]].compact
26
- options[:except_on] = [*options[:except_on]].compact
27
- objects = [*params].flatten
28
- object_errors = []
29
-
30
- objects.each do |object|
31
- errors = nil
32
- object = instance_variable_get("@#{object}") if object.is_a?(Symbol)
33
- object.errors.each do |attr, msg|
34
- (errors ||= ActiveModel::Errors.new(object)).add(attr, msg) if (options[:on].blank? || options[:on].include?(attr.to_sym)) && (options[:except_on].blank? || !options[:except_on].include?(attr.to_sym))
35
- end
36
- object_errors << errors if errors
37
- end
38
-
39
- unless object_errors.empty?
40
- options[:class] ||= 'errors'
41
- options[:id] ||= objects.map{|object| object.class.name.underscore}.join('-') + '-errors'
42
- options[:title] = I18n.t('activerecord.errors.template.header', :model => objects.map{|object| object.class.human}.to_sentence, :count => object_errors.size) if options[:title] === true
43
-
44
- I18n.with_options :locale => options[:locale], :scope => [:activerecord, :errors, :template] do |locale|
45
- messages = object_errors.sum{|errors| errors.full_messages.map{|msg| '<li>' + ERB::Util.html_escape(msg) + '</li>'}}.join.html_safe
46
- contents = ''
47
- contents << '<div class="title">' + options[:title] + '</div>' unless options[:title].blank?
48
- contents << '<ul class="messages">' + messages + '</ul>'
49
-
50
- "<div id=\"#{options[:id]}\" class=\"#{options[:class]}\">#{contents}</div>".html_safe
51
- end
52
- else
53
- ''
54
- end
55
- end
56
-
57
- end
58
-
59
- end
60
- end
1
+ module Preciousss
2
+ module Controllers
3
+ module Helpers
4
+ BOTS_REGEXP = /Googlebot|facebookexternalhit/i.freeze
5
+
6
+ def self.included(base) # :nodoc:
7
+ base.extend ClassMethods
8
+ base.send :include, InstanceMethods
9
+ base.class_eval do
10
+ helper_method :errors_for, :is_bot?
11
+ end
12
+ end
13
+
14
+ module ClassMethods
15
+ end
16
+
17
+ module InstanceMethods
18
+
19
+ def is_bot?
20
+ @is_bot ||= request.user_agent.to_s =~ BOTS_REGEXP
21
+ end
22
+
23
+ def errors_for(*params)
24
+ options = params.extract_options!.symbolize_keys
25
+ options[:on] = [*options[:on]].compact
26
+ options[:except_on] = [*options[:except_on]].compact
27
+ objects = [*params].flatten
28
+ object_errors = []
29
+
30
+ objects.each do |object|
31
+ errors = nil
32
+ object = instance_variable_get("@#{object}") if object.is_a?(Symbol)
33
+ object.errors.each do |attr, msg|
34
+ (errors ||= ActiveModel::Errors.new(object)).add(attr, msg) if (options[:on].blank? || options[:on].include?(attr.to_sym)) && (options[:except_on].blank? || !options[:except_on].include?(attr.to_sym))
35
+ end
36
+ object_errors << errors if errors
37
+ end
38
+
39
+ unless object_errors.empty?
40
+ options[:class] ||= 'errors'
41
+ options[:id] ||= objects.map{|object| object.class.name.underscore}.join('-') + '-errors'
42
+ options[:title] = I18n.t('activerecord.errors.template.header', :model => objects.map{|object| object.class.human}.to_sentence, :count => object_errors.size) if options[:title] === true
43
+
44
+ I18n.with_options :locale => options[:locale], :scope => [:activerecord, :errors, :template] do |locale|
45
+ messages = object_errors.sum{|errors| errors.full_messages.map{|msg| '<li>' + ERB::Util.html_escape(msg) + '</li>'}}.join.html_safe
46
+ contents = ''
47
+ contents << '<p class="title">' + options[:title] + '</p>' unless options[:title].blank?
48
+ contents << '<ul class="messages">' + messages + '</ul>'
49
+
50
+ "<div id=\"#{options[:id]}\" class=\"#{options[:class]}\">#{contents}</div>".html_safe
51
+ end
52
+ else
53
+ ''
54
+ end
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+ end
61
61
  end
@@ -1,3 +1,3 @@
1
1
  module Preciousss
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
@@ -1,24 +1,24 @@
1
- module Preciousss
2
- module ViewHelpers
3
- module ActionView
4
-
5
- def body_class
6
- qualified_controller_name = controller.controller_path.gsub('/', '-')
7
- "#{qualified_controller_name} #{controller.action_name} #{qualified_controller_name}-#{controller.action_name} #{I18n.locale}"
8
- end
9
-
10
- def body_id
11
- "#{controller.controller_path.gsub('/', '-')}-body"
12
- end
13
-
14
- def flash_messages
15
- return if flash.blank?
16
-
17
- content_tag(:div, :class => "flash-messages #{flash.keys.map{|key| "with-#{key}"}.join(' ')}") do
18
- flash.map{|key, value| content_tag(:p, value, :class => "flash-#{key}")}.join.html_safe
19
- end
20
- end
21
-
22
- end
23
- end
1
+ module Preciousss
2
+ module ViewHelpers
3
+ module ActionView
4
+
5
+ def body_class
6
+ qualified_controller_name = controller.controller_path.gsub('/', '-')
7
+ "#{qualified_controller_name} #{controller.action_name} #{qualified_controller_name}-#{controller.action_name} #{I18n.locale}"
8
+ end
9
+
10
+ def body_id
11
+ "#{controller.controller_path.gsub('/', '-')}-body"
12
+ end
13
+
14
+ def flash_messages
15
+ return if flash.blank?
16
+
17
+ content_tag(:div, :class => "flash-messages #{flash.keys.map{|key| "with-#{key}"}.join(' ')}") do
18
+ flash.map{|key, value| content_tag(:p, content_tag(:span, value), :class => "flash-#{key}")}.join.html_safe
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
24
  end
metadata CHANGED
@@ -1,24 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: preciousss
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease: !!null
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - sodercober
9
- autorequire: !!null
14
+ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-03-02 00:00:00.000000000 +00:00
13
- default_executable: !!null
17
+
18
+ date: 2011-03-04 00:00:00 +00:00
19
+ default_executable:
14
20
  dependencies: []
21
+
15
22
  description: Several helpers for Ruby on Rails 3
16
- email:
23
+ email:
17
24
  - sodercober@gmail.com
18
25
  executables: []
26
+
19
27
  extensions: []
28
+
20
29
  extra_rdoc_files: []
21
- files:
30
+
31
+ files:
22
32
  - .gitignore
23
33
  - Gemfile
24
34
  - README.md
@@ -31,26 +41,36 @@ files:
31
41
  has_rdoc: true
32
42
  homepage: https://github.com/sodercober/preciousss
33
43
  licenses: []
34
- post_install_message: !!null
44
+
45
+ post_install_message:
35
46
  rdoc_options: []
36
- require_paths:
47
+
48
+ require_paths:
37
49
  - lib
38
- required_ruby_version: !ruby/object:Gem::Requirement
50
+ required_ruby_version: !ruby/object:Gem::Requirement
39
51
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
60
  none: false
46
- requirements:
47
- - - ! '>='
48
- - !ruby/object:Gem::Version
49
- version: '0'
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
50
68
  requirements: []
69
+
51
70
  rubyforge_project: preciousss
52
- rubygems_version: 1.5.0
53
- signing_key: !!null
71
+ rubygems_version: 1.6.1
72
+ signing_key:
54
73
  specification_version: 3
55
74
  summary: Several helpers for Ruby on Rails 3
56
75
  test_files: []
76
+