rails-angulate 0.0.1 → 0.0.2.pre.v1

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: b2c4edfa704869f0f851c31ed0a1d6664d91f159
4
- data.tar.gz: d5bbc86ee369bf6716646f3bcd490a8065313f9c
3
+ metadata.gz: b69562ba95d502b6440d3519e93b10cb40c4df8c
4
+ data.tar.gz: a44b08c372420ab2af4362192d6a5298627d6b60
5
5
  SHA512:
6
- metadata.gz: 05f74b84bdd08df8df880bc56c48261d1b9ead1df116851a54670878bf69c2a1327383b3fe6ffa89bb0e20cedb40e7e5c420f797d6bf5313df31a4fe63078639
7
- data.tar.gz: 0ad0bdc1418c1f63e58f156fb82d54e7fd256df9df93920d9bf9d8544f59760e69fa147be81fb46d30bd444bf0e89ffc7fdf7d83dba4cf88ab0dca94c7bd7f68
6
+ metadata.gz: 1776ffc9b3c58341f700fe687639ade820c271386bd3b7494ad82c56efb27bee0870c7f4c9e86eebf94c69affeb3bc52d250b0919ccf792ee56835c0fdf166b4
7
+ data.tar.gz: 6381545516ab3e0f79c0e9de77f4f0b6b0d3cbe5fc155f452f0d38c0ed7e558247aea07c04e60abdec950d48c4c52a3469d938240f3f4ae52d9b9fdd25a87ac1
@@ -8,6 +8,7 @@ module Rails
8
8
 
9
9
  %i{
10
10
  ng_text_field
11
+ ng_text_area
11
12
  ng_email_field
12
13
  ng_error_messages_for
13
14
  }.each do |_adv_method|
@@ -12,6 +12,10 @@ module Rails
12
12
  form_for(record, options, &block)
13
13
  end
14
14
 
15
+ def ng_text_area(object_name, method, options = {})
16
+ Tags::NgTextArea.new(object_name, method, self, options).render
17
+ end
18
+
15
19
  def ng_text_field(object_name, method, options = {})
16
20
  Tags::NgTextField.new(object_name, method, self, options).render
17
21
  end
@@ -0,0 +1,27 @@
1
+ module Rails
2
+ module Angulate
3
+ module Helpers
4
+ module Tags
5
+ class NgTextArea < ActionView::Helpers::Tags::Base
6
+ include TagCommon
7
+
8
+ def render
9
+ options = @options.stringify_keys
10
+ add_default_name_and_id(options)
11
+
12
+ if size = options.delete("size")
13
+ options["cols"], options["rows"] = size.split("x") if size.respond_to?(:split)
14
+ end
15
+
16
+ add_ng_options(options)
17
+ add_ng_model(options)
18
+ add_ng_validation_attrs(options)
19
+
20
+ content_tag("textarea", options.delete("value") { value_before_type_cast(object) }, options)
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -13,39 +13,12 @@ module Rails
13
13
  options["value"] &&= ERB::Util.html_escape(options["value"])
14
14
 
15
15
  add_default_name_and_id(options)
16
- set_ng_options(options)
16
+ add_ng_options(options)
17
+ add_ng_model(options)
17
18
  add_ng_validation_attrs(options)
18
19
 
19
20
  tag 'input', options
20
21
  end
21
-
22
- def set_ng_options(options)
23
- if options.has_key?("ng")
24
- options.delete("ng").each do |k, v|
25
- options["ng-#{k}"] = v
26
- end
27
- end
28
-
29
- unless options.has_key?("ng-model")
30
- options["ng-model"] = options.fetch("ngModel") do
31
- ng_model_name(options["id"])
32
- end.to_s
33
- end
34
- end
35
-
36
- def add_ng_validation_attrs(attrs)
37
- validators.each do |validator|
38
- attrs.reverse_merge!(validator_mapper_for(validator).ng_attributes)
39
- end
40
- end
41
-
42
- def ng_model_name(id)
43
- id.camelize(:lower)
44
- end
45
-
46
- def self.field_type
47
- @field_type ||= super.sub(/^ng/, '')
48
- end
49
22
  end
50
23
  end
51
24
  end
@@ -23,9 +23,39 @@ module Rails
23
23
  object.class.validators.select { |v| v.attributes.include?(@method_name.to_sym) }
24
24
  end
25
25
 
26
+ def add_ng_validation_attrs(attrs)
27
+ validators.each do |validator|
28
+ attrs.reverse_merge!(validator_mapper_for(validator).ng_attributes)
29
+ end
30
+ end
31
+
26
32
  def validator_mapper_for(validator)
27
33
  Rails::Angulate::Mappers.create_validator_mapper_for(object, @method_name, validator)
28
34
  end
35
+
36
+ def add_ng_options(options)
37
+ if options.has_key?("ng")
38
+ options.delete("ng").each do |k, v|
39
+ options["ng-#{k}"] = v
40
+ end
41
+ end
42
+ end
43
+
44
+ def add_ng_model(options)
45
+ unless options.has_key?("ng-model")
46
+ options["ng-model"] = options.fetch("ngModel") do
47
+ ng_model_name(options["id"])
48
+ end.to_s
49
+ end
50
+ end
51
+
52
+ def ng_model_name(id)
53
+ id.camelize(:lower)
54
+ end
55
+
56
+ def self.field_type
57
+ @field_type ||= super.sub(/^ng/, '')
58
+ end
29
59
  end
30
60
  end
31
61
  end
@@ -7,6 +7,7 @@ module Rails
7
7
  eager_autoload do
8
8
  autoload :TagCommon
9
9
  autoload :NgTextField
10
+ autoload :NgTextArea
10
11
  autoload :NgEmailField
11
12
  autoload :NgValidationErrors
12
13
  end
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module Angulate
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2-v1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-angulate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2.pre.v1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Bondi
@@ -14,14 +14,14 @@ dependencies:
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4'
27
27
  - !ruby/object:Gem::Dependency
@@ -73,6 +73,7 @@ files:
73
73
  - lib/rails/angulate/helpers/form_helper.rb
74
74
  - lib/rails/angulate/helpers/tags.rb
75
75
  - lib/rails/angulate/helpers/tags/ng_email_field.rb
76
+ - lib/rails/angulate/helpers/tags/ng_text_area.rb
76
77
  - lib/rails/angulate/helpers/tags/ng_text_field.rb
77
78
  - lib/rails/angulate/helpers/tags/ng_validation_errors.rb
78
79
  - lib/rails/angulate/helpers/tags/tag_common.rb
@@ -99,9 +100,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
100
  version: '0'
100
101
  required_rubygems_version: !ruby/object:Gem::Requirement
101
102
  requirements:
102
- - - ">="
103
+ - - ">"
103
104
  - !ruby/object:Gem::Version
104
- version: '0'
105
+ version: 1.3.1
105
106
  requirements: []
106
107
  rubyforge_project:
107
108
  rubygems_version: 2.2.2