ng-attributes 1.0.3 → 1.0.5

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.
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ #ng-attributes
2
+
3
+ This gem provides Angular.js ng attributes for rails view helpers.
4
+
5
+ #Installing
6
+
7
+ For installing gem write in gemfile
8
+
9
+ ```
10
+ gem 'ng-attributes'
11
+ ```
12
+
13
+ #Usage
14
+
15
+ Usage is the same as usage of data attribute.
16
+
17
+ ```ruby
18
+ link_to 'hello world', hello_world_path, ng: { click: 'doSomething()' }
19
+ ```
20
+ will generate
21
+
22
+ ```
23
+ <a href="/hello_world" ng-click="doSomething()">hello world</a>
24
+ ```
@@ -0,0 +1 @@
1
+ require 'ng_attributes/railtie' if defined? Rails
@@ -0,0 +1,52 @@
1
+ module NgAttributes
2
+ class Railtie < ::Rails::Railtie #:nodoc:
3
+ config.after_initialize do
4
+
5
+ module ActionView::Helpers::TagHelper
6
+ private
7
+
8
+ def tag_options(options, escape = true)
9
+ return if options.blank?
10
+ attrs = []
11
+ options.each_pair do |key, value|
12
+ if key.to_s == 'data' && value.is_a?(Hash)
13
+ value.each_pair do |k, v|
14
+ attrs << data_tag_option(k, v, escape)
15
+ end
16
+ elsif key.to_s == 'ng' && value.is_a?(Hash)
17
+ value.each_pair do |k, v|
18
+ attrs << ng_tag_option(k, v, escape)
19
+ end
20
+ elsif BOOLEAN_ATTRIBUTES.include?(key)
21
+ attrs << boolean_tag_option(key) if value
22
+ elsif !value.nil?
23
+ attrs << tag_option(key, value, escape)
24
+ end
25
+ end
26
+ " #{attrs.sort! * ' '}".html_safe unless attrs.empty?
27
+ end
28
+
29
+ ['ng', 'data'].each do |method_name|
30
+ define_method("#{method_name}_tag_option") do |key, value, escape|
31
+ key = "#{method_name}-#{key.to_s.dasherize}"
32
+ unless value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(BigDecimal)
33
+ value = value.to_json
34
+ end
35
+ tag_option(key, value, escape)
36
+ end
37
+ end
38
+
39
+ def boolean_tag_option(key)
40
+ %(#{key}="#{key}")
41
+ end
42
+
43
+ def tag_option(key, value, escape)
44
+ value = value.join(" ") if value.is_a?(Array)
45
+ value = ERB::Util.h(value) if escape
46
+ %(#{key}="#{value}")
47
+ end
48
+ end
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'ng-attributes'
3
+ s.platform = Gem::Platform::RUBY
4
+ s.version = '1.0.5'
5
+ s.license = 'MIT'
6
+ s.author = 'Pavel Astraukh'
7
+ s.email = 'paladin111333@gmail.com'
8
+ s.description = "Gem for using angular.js ng-attributes in rails view helpers"
9
+ s.homepage = 'http://github.com/enotpoloskun/ng-attributes'
10
+ s.summary = "Angular.js ng attributes"
11
+
12
+ s.files = `git ls-files`.split("\n")
13
+ s.require_path = 'lib'
14
+
15
+ s.rubyforge_project = s.name
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ng-attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.5
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: 2013-05-18 00:00:00.000000000 Z
12
+ date: 2013-06-03 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Gem for using angular.js ng-attributes in rails view helpers
15
15
  email: paladin111333@gmail.com
@@ -17,9 +17,13 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
- - lib/action_view/helpers/tag_helper.rb
21
- homepage: http://rubygems.org/gems/ng-attributes
22
- licenses: []
20
+ - README.md
21
+ - lib/ng-attributes.rb
22
+ - lib/ng_attributes/railtie.rb
23
+ - ng-attributes.gemspec
24
+ homepage: http://github.com/enotpoloskun/ng-attributes
25
+ licenses:
26
+ - MIT
23
27
  post_install_message:
24
28
  rdoc_options: []
25
29
  require_paths:
@@ -37,7 +41,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
37
41
  - !ruby/object:Gem::Version
38
42
  version: '0'
39
43
  requirements: []
40
- rubyforge_project:
44
+ rubyforge_project: ng-attributes
41
45
  rubygems_version: 1.8.25
42
46
  signing_key:
43
47
  specification_version: 3
@@ -1,45 +0,0 @@
1
- module ActionView::Helpers::TagHelper
2
-
3
- private
4
-
5
- def tag_options(options, escape = true)
6
- return if options.blank?
7
- attrs = []
8
- options.each_pair do |key, value|
9
- if key.to_s == 'data' && value.is_a?(Hash)
10
- value.each_pair do |k, v|
11
- attrs << data_tag_option(k, v, escape)
12
- end
13
- elsif key.to_s == 'ng' && value.is_a?(Hash)
14
- value.each_pair do |k, v|
15
- attrs << ng_tag_option(k, v, escape)
16
- end
17
- elsif BOOLEAN_ATTRIBUTES.include?(key)
18
- attrs << boolean_tag_option(key) if value
19
- elsif !value.nil?
20
- attrs << tag_option(key, value, escape)
21
- end
22
- end
23
- " #{attrs.sort! * ' '}".html_safe unless attrs.empty?
24
- end
25
-
26
- ['ng', 'data'].each do |method_name|
27
- define_method("#{method_name}_tag_option") do |key, value, escape|
28
- key = "#{method_name}-#{key.to_s.dasherize}"
29
- unless value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(BigDecimal)
30
- value = value.to_json
31
- end
32
- tag_option(key, value, escape)
33
- end
34
- end
35
-
36
- def boolean_tag_option(key)
37
- %(#{key}="#{key}")
38
- end
39
-
40
- def tag_option(key, value, escape)
41
- value = value.join(" ") if value.is_a?(Array)
42
- value = ERB::Util.h(value) if escape
43
- %(#{key}="#{value}")
44
- end
45
- end