File: surface.rb

package info (click to toggle)
ruby-cairo 1.17.13-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,532 kB
  • sloc: ruby: 11,997; ansic: 10,183; sh: 48; makefile: 4
file content (13 lines) | stat: -rw-r--r-- 408 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
module Cairo
  class Surface
    class << self
      def supported?(type)
        type_components = type.to_s.split(/([A-Z][a-z\d]+)/).reject(&:empty?)
        snake_case_type_name = type_components.join("_").downcase
        supported_predicate = "#{snake_case_type_name}_supported?"
        return false unless respond_to?(supported_predicate)
        send(supported_predicate)
      end
    end
  end
end