rails-angulate 0.0.1 → 0.0.2.pre.v1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rails/angulate/helpers/form_builder.rb +1 -0
- data/lib/rails/angulate/helpers/form_helper.rb +4 -0
- data/lib/rails/angulate/helpers/tags/ng_text_area.rb +27 -0
- data/lib/rails/angulate/helpers/tags/ng_text_field.rb +2 -29
- data/lib/rails/angulate/helpers/tags/tag_common.rb +30 -0
- data/lib/rails/angulate/helpers/tags.rb +1 -0
- data/lib/rails/angulate/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b69562ba95d502b6440d3519e93b10cb40c4df8c
|
4
|
+
data.tar.gz: a44b08c372420ab2af4362192d6a5298627d6b60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1776ffc9b3c58341f700fe687639ade820c271386bd3b7494ad82c56efb27bee0870c7f4c9e86eebf94c69affeb3bc52d250b0919ccf792ee56835c0fdf166b4
|
7
|
+
data.tar.gz: 6381545516ab3e0f79c0e9de77f4f0b6b0d3cbe5fc155f452f0d38c0ed7e558247aea07c04e60abdec950d48c4c52a3469d938240f3f4ae52d9b9fdd25a87ac1
|
@@ -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
|
-
|
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
|
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.
|
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:
|
105
|
+
version: 1.3.1
|
105
106
|
requirements: []
|
106
107
|
rubyforge_project:
|
107
108
|
rubygems_version: 2.2.2
|