blocks 2.2.1 → 2.3.0
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/CHANGELOG.rdoc +3 -0
- data/Gemfile +1 -0
- data/README.rdoc +7 -1
- data/VERSION +1 -1
- data/blocks.gemspec +5 -4
- data/lib/blocks.rb +1 -0
- data/lib/blocks/base.rb +5 -3
- data/lib/blocks/view_additions.rb +0 -8
- metadata +24 -12
- data/lib/blocks/proc_with_args.rb +0 -18
- data/spec/blocks/proc_with_args_spec.rb +0 -50
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
2.3.0 (August 27, 2013)
|
2
|
+
* Moved all of the call call_if_proc and call_each_hash_value_if_proc and ProcWithArgs class into a separate gem (https://github.com/hunterae/call_with_params), now a dependency.
|
3
|
+
|
1
4
|
2.2.0 (August 16, 2013)
|
2
5
|
* Moved evaluated_procs and evaulated_proc into their own class and renamed to call_each_hash_value and call and created view helpers called call_each_hash_value_if_proc and call_if_proc
|
3
6
|
|
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -1 +1,7 @@
|
|
1
|
-
|
1
|
+
= Blocks
|
2
|
+
|
3
|
+
How do you render your blocks of code?
|
4
|
+
|
5
|
+
The idea of this gem is simple (yet difficult to see the practical application for): blocks of code, regardless of code, whether they are a ruby block or a rails partial, are, or should be, completely interchangeable.
|
6
|
+
|
7
|
+
This gem seeks to set an order of precedence for how rails determines how to render a block of code.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.0
|
data/blocks.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "blocks"
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andrew Hunter"]
|
12
|
-
s.date = "2013-08-
|
12
|
+
s.date = "2013-08-27"
|
13
13
|
s.description = "Blocks goes beyond blocks and partials"
|
14
14
|
s.email = "hunterae@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -29,12 +29,10 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/blocks/base.rb",
|
30
30
|
"lib/blocks/container.rb",
|
31
31
|
"lib/blocks/controller_additions.rb",
|
32
|
-
"lib/blocks/proc_with_args.rb",
|
33
32
|
"lib/blocks/view_additions.rb",
|
34
33
|
"rails/init.rb",
|
35
34
|
"spec/blocks/base_spec.rb",
|
36
35
|
"spec/blocks/blocks_spec.rb",
|
37
|
-
"spec/blocks/proc_with_args_spec.rb",
|
38
36
|
"spec/blocks/view_additions_spec.rb",
|
39
37
|
"spec/spec_helper.rb"
|
40
38
|
]
|
@@ -49,17 +47,20 @@ Gem::Specification.new do |s|
|
|
49
47
|
|
50
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
49
|
s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
|
50
|
+
s.add_runtime_dependency(%q<call_with_params>, [">= 0"])
|
52
51
|
s.add_development_dependency(%q<bundler>, ["~> 1.1.5"])
|
53
52
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
54
53
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
55
54
|
else
|
56
55
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
56
|
+
s.add_dependency(%q<call_with_params>, [">= 0"])
|
57
57
|
s.add_dependency(%q<bundler>, ["~> 1.1.5"])
|
58
58
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
59
59
|
s.add_dependency(%q<rcov>, [">= 0"])
|
60
60
|
end
|
61
61
|
else
|
62
62
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
63
|
+
s.add_dependency(%q<call_with_params>, [">= 0"])
|
63
64
|
s.add_dependency(%q<bundler>, ["~> 1.1.5"])
|
64
65
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
65
66
|
s.add_dependency(%q<rcov>, [">= 0"])
|
data/lib/blocks.rb
CHANGED
data/lib/blocks/base.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Blocks
|
2
2
|
class Base
|
3
|
+
include CallWithParams
|
4
|
+
|
3
5
|
# a pointer to the ActionView that called Blocks
|
4
6
|
attr_accessor :view
|
5
7
|
|
@@ -57,7 +59,7 @@ module Blocks
|
|
57
59
|
|
58
60
|
if collection
|
59
61
|
collection.each do |object|
|
60
|
-
define(
|
62
|
+
define(call_with_params(name, object, options), options, &block)
|
61
63
|
end
|
62
64
|
else
|
63
65
|
self.define_block_container(name, options, &block)
|
@@ -155,7 +157,7 @@ module Blocks
|
|
155
157
|
cloned_options = cloned_options.merge(object.options) if object.is_a?(Blocks::Container)
|
156
158
|
cloned_args.push(cloned_options)
|
157
159
|
|
158
|
-
block_name =
|
160
|
+
block_name = call_with_params(name_or_container, *cloned_args)
|
159
161
|
as_name = (as.presence || block_name).to_sym
|
160
162
|
cloned_options[as_name] = object
|
161
163
|
|
@@ -657,7 +659,7 @@ module Blocks
|
|
657
659
|
|
658
660
|
def content_tag(tag, tag_html, *args, &block)
|
659
661
|
if tag
|
660
|
-
view.content_tag(tag, block.call,
|
662
|
+
view.content_tag(tag, block.call, call_each_hash_value_with_params(tag_html, *args))
|
661
663
|
else
|
662
664
|
block.call
|
663
665
|
end
|
@@ -7,14 +7,6 @@ module Blocks
|
|
7
7
|
@blocks.blocks.merge! @controller_blocks.blocks if @controller_blocks
|
8
8
|
@blocks
|
9
9
|
end
|
10
|
-
|
11
|
-
def call_if_proc(*args)
|
12
|
-
Blocks::ProcWithArgs.call(*args)
|
13
|
-
end
|
14
|
-
|
15
|
-
def call_each_hash_value_if_proc(*args)
|
16
|
-
Blocks::ProcWithArgs.call_each_hash_value(*args)
|
17
|
-
end
|
18
10
|
end
|
19
11
|
end
|
20
12
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 2.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 2.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Hunter
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-08-
|
18
|
+
date: 2013-08-27 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -35,6 +35,20 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
requirement: *id002
|
47
|
+
prerelease: false
|
48
|
+
name: call_with_params
|
49
|
+
type: :runtime
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
38
52
|
none: false
|
39
53
|
requirements:
|
40
54
|
- - ~>
|
@@ -45,12 +59,12 @@ dependencies:
|
|
45
59
|
- 1
|
46
60
|
- 5
|
47
61
|
version: 1.1.5
|
48
|
-
requirement: *
|
62
|
+
requirement: *id003
|
49
63
|
prerelease: false
|
50
64
|
name: bundler
|
51
65
|
type: :development
|
52
66
|
- !ruby/object:Gem::Dependency
|
53
|
-
version_requirements: &
|
67
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
54
68
|
none: false
|
55
69
|
requirements:
|
56
70
|
- - ~>
|
@@ -61,12 +75,12 @@ dependencies:
|
|
61
75
|
- 6
|
62
76
|
- 4
|
63
77
|
version: 1.6.4
|
64
|
-
requirement: *
|
78
|
+
requirement: *id004
|
65
79
|
prerelease: false
|
66
80
|
name: jeweler
|
67
81
|
type: :development
|
68
82
|
- !ruby/object:Gem::Dependency
|
69
|
-
version_requirements: &
|
83
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
70
84
|
none: false
|
71
85
|
requirements:
|
72
86
|
- - ">="
|
@@ -75,7 +89,7 @@ dependencies:
|
|
75
89
|
segments:
|
76
90
|
- 0
|
77
91
|
version: "0"
|
78
|
-
requirement: *
|
92
|
+
requirement: *id005
|
79
93
|
prerelease: false
|
80
94
|
name: rcov
|
81
95
|
type: :development
|
@@ -101,12 +115,10 @@ files:
|
|
101
115
|
- lib/blocks/base.rb
|
102
116
|
- lib/blocks/container.rb
|
103
117
|
- lib/blocks/controller_additions.rb
|
104
|
-
- lib/blocks/proc_with_args.rb
|
105
118
|
- lib/blocks/view_additions.rb
|
106
119
|
- rails/init.rb
|
107
120
|
- spec/blocks/base_spec.rb
|
108
121
|
- spec/blocks/blocks_spec.rb
|
109
|
-
- spec/blocks/proc_with_args_spec.rb
|
110
122
|
- spec/blocks/view_additions_spec.rb
|
111
123
|
- spec/spec_helper.rb
|
112
124
|
homepage: http://github.com/hunterae/blocks
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Blocks
|
2
|
-
class ProcWithArgs
|
3
|
-
def self.call(*args)
|
4
|
-
return nil unless args.present?
|
5
|
-
v = args.shift
|
6
|
-
v.is_a?(Proc) ? v.call(*(args[0, v.arity])) : v
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.call_each_hash_value(*args)
|
10
|
-
options = args.shift.presence || {}
|
11
|
-
if options.is_a?(Proc)
|
12
|
-
call(options, *args)
|
13
|
-
else
|
14
|
-
options.inject({}) { |hash, (k, v)| hash[k] = call(v, *args); hash}
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Blocks::ProcWithArgs do
|
4
|
-
before :each do
|
5
|
-
@view = ActionView::Base.new
|
6
|
-
end
|
7
|
-
|
8
|
-
describe "call_each_hash_value method" do
|
9
|
-
it "should evaluate any proc options" do
|
10
|
-
proc1 = lambda {@view.cycle("even", "odd")}
|
11
|
-
proc2 = lambda {@view.cycle("one", "two")}
|
12
|
-
evaluated_procs = Blocks::ProcWithArgs.call_each_hash_value(:class => proc1, :id => proc2, :style => "color:red")
|
13
|
-
evaluated_procs[:class].should eql "even"
|
14
|
-
evaluated_procs[:id].should eql "one"
|
15
|
-
evaluated_procs[:style].should eql "color:red"
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should pass any additional arguments to evaluated procs" do
|
19
|
-
proc1 = lambda { |param1, param2| "user_#{param1}_#{param2}"}
|
20
|
-
evaluated_procs = Blocks::ProcWithArgs.call_each_hash_value({:class => proc1}, 1, 2)
|
21
|
-
evaluated_procs[:class].should eql "user_1_2"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "call method" do
|
26
|
-
it "should evaluate a proc" do
|
27
|
-
proc = lambda {@view.cycle("even", "odd")}
|
28
|
-
Blocks::ProcWithArgs.call(proc).should eql "even"
|
29
|
-
Blocks::ProcWithArgs.call(proc).should eql "odd"
|
30
|
-
Blocks::ProcWithArgs.call(proc).should eql "even"
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should just return the value if it is not a proc" do
|
34
|
-
Blocks::ProcWithArgs.call("1234").should eql "1234"
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return nil if no arguments are specified" do
|
38
|
-
Blocks::ProcWithArgs.call.should be_nil
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should treat the first argument as the potential proc to evaluate" do
|
42
|
-
Blocks::ProcWithArgs.call(1, 2, 3).should eql 1
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should pass any additional arguments to the evaluated proc" do
|
46
|
-
proc1 = lambda { |param1, param2| "user_#{param1}_#{param2}"}
|
47
|
-
Blocks::ProcWithArgs.call(proc1, 1, 2).should eql "user_1_2"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|