Module: TinyAdmin::Utils
- Included in:
- Actions::BasicAction, BasicApp, BasicApp, Field, Store, Views::BasicLayout
- Defined in:
- lib/tiny_admin/utils.rb
Instance Method Summary collapse
- #humanize(string) ⇒ Object
- #params_to_s(params) ⇒ Object
- #prepare_page(page_class, slug: nil, attributes: nil, options: nil, params: nil) ⇒ Object
- #to_class(klass) ⇒ Object
Instance Method Details
#humanize(string) ⇒ Object
44 45 46 47 48 |
# File 'lib/tiny_admin/utils.rb', line 44 def humanize(string) return "" unless string string.respond_to?(:humanize) ? string.humanize : string.tr("_", " ").capitalize end |
#params_to_s(params) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/tiny_admin/utils.rb', line 7 def params_to_s(params) list = params.each_with_object([]) do |(param, value), result| if value.is_a?(Hash) values = value.map { |key, val| "#{CGI.escape(param.to_s)}[#{CGI.escape(key.to_s)}]=#{CGI.escape(val.to_s)}" } result.concat(values) else result.push("#{CGI.escape(param.to_s)}=#{CGI.escape(value.to_s)}") end end list.join("&") end |
#prepare_page(page_class, slug: nil, attributes: nil, options: nil, params: nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/tiny_admin/utils.rb', line 19 def prepare_page(page_class, slug: nil, attributes: nil, options: nil, params: nil) page_class.new.tap do |page| page. = page.head_component = TinyAdmin.settings.components[:head]&.new page.flash_component = TinyAdmin.settings.components[:flash]&.new page. = TinyAdmin.settings.components[:navbar]&.new page.&.update_attributes( current_slug: slug, root_path: TinyAdmin.settings.root_path, root_title: TinyAdmin.settings.root[:title], items: &.include?(:no_menu) ? [] : TinyAdmin.settings.store&. ) attrs = attributes || {} attrs[:params] = params if params attrs[:widgets] = attrs[:widgets].map { to_class(_1) } if attrs[:widgets] page.update_attributes(attrs) unless attrs.empty? yield(page) if block_given? page.setup if page.respond_to?(:setup) end end |
#to_class(klass) ⇒ Object
40 41 42 |
# File 'lib/tiny_admin/utils.rb', line 40 def to_class(klass) klass.is_a?(String) ? Object.const_get(klass) : klass end |