ultimate-base 0.3.4.0 → 0.3.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ultimate-base (0.3.4.0)
4
+ ultimate-base (0.3.5.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -1,5 +1,6 @@
1
1
  # TODO timeout without cycling, maybe bouce effect
2
2
  # TODO mousewheel
3
+ # TODO touch events
3
4
 
4
5
  Ultimate.Backbone.Views ||= {}
5
6
 
@@ -23,11 +24,11 @@ class Ultimate.Backbone.Views.Slider extends Ultimate.Backbone.View
23
24
  cycling: false
24
25
  interval: 0
25
26
  durationPerPixel: 2
27
+ moveItems: 0
26
28
 
27
29
  totalItems: 0
28
30
  itemSize: 0
29
31
  displayItems: 0
30
- moveItems: 0
31
32
  overItems: 0
32
33
  prevItems: 0 # can as setting
33
34
 
@@ -46,7 +47,7 @@ class Ultimate.Backbone.Views.Slider extends Ultimate.Backbone.View
46
47
  needSize = @totalItems * @itemSize
47
48
  @jLine[@sizeAttr](needSize) if @jLine[@sizeAttr]() < needSize
48
49
  @displayItems = Math.round(@jDisplay[@sizeAttr]() / @itemSize)
49
- @moveItems = Math.round(@displayItems / 2)
50
+ @moveItems ||= Math.round(@displayItems / 2)
50
51
  @overItems = @totalItems - @displayItems
51
52
  if @overItems
52
53
  if @prevItems
@@ -26,17 +26,15 @@
26
26
  Ultimate.Helpers.Tag.tag 'input', _.extend({type: 'text', name: name, id: @_sanitize_to_id(name), value: value}, options)
27
27
 
28
28
  label_tag: (name = null, content_or_options = null, options = null, block = null) ->
29
- if (block = _.outcasts.blockGiven(arguments)) and $.isPlainObject(content_or_options)
30
- options = content_or_options
31
- else
32
- options ||= {}
29
+ if block = _.outcasts.blockGiven(arguments)
30
+ [options, content_or_options] = [content_or_options, block()]
31
+ options ||= {}
33
32
  if _.isString(name) and not _.string.isBlank(name)
34
33
  unless _.has(options, 'for')
35
34
  options = _.clone(options)
36
35
  options['for'] = @_sanitize_to_id(name)
37
36
  content_or_options ||= _.string.humanize(name)
38
- content_or_options = options if block
39
- Ultimate.Helpers.Tag.content_tag 'label', content_or_options, options, block
37
+ Ultimate.Helpers.Tag.content_tag_string 'label', content_or_options, options, true, false
40
38
 
41
39
  hidden_field_tag: (name, value = null, options = {}) ->
42
40
  @text_field_tag name, value, _.extend(options, type: 'hidden')
@@ -70,12 +70,12 @@
70
70
  # TODO more zen features: +, *x, {content}
71
71
  # TODO cache
72
72
  selectorToHtml: (selector) ->
73
- if matches = selector.match(/^[\s>]*([\w\.#]+)(.*)$/)
73
+ if matches = selector.match(/^[\s>]*([\w\-\.#]+)(.*)$/)
74
74
  selector = matches[1]
75
75
  continuation = matches[2] # in v1 {(if continuation then ">" + content else " />")}
76
76
  tag_name = selector.match(/^\w+/)?[0] or 'div'
77
- id = selector.match(/#(\w+)/)?[1]
78
- classes = _.map( selector.match(/\.\w+/g), (c) -> _.string.ltrim(c, '.') )
77
+ id = selector.match(/#([\w\-]+)/)?[1]
78
+ classes = _.map( selector.match(/\.[\w\-]+/g), (c) -> _.string.ltrim(c, '.') )
79
79
  html_options = {}
80
80
  html_options['id'] = id if id
81
81
  html_options['class'] = classes.join(' ') if classes.length
@@ -123,7 +123,7 @@ __string_encode = (str) -> _.map(str, (char) -> "&##{char.charCodeAt(0)};" ).joi
123
123
 
124
124
  _add_method_to_attributes: (html_options, method) ->
125
125
  if _.isString(method) and method.toLowerCase() isnt 'get' and not /nofollow/.test(html_options['rel'])
126
- html_options['rel'] = _.string.lstrip("#{html_options['rel']} nofollow")
126
+ html_options['rel'] = Ultimate.Helpers.Tag.concat_class(html_options['rel'], 'nofollow')
127
127
  html_options['data-method'] = method
128
128
 
129
129
  _convert_boolean_attributes: (html_options, bool_attrs) ->
@@ -18,22 +18,25 @@
18
18
  # 1 _.string.startsWith
19
19
 
20
20
  class Ultimate.Plugin
21
+ cid: null
21
22
  el: null
22
23
  $el: null
23
- nodes: {}
24
- events: {}
24
+ nodes: null
25
+ events: null
25
26
 
26
- options: {}
27
+ options: null
27
28
 
28
29
  # @defaultLocales: { en: {} }
29
30
  locale: 'en'
30
- translations: {}
31
+ translations: null
31
32
 
32
33
  constructor: (options) ->
34
+ # TODO
33
35
  throw new Error('Property `el` must be specified at first argument of Ultimate.Plugin.constructor') unless options?.el
34
36
  @cid = _.uniqueId('ultimatePlugin_')
35
37
  @_configure options
36
- @$el = $(@el)
38
+ @$el = $(@el).first()
39
+ @el = @$el[0]
37
40
  @findNodes()
38
41
  @initialize? arguments...
39
42
  @delegateEvents()
@@ -99,7 +102,8 @@ class Ultimate.Plugin
99
102
  events = normalizedEvents
100
103
  events
101
104
 
102
- _configure: (options) ->
105
+ _configure: (options = {}) ->
106
+ @options ||= {}
103
107
  _.extend @options, options
104
108
  #cout '@options', @options
105
109
  @_reflectOptions()
@@ -112,6 +116,7 @@ class Ultimate.Plugin
112
116
 
113
117
  # use I18n, and modify locale and translations
114
118
  _initTranslations: ->
119
+ @translations ||= {}
115
120
  if @constructor.defaultLocales?
116
121
  if not @options["locale"] and I18n?.locale of @constructor.defaultLocales
117
122
  @locale = I18n.locale
@@ -109,3 +109,12 @@
109
109
  @each $item in $list { @if $item == $var { @return true; } }
110
110
  @return false;
111
111
  }
112
+
113
+ @function find-typed-item($list, $type, $default: false) {
114
+ @each $item in $list { @if type-of($item) == $type { @return $item; } }
115
+ @return $default;
116
+ }
117
+
118
+ @function find-color($list, $default: false) {
119
+ @return find-typed-item($list, color, $default);
120
+ }
@@ -19,9 +19,9 @@ $support-ie: true !default;
19
19
  text-shadow: $params;
20
20
  @if $support-ie {
21
21
  $params-offset: 0;
22
- @if type-of($color) != 'color' {
22
+ @if type-of($color) != color {
23
23
  $color: nth($params, 1);
24
- @if type-of($color) == 'color' {
24
+ @if type-of($color) == color {
25
25
  $params-offset: 1;
26
26
  } @else {
27
27
  $color: #000;
@@ -1,5 +1,5 @@
1
1
  module Ultimate
2
2
  module Base
3
- VERSION = "0.3.4.0"
3
+ VERSION = "0.3.5.0"
4
4
  end
5
5
  end
@@ -79,6 +79,7 @@ test "label_tag", ->
79
79
  equal label_tag("title", "My Title"), '<label for="title">My Title</label>'
80
80
  equal label_tag("title", "My Title", class: "small-label"), '<label class="small-label" for="title">My Title</label>'
81
81
  equal label_tag( -> "Blocked" ), '<label>Blocked</label>'
82
+ equal label_tag( -> content_tag('span', "Blocked SPAN", class: 'inner') ), '<label><span class="inner">Blocked SPAN</span></label>'
82
83
  equal label_tag("clock", -> "Grandfather"), '<label for="clock">Grandfather</label>'
83
84
  equal label_tag("clock", id: "label_clock", -> "Grandfather"), '<label for="clock" id="label_clock">Grandfather</label>'
84
85
 
@@ -49,6 +49,7 @@ test "concat_class", ->
49
49
  test "selectorToHtml", ->
50
50
  equal selectorToHtml(''), ''
51
51
  equal selectorToHtml('.lol'), '<div class="lol"></div>'
52
+ equal selectorToHtml('.mega-lol'), '<div class="mega-lol"></div>'
52
53
  equal selectorToHtml('tr.lol'), '<tr class="lol"></tr>'
53
54
  equal selectorToHtml('tr.lol#rofl'), '<tr class="lol" id="rofl"></tr>'
54
55
  equal selectorToHtml('#rofl.lol'), '<div class="lol" id="rofl"></div>'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultimate-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4.0
4
+ version: 0.3.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-15 00:00:00.000000000 Z
12
+ date: 2012-12-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails