alt159-rails 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ Lagniappe = ->
2
+
3
+ Lagniappe:: =
4
+
5
+ extendPrototypes: ->
6
+ addFunction = (obj, func, key) ->
7
+ obj::[key] = ->
8
+ func.apply
9
+ value: this
10
+ , arguments
11
+ unnicer = (obj, to_add) ->
12
+ for key of to_add::
13
+ addFunction obj, to_add::[key], key unless obj::[key]
14
+ unnicer String, Stringy
15
+ unnicer Number, Numbery
16
+
17
+ #Adds ALT159 functions to this Instance of an object
18
+ chain: (value, type) ->
19
+ f().extendPrototypes()
20
+ value
21
+
22
+ reloadStylesheets: ->
23
+ queryString = "?reload=" + new Date().getTime()
24
+ links = document.getElementsByTagName("link")
25
+ i = 0
26
+ while i < links.length
27
+ links[i].href = links[i].href.replace(/\?.*|$/, queryString) if links[i] and links[i].ref is "stylesheet"
28
+ i++
29
+ true
@@ -0,0 +1,11 @@
1
+ Numbery = (val) ->
2
+ @value = val
3
+
4
+ Numbery:: =
5
+
6
+ isEven: ->
7
+ @value % 2 is 0
8
+
9
+ isOdd: ->
10
+ @value % 2 is 1
11
+
@@ -0,0 +1,181 @@
1
+ rules = {
2
+ plural : []
3
+ singular : []
4
+ irregular : []
5
+ uncountable : []
6
+ }
7
+
8
+ inflect = {
9
+ plural : (matcher, suffix )-> rules.plural.push( [matcher, suffix] )
10
+ singular : (matcher, suffix )-> rules.singular.push( [matcher, suffix] )
11
+ irregular : (matcher, suffix )-> rules.irregular.push( [matcher, suffix] )
12
+ uncountable : (words) -> rules.uncountable = words
13
+ }
14
+
15
+ # stollen shamelessly from rails source
16
+ inflect.plural(/$/, 's')
17
+ inflect.plural(/s$/i, 's')
18
+ inflect.plural(/^(ax|test)is$/i, '$1es')
19
+ inflect.plural(/(octop|vir)us$/i, '$1i')
20
+ inflect.plural(/(octop|vir)i$/i, '$1i')
21
+ inflect.plural(/(alias|status)$/i, '$1es')
22
+ inflect.plural(/(bu)s$/i, '$1ses')
23
+ inflect.plural(/(buffal|tomat)o$/i, '$1oes')
24
+ inflect.plural(/([ti])um$/i, '$1a')
25
+ inflect.plural(/([ti])a$/i, '$1a')
26
+ inflect.plural(/sis$/i, 'ses')
27
+ inflect.plural(/(?:([^f])fe|([lr])f)$/i, '$1$2ves')
28
+ inflect.plural(/(hive)$/i, '$1s')
29
+ inflect.plural(/([^aeiouy]|qu)y$/i, '$1ies')
30
+ inflect.plural(/(x|ch|ss|sh)$/i, '$1es')
31
+ inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '$1ices')
32
+ inflect.plural(/(m|l)ouse$/i, '$1ice')
33
+ inflect.plural(/(m|l)ice$/i, '$1ice')
34
+ inflect.plural(/^(ox)$/i, '$1en')
35
+ inflect.plural(/^(oxen)$/i, '$1')
36
+ inflect.plural(/(quiz)$/i, '$1zes')
37
+ inflect.singular(/s$/i, '')
38
+ inflect.singular(/(ss)$/i, '$1')
39
+ inflect.singular(/(n)ews$/i, '$1ews')
40
+ inflect.singular(/([ti])a$/i, '$1um')
41
+ inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i, '$1$2sis')
42
+ inflect.singular(/(^analy)(sis|ses)$/i, '$1sis')
43
+ inflect.singular(/([^f])ves$/i, '$1fe')
44
+ inflect.singular(/(hive)s$/i, '$1')
45
+ inflect.singular(/(tive)s$/i, '$1')
46
+ inflect.singular(/([lr])ves$/i, '$1f')
47
+ inflect.singular(/([^aeiouy]|qu)ies$/i, '$1y')
48
+ inflect.singular(/(s)eries$/i, '$1eries')
49
+ inflect.singular(/(m)ovies$/i, '$1ovie')
50
+ inflect.singular(/(x|ch|ss|sh)es$/i, '$1')
51
+ inflect.singular(/(m|l)ice$/i, '$1ouse')
52
+ inflect.singular(/(bus)(es)?$/i, '$1')
53
+ inflect.singular(/(o)es$/i, '$1')
54
+ inflect.singular(/(shoe)s$/i, '$1')
55
+ inflect.singular(/(cris|test)(is|es)$/i, '$1is')
56
+ inflect.singular(/^(a)x[ie]s$/i, '$1xis')
57
+ inflect.singular(/(octop|vir)(us|i)$/i, '$1us')
58
+ inflect.singular(/(alias|status)(es)?$/i, '$1')
59
+ inflect.singular(/^(ox)en/i, '$1')
60
+ inflect.singular(/(vert|ind)ices$/i, '$1ex')
61
+ inflect.singular(/(matr)ices$/i, '$1ix')
62
+ inflect.singular(/(quiz)zes$/i, '$1')
63
+ inflect.singular(/(database)s$/i, '$1')
64
+ inflect.irregular('person', 'people')
65
+ inflect.irregular('man', 'men')
66
+ inflect.irregular('woman', 'women')
67
+ inflect.irregular('child', 'children')
68
+ inflect.irregular('sex', 'sexes')
69
+ inflect.irregular('move', 'moves')
70
+ inflect.irregular('cow', 'kine')
71
+ inflect.irregular('zombie', 'zombies')
72
+ inflect.uncountable(['equipment','information','rice','money','species','series','fish','sheep','jeans','bacon'])
73
+
74
+
75
+
76
+
77
+ Stringy = (obj) ->
78
+ @value = obj
79
+
80
+ Stringy:: =
81
+ capitalize: ->
82
+ return @value if(@value is '')
83
+ lowerCased = @value.toLowerCase()
84
+ word = lowerCased[0].toUpperCase() + lowerCased.substring(1)
85
+ return word
86
+
87
+ # Returns only the numbers out of a string
88
+ numbers: ->
89
+ parseFloat(@value.replace(/[^0-9.-]+/g, ""))
90
+ #return isNaN(n) ? null : n
91
+
92
+ underscore: ->
93
+ underscored = []
94
+ for ch of @value.split("")
95
+ underscored.push "_" if ch isnt 0 and @value[ch].match(/[A-Z|\s]/)
96
+ underscored.push @value[ch].toLowerCase() unless @value[ch].match(/\s/)
97
+ underscored = underscored.join ""
98
+ underscored.replace(/^_?/,"")
99
+
100
+ camel: ->
101
+ f(f(@value).underscore()).titleize().replace(RegExp(" ","g"), "")
102
+
103
+ humanize: ->
104
+ humanized = []
105
+ for ch of @value.split("")
106
+ humanized.push "_" if ch isnt 0 and @value[ch].match(/[A-Z]/)
107
+ humanized.push @value[ch] unless @value[ch].match(/\-/)
108
+ humanized = humanized.join("").split("_")
109
+ humanized[0] = f(humanized[0]).capitalize()
110
+ humanized.join(" ").trim()
111
+
112
+ pluralize: ->
113
+ return @value if rules.uncountable.indexOf(@value) > 0
114
+ i = rules.irregular.length
115
+ while i > 0
116
+ r = rules.irregular[i - 1]
117
+ return r[1] if @value is r[0]
118
+ i--
119
+ i = rules.plural.length
120
+ while i > 0
121
+ r = rules.plural[i - 1]
122
+ return @value.replace(r[0], r[1]) if @value.match(r[0])
123
+ i--
124
+
125
+ singularize: ->
126
+ return @value if rules.uncountable.indexOf(@value) > 0
127
+ i = rules.irregular.length
128
+ while i > 0
129
+ r = rules.irregular[i - 1]
130
+ return r[0] if @value is r[1]
131
+ i--
132
+ i = rules.singular.length
133
+ while i > 0
134
+ r = rules.singular[i - 1]
135
+ return @value.replace(r[0], r[1]) if @value.match(r[0])
136
+ i--
137
+
138
+ money: (options) ->
139
+ options or (options = {})
140
+ defaults =
141
+ precision: 2
142
+ symbol: "$"
143
+ dot: "."
144
+ seperator: ","
145
+ default: "-"
146
+ for prop of defaults
147
+ (options[prop] isnt undefined) or (options[prop] = defaults[prop])
148
+ unless @value
149
+ options.defaults
150
+ else
151
+ val = parseFloat(@value)
152
+ sign = (if val < 0 then "-" else "")
153
+ i = parseInt(val = Math.abs(+val or 0).toFixed(options.precision)) + ""
154
+ j = (if (j = i.length) > 3 then j % 3 else 0)
155
+ first = (sign + options.symbol + (if j then i.substr(0, j) + options.seperator else ""))
156
+ middle = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + options.seperator)
157
+ last = (if options.precision then options.dot + Math.abs(val - i).toFixed(options.precision).slice(2) else "")
158
+ first + middle + last
159
+
160
+ number: (opts) ->
161
+ opts = opts or {}
162
+ opts.symbol = ""
163
+ f(@value).money opts
164
+
165
+ titleize: ->
166
+ parts = @value.split RegExp('[ _]')
167
+ parts = (f(word).capitalize() for word in parts)
168
+ parts.join " "
169
+
170
+ isBlank: ->
171
+ clean = @value || ""
172
+ clean = clean.replace RegExp(' ','g'), ""
173
+ clean is ""
174
+
175
+ truncate: (amount, tail="...")->
176
+ parts = []
177
+ parts = (str for str in @value when _i < amount)
178
+ parts.join("") + tail
179
+
180
+
181
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alt159-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70125013504900 !ruby/object:Gem::Requirement
16
+ requirement: &70366693168660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70125013504900
24
+ version_requirements: *70366693168660
25
25
  description: Easily Add ALT159 to a rails app
26
26
  email:
27
27
  - micahwoods@gmail.com
@@ -29,6 +29,26 @@ executables: []
29
29
  extensions: []
30
30
  extra_rdoc_files: []
31
31
  files:
32
+ - vendor/assets/javascripts/alt159/Cakefile
33
+ - vendor/assets/javascripts/alt159/index.html
34
+ - vendor/assets/javascripts/alt159/lib/jasmine-1.1.0/jasmine-html.js
35
+ - vendor/assets/javascripts/alt159/lib/jasmine-1.1.0/jasmine.css
36
+ - vendor/assets/javascripts/alt159/lib/jasmine-1.1.0/jasmine.js
37
+ - vendor/assets/javascripts/alt159/lib/jasmine-1.1.0/jasmine_favicon.png
38
+ - vendor/assets/javascripts/alt159/lib/jasmine-1.1.0/MIT.LICENSE
39
+ - vendor/assets/javascripts/alt159/README.md
40
+ - vendor/assets/javascripts/alt159/spec/DateSpec.js
41
+ - vendor/assets/javascripts/alt159/spec/LagniappeSpec.js
42
+ - vendor/assets/javascripts/alt159/spec/NumberSpec.js
43
+ - vendor/assets/javascripts/alt159/spec/SpecHelper.js
44
+ - vendor/assets/javascripts/alt159/spec/StringySpec.js
45
+ - vendor/assets/javascripts/alt159/SpecRunner.html
46
+ - vendor/assets/javascripts/alt159/src/ALT159.coffee
47
+ - vendor/assets/javascripts/alt159/src/ALT159.js
48
+ - vendor/assets/javascripts/alt159/src/types/datey.coffee
49
+ - vendor/assets/javascripts/alt159/src/types/langniappe.coffee
50
+ - vendor/assets/javascripts/alt159/src/types/numbery.coffee
51
+ - vendor/assets/javascripts/alt159/src/types/stringy.coffee
32
52
  - vendor/assets/javascripts/ALT159.js.coffee
33
53
  - lib/alt159-rails/version.rb
34
54
  - lib/alt159-rails.rb