sugar 0.0.31 → 0.0.32

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.31
1
+ 0.0.32
@@ -0,0 +1,110 @@
1
+ module Sugar
2
+ module Actionview
3
+ module Forms
4
+ # Put submit with proper text
5
+ def submit(form, title = nil)
6
+ title ||= t("#{form.object.class.name.tableize}.#{form.object.new_record? ? :new : :edit}.submit",
7
+ :default => Rails.env.production? ?
8
+ (form.object.new_record? ?
9
+ "#{t('krasivotokak.sugar.create', :default => 'Add')} #{form.object.class.human_name}" :
10
+ "#{t('krasivotokak.sugar.update', :default => 'Save')} #{form.object.class.human_name}") :
11
+ nil
12
+ )
13
+ form.submit(title)
14
+ end
15
+
16
+ # Build image submit
17
+ def image_to(src, name, options = {}, html_options = {})
18
+ html_options = html_options.stringify_keys
19
+ convert_boolean_attributes!(html_options, %w( disabled ))
20
+
21
+ method_tag = ''
22
+ if (method = html_options.delete('method')) && %w{put delete}.include?(method.to_s)
23
+ method_tag = tag('input', :type => 'hidden', :name => '_method', :value => method.to_s)
24
+ end
25
+
26
+ form_method = method.to_s == 'get' ? 'get' : 'post'
27
+
28
+ request_token_tag = ''
29
+ if form_method == 'post' && protect_against_forgery?
30
+ request_token_tag = tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => form_authenticity_token)
31
+ end
32
+
33
+ if confirm = html_options.delete("confirm")
34
+ html_options["onclick"] = "return #{confirm_javascript_function(confirm)};"
35
+ end
36
+
37
+ url = options.is_a?(String) ? options : self.url_for(options)
38
+
39
+ html_options.merge!("type" => "image", "src" => image_path(src), :alt => name, :title => name)
40
+
41
+ "<form method=\"#{form_method}\" action=\"#{escape_once url}\" class=\"button-to action\"><div class=\"b_input b_input-imagebutton\">" +
42
+ method_tag + tag("input", html_options) + request_token_tag + "</div></form>"
43
+ end
44
+
45
+ def button_to_delete(something, title = nil)
46
+ title ||= t('.delete',
47
+ :default => %(Delete #{(something.is_a?(Array) ? something.last : something).class.human_name}))
48
+ button_to(title,
49
+ polymorphic_path(something),
50
+ :class => 'delete action',
51
+ :method => :delete,
52
+ :confirm => t('sure', :default => 'Are you sure?'))
53
+ end
54
+
55
+ def image_button_to_delete(something)
56
+ image_to('icons/delete.png',
57
+ t('.delete', :default => 'Delete'),
58
+ polymorphic_path(something),
59
+ :class => 'delete action',
60
+ :method => :delete,
61
+ :confirm => t('sure'))
62
+ end
63
+
64
+ def link_to_edit(something)
65
+ text = t('.edit', :default => [:'krasivotokak.sugar.edit', 'Edit'])
66
+ link_to(image_tag('icons/edit.png',
67
+ :alt => text,
68
+ :title => text),
69
+ edit_polymorphic_path(something),
70
+ :class => 'ajax edit action')
71
+ end
72
+
73
+ def link_to_delete(something)
74
+ link_to(image_tag('icons/delete.png',
75
+ :alt => t('.delete', :default => 'Delete'),
76
+ :title => t('.delete', :default => 'Delete')),
77
+ polymorphic_path(something),
78
+ :class => 'ajax action delete')
79
+ end
80
+
81
+ def default_new_link_options
82
+ @default_new_link_options ||= {
83
+ :image => 'icons/add.png',
84
+ :alt => t('.add', :default => 'Add'),
85
+ :title => t('.add', :default => 'Add')
86
+ }
87
+ end
88
+
89
+ def link_to_new(options = {})
90
+ options = default_new_link_options.merge(options || {})
91
+ url = options.has_key?(:url) ? options.delete(:url) : {:action => 'new'}
92
+ link_to(image_tag(options.delete(:image),
93
+ options),
94
+ url, :class => 'action')
95
+ end
96
+
97
+ def period_field(form, field)
98
+ content_tag :div, :class => 'b_input b_input-period' do
99
+ returning '' do |content|
100
+ content << form.label(:"#{field}_min")
101
+ content << form.text_field(:"#{field}_min")
102
+ content << form.label(:"#{field}_max", '—', :class => 'period')
103
+ content << form.text_field(:"#{field}_max")
104
+ end
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,60 @@
1
+ module Sugar
2
+ module Actionview
3
+ module Structure
4
+ VIEW_PLACEHOLDERS = {
5
+ 'create' => 'new',
6
+ 'update' => 'edit'
7
+ }
8
+
9
+ def view_name
10
+ action_name = controller.action_name
11
+ VIEW_PLACEHOLDERS[action_name] || action_name
12
+ end
13
+
14
+ def default_page_title
15
+ text = case action_name
16
+ when 'index'
17
+ controller_name.camelize
18
+ when 'new', 'create'
19
+ "#{t('krasivotokak.sugar.new', :default => 'New')} #{controller_name.classify.constantize.human_name}"
20
+ when 'edit', 'update'
21
+ "#{t('krasivotokak.sugar.edit', :default => 'Editing')} #{controller_name.classify.constantize.human_name}"
22
+ else
23
+ t("#{controller_name}.#{view_name}.title")
24
+ end
25
+ %(<span class="trasnlation_missing">#{text}</span>)
26
+ end
27
+
28
+ # Return page title for use in layout
29
+ def page_title(title = nil)
30
+ @page_title = if title
31
+ title
32
+ else
33
+ @page_title || t("#{controller_name}.#{view_name}.title", :default => Rails.env.production? ? default_page_title : nil)
34
+ end
35
+ end
36
+
37
+ def html_page_title(default = false, separator = ' | ')
38
+ default ||= t('application.title')
39
+ [page_title, default].compat.join(separator)
40
+ end
41
+
42
+ # Build simple navigation list
43
+ def navigation_list(menu)
44
+ returning '' do |result|
45
+ menu.each do |item|
46
+ path = "/#{item}"
47
+ uri = request.request_uri
48
+ title = t("#{item}.index.title", :default => item.to_s.camelize)
49
+ result << content_tag(:li, :class => uri.starts_with?(path) ? 'selected' : nil) do
50
+ link_to_unless_current(title, path) {
51
+ content_tag(:strong, title)
52
+ }
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
60
+ end
@@ -1,162 +1,10 @@
1
+ require 'sugar/actionview/forms'
2
+ require 'sugar/actionview/structure'
3
+
1
4
  module Sugar
2
5
  module Actionview
3
- VIEW_PLACEHOLDERS = {
4
- 'create' => 'new',
5
- 'update' => 'edit'
6
- }
7
-
8
- def view_name
9
- action_name = controller.action_name
10
- VIEW_PLACEHOLDERS[action_name] || action_name
11
- end
12
-
13
- def default_page_title
14
- text = case action_name
15
- when 'index'
16
- controller_name.camelize
17
- when 'new', 'create'
18
- "#{t('krasivotokak.sugar.new', :default => 'New')} #{controller_name.classify.constantize.human_name}"
19
- when 'edit', 'update'
20
- "#{t('krasivotokak.sugar.edit', :default => 'Editing')} #{controller_name.classify.constantize.human_name}"
21
- else
22
- t("#{controller_name}.#{view_name}.title")
23
- end
24
- %(<span class="trasnlation_missing">#{text}</span>)
25
- end
26
-
27
- # Return page title for use in layout
28
- def page_title(title = nil)
29
- @page_title = if title
30
- title
31
- else
32
- @page_title || t("#{controller_name}.#{view_name}.title", :default => Rails.env.production? ? default_page_title : nil)
33
- end
34
- end
35
-
36
- def html_page_title(default = false, separator = ' | ')
37
- default ||= t('application.title')
38
- [page_title, default].compat.join(separator)
39
- end
40
-
41
- # Put submit with proper text
42
- def submit(form, title = nil)
43
- title ||= t("#{form.object.class.name.tableize}.#{form.object.new_record? ? :new : :edit}.submit",
44
- :default => Rails.env.production? ?
45
- (form.object.new_record? ?
46
- "#{t('krasivotokak.sugar.create', :default => 'Add')} #{form.object.class.human_name}" :
47
- "#{t('krasivotokak.sugar.update', :default => 'Save')} #{form.object.class.human_name}") :
48
- nil
49
- )
50
- form.submit(title)
51
- end
52
-
53
- # Build simple navigation list
54
- def navigation_list(menu)
55
- returning '' do |result|
56
- menu.each do |item|
57
- path = "/#{item}"
58
- uri = request.request_uri
59
- title = t("#{item}.index.title", :default => item.to_s.camelize)
60
- result << content_tag(:li, :class => uri.starts_with?(path) ? 'selected' : nil) do
61
- link_to_unless_current(title, path) {
62
- content_tag(:strong, title)
63
- }
64
- end
65
- end
66
- end
67
- end
68
-
69
- # Build image submit
70
- def image_to(src, name, options = {}, html_options = {})
71
- html_options = html_options.stringify_keys
72
- convert_boolean_attributes!(html_options, %w( disabled ))
73
-
74
- method_tag = ''
75
- if (method = html_options.delete('method')) && %w{put delete}.include?(method.to_s)
76
- method_tag = tag('input', :type => 'hidden', :name => '_method', :value => method.to_s)
77
- end
78
-
79
- form_method = method.to_s == 'get' ? 'get' : 'post'
80
-
81
- request_token_tag = ''
82
- if form_method == 'post' && protect_against_forgery?
83
- request_token_tag = tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => form_authenticity_token)
84
- end
85
-
86
- if confirm = html_options.delete("confirm")
87
- html_options["onclick"] = "return #{confirm_javascript_function(confirm)};"
88
- end
89
-
90
- url = options.is_a?(String) ? options : self.url_for(options)
91
-
92
- html_options.merge!("type" => "image", "src" => image_path(src), :alt => name, :title => name)
93
-
94
- "<form method=\"#{form_method}\" action=\"#{escape_once url}\" class=\"button-to action\"><div class=\"b_input b_input-imagebutton\">" +
95
- method_tag + tag("input", html_options) + request_token_tag + "</div></form>"
96
- end
97
-
98
- def link_to_edit(something)
99
- text = t('.edit', :default => [:'krasivotokak.sugar.edit', 'Edit'])
100
- link_to(image_tag('icons/edit.png',
101
- :alt => text,
102
- :title => text),
103
- edit_polymorphic_path(something),
104
- :class => 'ajax edit action')
105
- end
106
-
107
- def button_to_delete(something, title = nil)
108
- title ||= t('.delete',
109
- :default => %(Delete #{(something.is_a?(Array) ? something.last : something).class.human_name}))
110
- button_to(title,
111
- polymorphic_path(something),
112
- :class => 'delete action',
113
- :method => :delete,
114
- :confirm => t('sure', :default => 'Are you sure?'))
115
- end
116
-
117
- def image_button_to_delete(something)
118
- image_to('icons/delete.png',
119
- t('.delete', :default => 'Delete'),
120
- polymorphic_path(something),
121
- :class => 'delete action',
122
- :method => :delete,
123
- :confirm => t('sure'))
124
- end
125
-
126
- def link_to_delete(something)
127
- link_to(image_tag('icons/delete.png',
128
- :alt => t('.delete', :default => 'Delete'),
129
- :title => t('.delete', :default => 'Delete')),
130
- polymorphic_path(something),
131
- :class => 'ajax action delete')
132
- end
133
-
134
- def default_new_link_options
135
- @default_new_link_options ||= {
136
- :image => 'icons/add.png',
137
- :alt => t('.add', :default => 'Add'),
138
- :title => t('.add', :default => 'Add')
139
- }
140
- end
141
-
142
- def link_to_new(options = {})
143
- options = default_new_link_options.merge(options || {})
144
- url = options.has_key?(:url) ? options.delete(:url) : {:action => 'new'}
145
- link_to(image_tag(options.delete(:image),
146
- options),
147
- url, :class => 'action')
148
- end
149
-
150
- def period_field(form, field)
151
- content_tag :div, :class => 'b_input b_input-period' do
152
- returning '' do |content|
153
- content << form.label(:"#{field}_min")
154
- content << form.text_field(:"#{field}_min")
155
- content << form.label(:"#{field}_max", '—', :class => 'period')
156
- content << form.text_field(:"#{field}_max")
157
- end
158
- end
159
- end
6
+ include Sugar::Actionview::Structure
7
+ include Sugar::Actionview::Forms
160
8
 
161
9
  def human(*args)
162
10
  if args.size == 2
data/sugar.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sugar}
8
- s.version = "0.0.31"
8
+ s.version = "0.0.32"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alexander Semyonov"]
12
- s.date = %q{2009-09-26}
12
+ s.date = %q{2009-10-11}
13
13
  s.email = %q{rotuka@tokak.ru}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -26,6 +26,8 @@ Gem::Specification.new do |s|
26
26
  "lib/sugar.rb",
27
27
  "lib/sugar/actioncontroller.rb",
28
28
  "lib/sugar/actionview.rb",
29
+ "lib/sugar/actionview/forms.rb",
30
+ "lib/sugar/actionview/structure.rb",
29
31
  "lib/sugar/activerecord.rb",
30
32
  "lib/sugar/locales/en.yml",
31
33
  "lib/sugar/locales/ru.yml",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sugar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.31
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Semyonov
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-26 00:00:00 +04:00
12
+ date: 2009-10-11 00:00:00 +04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -33,6 +33,8 @@ files:
33
33
  - lib/sugar.rb
34
34
  - lib/sugar/actioncontroller.rb
35
35
  - lib/sugar/actionview.rb
36
+ - lib/sugar/actionview/forms.rb
37
+ - lib/sugar/actionview/structure.rb
36
38
  - lib/sugar/activerecord.rb
37
39
  - lib/sugar/locales/en.yml
38
40
  - lib/sugar/locales/ru.yml