converted to unix-style eol
[www-register-wizard.git] / helpers / inflector_helper.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 /**
3  * CodeIgniter
4  *
5  * An open source application development framework for PHP 4.3.2 or newer
6  *
7  * @package             CodeIgniter
8  * @author              ExpressionEngine Dev Team
9  * @copyright   Copyright (c) 2008, EllisLab, Inc.
10  * @license             http://codeigniter.com/user_guide/license.html
11  * @link                http://codeigniter.com
12  * @since               Version 1.0
13  * @filesource
14  */
15
16 // ------------------------------------------------------------------------
17
18 /**
19  * CodeIgniter Inflector Helpers
20  *
21  * @package             CodeIgniter
22  * @subpackage  Helpers
23  * @category    Helpers
24  * @author              ExpressionEngine Dev Team
25  * @link                http://codeigniter.com/user_guide/helpers/directory_helper.html
26  */
27
28
29 // --------------------------------------------------------------------
30
31 /**
32  * Singular
33  *
34  * Takes a plural word and makes it singular
35  *
36  * @access      public
37  * @param       string
38  * @return      str
39  */     
40 if ( ! function_exists('singular'))
41 {       
42         function singular($str)
43         {
44                 $str = strtolower(trim($str));
45                 $end = substr($str, -3);
46         
47                 if ($end == 'ies')
48                 {
49                         $str = substr($str, 0, strlen($str)-3).'y';
50                 }
51                 elseif ($end == 'ses')
52                 {
53                         $str = substr($str, 0, strlen($str)-2);
54                 }
55                 else
56                 {
57                         $end = substr($str, -1);
58                 
59                         if ($end == 's')
60                         {
61                                 $str = substr($str, 0, strlen($str)-1);
62                         }
63                 }
64         
65                 return $str;
66         }
67 }
68
69 // --------------------------------------------------------------------
70
71 /**
72  * Plural
73  *
74  * Takes a singular word and makes it plural
75  *
76  * @access      public
77  * @param       string
78  * @param       bool
79  * @return      str
80  */     
81 if ( ! function_exists('plural'))
82 {       
83         function plural($str, $force = FALSE)
84         {
85                 $str = strtolower(trim($str));
86                 $end = substr($str, -1);
87
88                 if ($end == 'y')
89                 {
90                         $str = substr($str, 0, strlen($str)-1).'ies';
91                 }
92                 elseif ($end == 's')
93                 {
94                         if ($force == TRUE)
95                         {
96                                 $str .= 'es';
97                         }
98                 }
99                 else
100                 {
101                         $str .= 's';
102                 }
103
104                 return $str;
105         }
106 }
107
108 // --------------------------------------------------------------------
109
110 /**
111  * Camelize
112  *
113  * Takes multiple words separated by spaces or underscores and camelizes them
114  *
115  * @access      public
116  * @param       string
117  * @return      str
118  */     
119 if ( ! function_exists('camelize'))
120 {       
121         function camelize($str)
122         {               
123                 $str = 'x'.strtolower(trim($str));
124                 $str = ucwords(preg_replace('/[\s_]+/', ' ', $str));
125                 return substr(str_replace(' ', '', $str), 1);
126         }
127 }
128
129 // --------------------------------------------------------------------
130
131 /**
132  * Underscore
133  *
134  * Takes multiple words separated by spaces and underscores them
135  *
136  * @access      public
137  * @param       string
138  * @return      str
139  */     
140 if ( ! function_exists('underscore'))
141 {
142         function underscore($str)
143         {
144                 return preg_replace('/[\s]+/', '_', strtolower(trim($str)));
145         }
146 }
147
148 // --------------------------------------------------------------------
149
150 /**
151  * Humanize
152  *
153  * Takes multiple words separated by underscores and changes them to spaces
154  *
155  * @access      public
156  * @param       string
157  * @return      str
158  */     
159 if ( ! function_exists('humanize'))
160 {       
161         function humanize($str)
162         {
163                 return ucwords(preg_replace('/[_]+/', ' ', strtolower(trim($str))));
164         }
165 }
166         
167
168 /* End of file inflector_helper.php */
169 /* Location: ./system/helpers/inflector_helper.php */