File: utils.rb

package info (click to toggle)
ruby-mustache 1.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 480 kB
  • sloc: ruby: 2,267; makefile: 2
file content (31 lines) | stat: -rw-r--r-- 671 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Mustache
  module Utils
    class String
      def initialize string
        @string = string
      end

      def classify
        @string.split('/').map do |namespace|
          namespace.split(/[-_]/).map do |part|
            part[0] = part.chars.first.upcase
            part
          end.join
        end.join('::')
      end

      def underscore(view_namespace)
        @string
          .dup
          .split("#{view_namespace}::")
          .last
          .split('::')
          .map do |part|
            part[0] = part[0].downcase
            part.gsub(/[A-Z]/) { |s| "_" << s.downcase }
          end
          .join('/')
      end
    end
  end
end