ice 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+
2
+ {spawn, exec} = require 'child_process'
3
+ sys = require 'sys'
4
+
5
+ task 'assets:watch', 'Watch source files and build JS', (options) ->
6
+ runCommand = (name, args...) ->
7
+ proc = spawn name, args
8
+ proc.stderr.on 'data', (buffer) -> console.log buffer.toString()
9
+ proc.stdout.on 'data', (buffer) -> console.log buffer.toString()
10
+ proc.on 'exit', (status) -> process.exit(1) if status isnt 0
11
+
12
+ runCommand 'coffee', '-wcb', '../spec/javascripts', 'lib'
@@ -0,0 +1,66 @@
1
+ humanize = (name) ->
2
+ match = name.match(/(.*)_id$/)
3
+ if match
4
+ name = match[1]
5
+ name.split('_').join(' ')
6
+
7
+ getTypeValue = (type, opts) ->
8
+ switch type
9
+ when "disabled"
10
+ if opts[type] then "disabled" else ""
11
+ when "checked" then (opts[type] ? "checked" : "")
12
+ else opts[type]
13
+
14
+ getAttributeString = (type, opts) ->
15
+ (opts && opts[type] && type + "=\"" + getTypeValue(type,opts) + "\" ") || ""
16
+
17
+ getSizeString = (opts) ->
18
+ getAttributeString('size', opts)
19
+
20
+ getClassString = (opts) ->
21
+ getAttributeString('class', opts)
22
+
23
+ getDisabledString = (opts) ->
24
+ getAttributeString('disabled', opts)
25
+
26
+ getCheckedString = (opts) ->
27
+ getAttributeString('checked', opts)
28
+
29
+ getMaxlengthString = (opts) ->
30
+ getAttributeString('maxlength', opts)
31
+
32
+ labelTag = (name, opts) ->
33
+ label = if typeof opts == 'string' then opts else humanize(name)
34
+ classString = getClassString(opts)
35
+ "<label #{classString}for=\"#{name}\">#{label.charAt(0).toUpperCase()}#{label.substr(1)}</label>"
36
+
37
+ class BaseInputTag
38
+ constructor: (@tagType) ->
39
+
40
+ render: ->
41
+ "<input #{@checkedString}#{@disabledString}#{@classString}id=\"#{@name}\" #{@maxlengthString}name=\"#{@name}\" #{@sizeString}type=\"#{@tagType}\" #{@value}/>"
42
+
43
+ setOpts: (opts) ->
44
+ @classString = getClassString opts
45
+ @sizeString = getSizeString opts
46
+ @disabledString = getDisabledString(opts)
47
+ @maxlengthString = getMaxlengthString(opts)
48
+
49
+
50
+ passwordFieldTag = (name) ->
51
+ tag = new BaseInputTag("password")
52
+ tag.name = name
53
+ tag.value = ((typeof arguments[1] == 'string') && "value=\"" + arguments[1] + "\" ") || ""
54
+ opts = arguments[2] || arguments[1]
55
+ tag.setOpts(opts)
56
+ tag.checkedString = ""
57
+ tag.render()
58
+
59
+ checkBoxTag = (name) ->
60
+ tag = new BaseInputTag("checkbox")
61
+ tag.name = name
62
+ tag.value = "value=\"" + (((typeof arguments[1] == 'string') && arguments[1]) || 1) + "\" "
63
+ tag.checkedString = if arguments[2] is true then "checked=\"checked\" " else ""
64
+ opts = arguments[2] || arguments[1]
65
+ tag.setOpts(opts)
66
+ tag.render()
@@ -0,0 +1,87 @@
1
+ var BaseInputTag, checkBoxTag, getAttributeString, getCheckedString, getClassString, getDisabledString, getMaxlengthString, getSizeString, getTypeValue, humanize, labelTag, passwordFieldTag;
2
+ humanize = function(name) {
3
+ var match;
4
+ match = name.match(/(.*)_id$/);
5
+ if (match) {
6
+ name = match[1];
7
+ }
8
+ return name.split('_').join(' ');
9
+ };
10
+ getTypeValue = function(type, opts) {
11
+ var _ref;
12
+ switch (type) {
13
+ case "disabled":
14
+ if (opts[type]) {
15
+ return "disabled";
16
+ } else {
17
+ return "";
18
+ }
19
+ break;
20
+ case "checked":
21
+ return (_ref = opts[type]) != null ? _ref : {
22
+ "checked": ""
23
+ };
24
+ break;
25
+ default:
26
+ return opts[type];
27
+ }
28
+ };
29
+ getAttributeString = function(type, opts) {
30
+ return (opts && opts[type] && type + "=\"" + getTypeValue(type, opts) + "\" ") || "";
31
+ };
32
+ getSizeString = function(opts) {
33
+ return getAttributeString('size', opts);
34
+ };
35
+ getClassString = function(opts) {
36
+ return getAttributeString('class', opts);
37
+ };
38
+ getDisabledString = function(opts) {
39
+ return getAttributeString('disabled', opts);
40
+ };
41
+ getCheckedString = function(opts) {
42
+ return getAttributeString('checked', opts);
43
+ };
44
+ getMaxlengthString = function(opts) {
45
+ return getAttributeString('maxlength', opts);
46
+ };
47
+ labelTag = function(name, opts) {
48
+ var classString, label;
49
+ label = typeof opts === 'string' ? opts : humanize(name);
50
+ classString = getClassString(opts);
51
+ return "<label " + classString + "for=\"" + name + "\">" + (label.charAt(0).toUpperCase()) + (label.substr(1)) + "</label>";
52
+ };
53
+ BaseInputTag = (function() {
54
+ function BaseInputTag(tagType) {
55
+ this.tagType = tagType;
56
+ }
57
+ BaseInputTag.prototype.render = function() {
58
+ return "<input " + this.checkedString + this.disabledString + this.classString + "id=\"" + this.name + "\" " + this.maxlengthString + "name=\"" + this.name + "\" " + this.sizeString + "type=\"" + this.tagType + "\" " + this.value + "/>";
59
+ };
60
+ BaseInputTag.prototype.setOpts = function(opts) {
61
+ this.classString = getClassString(opts);
62
+ this.sizeString = getSizeString(opts);
63
+ this.disabledString = getDisabledString(opts);
64
+ return this.maxlengthString = getMaxlengthString(opts);
65
+ };
66
+ return BaseInputTag;
67
+ })();
68
+ passwordFieldTag = function(name) {
69
+ var opts, tag;
70
+ tag = new BaseInputTag("password");
71
+ tag.name = name;
72
+ tag.value = ((typeof arguments[1] === 'string') && "value=\"" + arguments[1] + "\" ") || "";
73
+ opts = arguments[2] || arguments[1];
74
+ tag.setOpts(opts);
75
+ tag.checkedString = "";
76
+ return tag.render();
77
+ };
78
+ checkBoxTag = function(name) {
79
+ var opts, tag;
80
+ tag = new BaseInputTag("checkbox");
81
+ tag.name = name;
82
+ tag.value = "value=\"" + (((typeof arguments[1] === 'string') && arguments[1]) || 1) + "\" ";
83
+ tag.checkedString = arguments[2] === true ? "checked=\"checked\" " : "";
84
+ opts = arguments[2] || arguments[1];
85
+ tag.setOpts(opts);
86
+ return tag.render();
87
+ };
@@ -0,0 +1,30 @@
1
+ safe = (value)->
2
+ result = new String(value)
3
+ result.ecoSafe = true
4
+ result
5
+
6
+ linkTo = (label, link, opts) ->
7
+ if (! link)
8
+ link = label
9
+ '<a href="' + link + '">' + label + '</a>'
10
+
11
+ navBar = (options, yield)->
12
+ config = try
13
+ NavBarConfig
14
+ catch error
15
+ {}
16
+ config["linkPrefix"] ||= "<li>"
17
+ config["linkPostfix"] ||= "</li>"
18
+ config["navPrefix"] ||= "<ul>"
19
+ config["navPostfix"] ||= "</ul>"
20
+
21
+ linkPrefix = ()-> options["linkPrefix"] || config["linkPrefix"]
22
+ linkPostfix = ()-> options["linkPostfix"] || config["linkPostfix"]
23
+ navPrefix = ()-> options["navPrefix"] || config["navPrefix"]
24
+ navPostfix = ()-> options["navPostfix"] || config["navPostfix"]
25
+ bar =
26
+ linkTo: (label, link = null) =>
27
+ safe "#{linkPrefix()}#{linkTo label, link}#{linkPostfix()}"
28
+
29
+ links = yield(bar)
30
+ safe "#{navPrefix()}#{links}#{navPostfix}"
@@ -0,0 +1,50 @@
1
+ var linkTo, navBar, safe;
2
+ var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
3
+ safe = function(value) {
4
+ var result;
5
+ result = new String(value);
6
+ result.ecoSafe = true;
7
+ return result;
8
+ };
9
+ linkTo = function(label, link, opts) {
10
+ if (!link) {
11
+ link = label;
12
+ }
13
+ return '<a href="' + link + '">' + label + '</a>';
14
+ };
15
+ navBar = function(options, yield) {
16
+ var bar, config, linkPostfix, linkPrefix, links, navPostfix, navPrefix;
17
+ config = (function() {
18
+ try {
19
+ return NavBarConfig;
20
+ } catch (error) {
21
+ return {};
22
+ }
23
+ })();
24
+ config["linkPrefix"] || (config["linkPrefix"] = "<li>");
25
+ config["linkPostfix"] || (config["linkPostfix"] = "</li>");
26
+ config["navPrefix"] || (config["navPrefix"] = "<ul>");
27
+ config["navPostfix"] || (config["navPostfix"] = "</ul>");
28
+ linkPrefix = function() {
29
+ return options["linkPrefix"] || config["linkPrefix"];
30
+ };
31
+ linkPostfix = function() {
32
+ return options["linkPostfix"] || config["linkPostfix"];
33
+ };
34
+ navPrefix = function() {
35
+ return options["navPrefix"] || config["navPrefix"];
36
+ };
37
+ navPostfix = function() {
38
+ return options["navPostfix"] || config["navPostfix"];
39
+ };
40
+ bar = {
41
+ linkTo: __bind(function(label, link) {
42
+ if (link == null) {
43
+ link = null;
44
+ }
45
+ return safe("" + (linkPrefix()) + (linkTo(label, link)) + (linkPostfix()));
46
+ }, this)
47
+ };
48
+ links = yield(bar);
49
+ return safe("" + (navPrefix()) + links + navPostfix);
50
+ };
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ice
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.2
5
+ version: 0.4.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nate Kidwell
@@ -53,6 +53,11 @@ files:
53
53
  - lib/ice/eco_template/handler.rb
54
54
  - lib/ice/railtie.rb
55
55
  - lib/ice.rb
56
+ - js/Cakefile
57
+ - js/lib/form-tag-inputs.coffee
58
+ - js/lib/form-tag-inputs.js
59
+ - js/lib/path-helper.coffee
60
+ - js/lib/path-helper.js
56
61
  - MIT-LICENSE
57
62
  - Rakefile
58
63
  - Gemfile