Sha256: dc70824352be6cfba8a73d67524df54279c84f847c539c42898562434c51fb6f

Contents?: true

Size: 954 Bytes

Versions: 12

Compression:

Stored size: 954 Bytes

Contents

format :html do
  view :views_by_format do
    accordion do
      views_by_format_hash.each_with_object([]) do |(format, views), array|
        context = format.to_name.key
        array << accordion_item(format, body: list_group(views), context: context)
      end
    end
  end

  view :views_by_name do
    views = methods.map do |method|
      Regexp.last_match(1) if method.to_s.match?(/^_view_(.+)$/)
    end.compact.sort
    list_group views
  end

  private

  def views_by_format_hash
    self.class.ancestors.each_with_object({}) do |format_class, hash|
      next unless (views = views_for_format_class format_class).present?

      format_class.name =~ /^Card(::Set)?::(.+?)$/ #::(\w+Format)
      hash[Regexp.last_match(2)] = views
    end
  end

  def views_for_format_class format_class
    format_class.instance_methods.map do |method|
      next unless method.to_s =~ /^_view_(.+)$/

      Regexp.last_match(1)
    end.compact
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
card-mod-monkey-0.18.1 set/all/view_viz.rb
card-mod-monkey-0.18.0 set/all/view_viz.rb
card-mod-monkey-0.17.0 set/all/view_viz.rb
card-mod-monkey-0.16.0 set/all/view_viz.rb
card-mod-monkey-0.15.6 set/all/view_viz.rb
card-mod-monkey-0.15.5 set/all/view_viz.rb
card-mod-monkey-0.15.4 set/all/view_viz.rb
card-mod-monkey-0.15.3 set/all/view_viz.rb
card-mod-monkey-0.15.2.pre1 set/all/view_viz.rb
card-mod-monkey-0.15.1.1 set/all/view_viz.rb
card-mod-monkey-0.15.1 set/all/view_viz.rb
card-mod-monkey-0.15.0 set/all/view_viz.rb