rails-angulate 0.0.4 → 0.0.5.rc1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a43c0dd10b6ea2a418346f98eb497f0bb2836bb
4
- data.tar.gz: 53be53d6a4b7512f206c2632fbf7e8fe1aab7f25
3
+ metadata.gz: 028e9269a483d6f3148f726cf86b2c5f49d50dc3
4
+ data.tar.gz: 24f89a7798749b0c76ea78c50abb300019e77068
5
5
  SHA512:
6
- metadata.gz: 5d2d7cb1de7704a25bb4f560cb2d49afbf75e681a02d0cfd7a07a23ab3f28b87a67b098208d43b8abc5ff9e737676c290681357ea604bb6e3b47ffe18874101d
7
- data.tar.gz: fb52d43038cd80801d8d1f6dc394dd4c4bcd8d0069730ccd28e53e76bb2a979e3f1fdb99c6f86098b74d92f16b22e8c5f61bfab7bde5f397bfa3b9792efa6766
6
+ metadata.gz: 089bc3386ff49bf0d79c9488016e34fea3c29a6c1ae4678bd928d957533df0831854a1c49e4c98c2a7ee28cd92d1d8f96a3c3b10a8066486d26edf142af7db70
7
+ data.tar.gz: 2f1038662c1f44a85cbc4d4ca9f7f422cd6ba4817a80e9715c5bc9c5cff5a3e57c63d4b7f013f6b75eefc96419df32435657df42c952d0a3e87ba485d554cf79
@@ -1,9 +1,9 @@
1
1
  # Add $blur flag to form controller
2
2
  blurifyDirective = ['$timeout', ($timeout) ->
3
3
  restrict: 'E',
4
- require: '^form'
4
+ require: '?^form'
5
5
  link: (scope, element, attrs, form) ->
6
- return unless attrs.name
6
+ return if !attrs.name || !form
7
7
  form.$blur = false
8
8
 
9
9
  element.on 'blur', handler = ->
@@ -17,7 +17,7 @@ blurifyDirective = ['$timeout', ($timeout) ->
17
17
  ]
18
18
 
19
19
  formExtensions = ['$timeout', ($timeout) ->
20
- restrict: 'E'
20
+ restrict: 'EAC'
21
21
  priority: 10
22
22
  require: 'form'
23
23
  compile: ->
@@ -48,7 +48,7 @@ angular.module 'angulate.directives'
48
48
  .directive('select', blurifyDirective)
49
49
  .directive('blurify', blurifyDirective)
50
50
 
51
- .directive('form', formExtensions)
51
+ .directive('angForm', formExtensions)
52
52
  .config ['$provide', ($provide) ->
53
53
  $provide.decorator 'ngSubmitDirective', ['$delegate', ($delegate) ->
54
54
  # Remove default ngSubmit
@@ -9,13 +9,12 @@ module Rails
9
9
  # blur: only once the field has been visited
10
10
  # dirty: only if the field is dirty
11
11
  # submit_attempt: only once the user has submitted the form
12
- attr_accessor :validate_on
13
-
14
- attr_accessor :validate_show_condition
12
+ attr_accessor :validate_on, :default_error_classes, :validate_show_condition
15
13
 
16
14
  def initialize
17
15
  self.validate_on = { submit_attempt: :or, blur: nil }
18
16
  self.validate_show_condition = "%{field}.$invalid && (%{validate_on})"
17
+ self.default_error_classes = []
19
18
  end
20
19
 
21
20
  def validator_mappings
@@ -14,6 +14,7 @@ module Rails
14
14
  }.each do |_adv_method|
15
15
  define_method _adv_method do |*args, &block|
16
16
  options = args.extract_options!
17
+ options = apply_builder_options(options)
17
18
  options = objectify_options(options)
18
19
  @template.send(_adv_method, @object_name, *args, options, &block)
19
20
  end
@@ -30,6 +31,14 @@ module Rails
30
31
  @template.send(_simple_method, object, *args, &block)
31
32
  end
32
33
  end
34
+
35
+ protected
36
+
37
+ def apply_builder_options(options)
38
+ options.dup.tap do |opts|
39
+ opts[:validate_on] ||= self.options[:validate_on]
40
+ end
41
+ end
33
42
  end
34
43
  end
35
44
  end
@@ -8,6 +8,7 @@ module Rails
8
8
 
9
9
  def ng_form_for(record, options = {}, &block)
10
10
  options[:html] ||= {}
11
+ options[:html]['ang-form'] = ""
11
12
  options[:html][:name] ||= options[:as] || ng_form_name(record)
12
13
  form_for(record, options, &block)
13
14
  end
@@ -6,17 +6,9 @@ module Rails
6
6
  include TagCommon
7
7
 
8
8
  def render
9
- attrs = {}
10
- [:id, :class].each do |key|
11
- if options.include?(key)
12
- value = options[key]
13
- attrs[key] = value unless value.blank?
14
- end
15
- end
16
-
17
9
  # We can't use content_tag with a block (no self.output_buffer)
18
10
  # so we pass in content
19
- container attrs, angular_error_list_html
11
+ container(angular_error_list_html)
20
12
  end
21
13
 
22
14
  private
@@ -25,8 +17,8 @@ module Rails
25
17
  @_options ||= @options.symbolize_keys
26
18
  end
27
19
 
28
- def container(attrs, content)
29
- content_tag :ul, content, attrs.merge(container_attrs)
20
+ def container(content)
21
+ content_tag :ul, content, container_attrs
30
22
  end
31
23
 
32
24
  def angular_error_list_html
@@ -46,16 +38,35 @@ module Rails
46
38
  validate_on: validate_on || 'true'
47
39
  }
48
40
 
49
- {
41
+ attrs = {
50
42
  'ng-show' => ng_show
51
43
  }
44
+
45
+ attrs[:class] = configuration.default_error_classes
46
+ .dup.concat([options[:class]]).compact.uniq.join(' ')
47
+
48
+ attrs
49
+ end
50
+
51
+ def validate_on_options
52
+ validate_on = (options[:validate_on] || configuration.validate_on)
53
+ case validate_on
54
+ when Array
55
+ validate_on = validate_on.each_with_index.map { |cond, i| [cond, i == validate_on.length - 1 ? nil : :and] }
56
+ when Symbol
57
+ options[:validate_on] = Array.wrap(validate_on)
58
+ validate_on = validate_on_options
59
+ end
60
+ validate_on
52
61
  end
53
62
 
54
63
  def validate_on
55
64
  field = angular_form_field_object_name
56
65
  form = angular_form_object_name
57
66
 
58
- configuration.validate_on.inject('') do |str, (kind, op)|
67
+ return validate_on_options if validate_on_options.is_a?(String)
68
+
69
+ validate_on_options.inject('') do |str, (kind, op)|
59
70
  op = case op
60
71
  when :and
61
72
  ' && '
@@ -53,8 +53,10 @@ module Rails
53
53
  id.camelize(:lower)
54
54
  end
55
55
 
56
- def self.field_type
57
- @field_type ||= super.sub(/^ng/, '')
56
+ module ClassMethods
57
+ def field_type
58
+ @field_type ||= super.sub(/^ng/, '')
59
+ end
58
60
  end
59
61
  end
60
62
  end
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module Angulate
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5.rc1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-angulate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Bondi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-28 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -104,7 +104,6 @@ files:
104
104
  - lib/rails/angulate/mappers/length_validator_mapper.rb
105
105
  - lib/rails/angulate/mappers/numericality_validator_mapper.rb
106
106
  - lib/rails/angulate/mappers/validator_mapper.rb
107
- - lib/rails/angulate/railtie.rb
108
107
  - lib/rails/angulate/version.rb
109
108
  homepage: https://github.com/fixate/rails-angulate
110
109
  licenses:
@@ -121,9 +120,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
121
120
  version: '0'
122
121
  required_rubygems_version: !ruby/object:Gem::Requirement
123
122
  requirements:
124
- - - ">="
123
+ - - ">"
125
124
  - !ruby/object:Gem::Version
126
- version: '0'
125
+ version: 1.3.1
127
126
  requirements: []
128
127
  rubyforge_project:
129
128
  rubygems_version: 2.2.2
@@ -1,15 +0,0 @@
1
- require 'rails'
2
- require 'angulate/helpers'
3
-
4
- module Rails
5
- module Angulate
6
- class Railtie < ::Rails::Railtie
7
- initializer :include_helpers do |app|
8
- ActiveSupport.on_load(:action_view) do
9
- include Rails::Angulate::Helpers
10
- cattr_accessor(:default_form_builder) { Rails::Angulate::Helpers::FormBuilder }
11
- end
12
- end
13
- end
14
- end
15
- end