active-component 0.1.3 → 0.1.4

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: cbb5b87d66dd76ede2b38494bcf4c7312d061a7a
4
- data.tar.gz: 379c7e842e21638d99ae5bafe19a1affb8850d1d
3
+ metadata.gz: 12b98862901db5f269ab90cb2cc2fc8d1736cf36
4
+ data.tar.gz: ca0037e4db1b85b689b60ac972c59ad94c67a9c6
5
5
  SHA512:
6
- metadata.gz: c8f6f43358828754a9578dc8bf25af4ec2a73c902d4493f5ef318216bb1c484294a9d67b707d8cfb260ac3562f6f3004da42a39abeb40a0758dc4ddb8278edbd
7
- data.tar.gz: 058879ae9fc098a721a34b99caa2535cd1a9276ad6fc96e96e44fd8fdcafc7655490597fd59acc6a6c033bbecefee078d7d0c4f4e2d62baaaf00418b73fab787
6
+ metadata.gz: 4da2ca99d464aeb5e4379634bc6f412b128408164e94a2c75a2f05836b4d2f13fc30cb48c6e2ebd9fc13d7d3ba36594e749398d1d2e8efc3e39eee38050fdb26
7
+ data.tar.gz: 9551697868ed3d380cee267301f74460334959f4a2125f1a4b7b82e04cdde782795cbe6169181dfc596c51e392e68a442629ed00cd811c10e89f4520a2f5b9de
@@ -0,0 +1,50 @@
1
+ #.
2
+ # This provides a method camelize and constantize
3
+ #
4
+ module ActiveComponent
5
+ module Inflections
6
+
7
+ def constantize
8
+ names = camel_cased_word.split('::')
9
+
10
+ # Trigger a builtin NameError exception including the ill-formed constant in the message.
11
+ Object.const_get(camel_cased_word) if names.empty?
12
+
13
+ # Remove the first blank element in case of '::ClassName' notation.
14
+ names.shift if names.size > 1 && names.first.empty?
15
+
16
+ names.inject(Object) do |constant, name|
17
+ if constant == Object
18
+ constant.const_get(name)
19
+ else
20
+ candidate = constant.const_get(name)
21
+ next candidate if constant.const_defined?(name, false)
22
+ next candidate unless Object.const_defined?(name)
23
+
24
+ # Go down the ancestors to check it it's owned
25
+ # directly before we reach Object or the end of ancestors.
26
+ constant = constant.ancestors.inject do |const, ancestor|
27
+ break const if ancestor == Object
28
+ break ancestor if ancestor.const_defined?(name, false)
29
+ const
30
+ end
31
+
32
+ # owner is in Object, so raise
33
+ constant.const_get(name, false)
34
+ end
35
+ end
36
+ end
37
+
38
+ def camelize
39
+ string = term.to_s
40
+ if uppercase_first_letter
41
+ string = string.sub(/^[a-z\d]*/) { inflections.acronyms[$&] || $&.capitalize }
42
+ else
43
+ string = string.sub(/^(?:#{inflections.acronym_regex}(?=\b|[A-Z_])|\w)/) { $&.downcase }
44
+ end
45
+ string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{inflections.acronyms[$2] || $2.capitalize}" }
46
+ string.gsub!('/', '::')
47
+ string
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveComponent
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+ require 'rack/test'
3
+
4
+ class ActiveComponent::InflectionsTest < Test::Unit::TestCase
5
+ include Rack::Test::Methods
6
+
7
+ def test_active_component_constantize
8
+ text = "FooComponent"
9
+ assert_equal FooComponent, text.constantize
10
+ end
11
+
12
+ def test_active_component_camelize
13
+ text = 'foo_component'
14
+ assert_equal 'FooComponent', text.camelize
15
+ end
16
+
17
+ def test_active_component_camelize_constantize
18
+ text = 'foo_component'
19
+ assert_equal FooComponent, text.camelize.constantize
20
+ end
21
+ end
@@ -54,7 +54,7 @@ class ActiveComponent::RenderableTest < ActiveSupport::TestCase
54
54
  end
55
55
 
56
56
  test "it returns a string from the template" do
57
- string = @view.send(:template, :foo, :bar => "Hello world!")
57
+ string = @view.send(:element, :foo, :bar => "Hello world!")
58
58
  assert_equal "<div>Hello world!</div>", string
59
59
  end
60
60
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-component
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antonio Chavez
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-11 00:00:00.000000000 Z
12
+ date: 2013-10-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mustache
@@ -133,6 +133,7 @@ extra_rdoc_files: []
133
133
  files:
134
134
  - lib/active_component/base.rb
135
135
  - lib/active_component/context.rb
136
+ - lib/active_component/inflections.rb
136
137
  - lib/active_component/railtie.rb
137
138
  - lib/active_component/renderable.rb
138
139
  - lib/active_component/version.rb
@@ -145,6 +146,7 @@ files:
145
146
  - Rakefile
146
147
  - test/active_component/base_test.rb
147
148
  - test/active_component/context_test.rb
149
+ - test/active_component/inflections_test.rb
148
150
  - test/active_component/railtie_test.rb
149
151
  - test/active_component/renderable_test.rb
150
152
  - test/active_component_test.rb
@@ -182,6 +184,7 @@ summary: A View-Component framework for Rails applications.
182
184
  test_files:
183
185
  - test/active_component/base_test.rb
184
186
  - test/active_component/context_test.rb
187
+ - test/active_component/inflections_test.rb
185
188
  - test/active_component/railtie_test.rb
186
189
  - test/active_component/renderable_test.rb
187
190
  - test/active_component_test.rb
@@ -192,4 +195,3 @@ test_files:
192
195
  - test/support/foo_controller.rb
193
196
  - test/support/foo_sinatra.rb
194
197
  - test/test_helper.rb
195
- has_rdoc: