something_and_nothing 0.1.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.
@@ -0,0 +1,8 @@
1
+ Rakefile
2
+ lib/something_and_nothing.rb
3
+ lib/something_and_nothing/list_display_helper.rb
4
+ lib/something_and_nothing/view_helper.rb
5
+ spec/something_and_nothing/list_display_helper_spec.rb
6
+ spec/something_and_nothing/view_helper_spec.rb
7
+ tasks/rspec.rake
8
+ Manifest
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Dir['tasks/**/*.rake'].each { |t| load t }
6
+
7
+ Echoe.new('something_and_nothing', '0.1.0') do |p|
8
+ p.description = "Helps display array results in action view"
9
+ p.url = "http://github.com/robertoles/something_and_nothing"
10
+ p.author = "Robert Oles"
11
+ p.email = "robertoles@me.com"
12
+ p.ignore_pattern = ["tmp/*", "script/*", "spec/*"]
13
+ p.development_dependencies = []
14
+ end
@@ -0,0 +1,17 @@
1
+ require 'actionpack'
2
+ require 'action_view'
3
+ require 'something_and_nothing/view_helper'
4
+
5
+ module SomethingAndNothing
6
+ class << self
7
+ def enable_actionview
8
+ return if ActionView::Base.include? SomethingAndNothing::ViewHelper
9
+ require 'something_and_nothing/view_helper'
10
+ ActionView::Base.send :include, ViewHelper
11
+ end
12
+ end
13
+ end
14
+
15
+ if defined? ActionView
16
+ SomethingAndNothing.enable_actionview
17
+ end
@@ -0,0 +1,25 @@
1
+ module SomethingAndNothing
2
+ class ListDisplayHelper
3
+ attr_reader :list
4
+
5
+ def initialize(list)
6
+ @list = list
7
+ end
8
+
9
+ def populated
10
+ yield if block_given? && @list.length > 0
11
+ end
12
+
13
+ def unpopulated
14
+ yield if block_given? && @list.length == 0
15
+ end
16
+
17
+ def single
18
+ yield if block_given? && @list.length == 1
19
+ end
20
+
21
+ def more_than_one
22
+ yield if block_given? && @list.length > 1
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,8 @@
1
+ module SomethingAndNothing
2
+ module ViewHelper
3
+ def display_for(array)
4
+ yield ListDisplayHelper.new(array) if block_given?
5
+ end
6
+ alias_method :display_content_for, :display_for
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{something_and_nothing}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Robert Oles"]
9
+ s.date = %q{2010-02-08}
10
+ s.description = %q{Helps display array results in action view}
11
+ s.email = %q{robertoles@me.com}
12
+ s.extra_rdoc_files = ["lib/something_and_nothing.rb", "lib/something_and_nothing/list_display_helper.rb", "lib/something_and_nothing/view_helper.rb", "tasks/rspec.rake"]
13
+ s.files = ["Rakefile", "lib/something_and_nothing.rb", "lib/something_and_nothing/list_display_helper.rb", "lib/something_and_nothing/view_helper.rb", "spec/something_and_nothing/list_display_helper_spec.rb", "spec/something_and_nothing/view_helper_spec.rb", "tasks/rspec.rake", "Manifest", "something_and_nothing.gemspec"]
14
+ s.homepage = %q{http://github.com/robertoles/something_and_nothing}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Something_and_nothing", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{something_and_nothing}
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{Helps display array results in action view}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ else
27
+ end
28
+ else
29
+ end
30
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe SomethingAndNothing::ListDisplayHelper do
4
+ describe "#populated" do
5
+ it "should yield result if array has any elements" do
6
+ SomethingAndNothing::ListDisplayHelper.new([1]).populated {"result"}.should == "result"
7
+ end
8
+
9
+ it "should not yield the result if the array has no elements" do
10
+ SomethingAndNothing::ListDisplayHelper.new([]).populated {"result"}.should be_nil
11
+ end
12
+ end
13
+
14
+ describe "#unpopulated" do
15
+ it "should yield result if array has no elements" do
16
+ SomethingAndNothing::ListDisplayHelper.new([]).unpopulated {"result"}.should == "result"
17
+ end
18
+
19
+ it "should not yield result if array has elements" do
20
+ SomethingAndNothing::ListDisplayHelper.new([1]).unpopulated {"result"}.should be_nil
21
+ end
22
+ end
23
+
24
+ describe "#single" do
25
+ it "should yield result if array has single element" do
26
+ SomethingAndNothing::ListDisplayHelper.new([1]).single {"result"}.should == "result"
27
+ end
28
+
29
+ it "should not yield result if array more than one" do
30
+ SomethingAndNothing::ListDisplayHelper.new([1,2]).single {"result"}.should be_nil
31
+ end
32
+
33
+ it "should not yield result if array has no elements" do
34
+ SomethingAndNothing::ListDisplayHelper.new([]).single {"result"}.should be_nil
35
+ end
36
+ end
37
+
38
+ describe "#more_than_one" do
39
+ it "should yield result if array has more than one element" do
40
+ SomethingAndNothing::ListDisplayHelper.new([1,2]).more_than_one {"result"}.should == "result"
41
+ end
42
+
43
+ it "should not yield result if array has single element" do
44
+ SomethingAndNothing::ListDisplayHelper.new([1]).more_than_one {"result"}.should be_nil
45
+ end
46
+
47
+ it "should not yield result if array has no elements" do
48
+ SomethingAndNothing::ListDisplayHelper.new([]).more_than_one {"result"}.should be_nil
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec/spec_helper'
2
+ include SomethingAndNothing::ViewHelper
3
+
4
+ describe SomethingAndNothing::ViewHelper do
5
+ describe "#display_for" do
6
+ it "yields an instance of ListDisplayHelper" do
7
+ display_for [] do |result|
8
+ result.should be_instance_of(SomethingAndNothing::ListDisplayHelper)
9
+ end
10
+ end
11
+
12
+ it "should set the array used for the list helper" do
13
+ list = []
14
+ display_for list do |result|
15
+ result.list.should equal(list)
16
+ end
17
+ end
18
+
19
+ it "should respond to display_content_for" do
20
+ SomethingAndNothing::ViewHelper.respond_to?(:display_content_for).should be_true
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ["-c"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: something_and_nothing
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Robert Oles
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-08 00:00:00 +00:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Helps display array results in action view
17
+ email: robertoles@me.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - lib/something_and_nothing.rb
24
+ - lib/something_and_nothing/list_display_helper.rb
25
+ - lib/something_and_nothing/view_helper.rb
26
+ - tasks/rspec.rake
27
+ files:
28
+ - Rakefile
29
+ - lib/something_and_nothing.rb
30
+ - lib/something_and_nothing/list_display_helper.rb
31
+ - lib/something_and_nothing/view_helper.rb
32
+ - spec/something_and_nothing/list_display_helper_spec.rb
33
+ - spec/something_and_nothing/view_helper_spec.rb
34
+ - tasks/rspec.rake
35
+ - Manifest
36
+ - something_and_nothing.gemspec
37
+ has_rdoc: true
38
+ homepage: http://github.com/robertoles/something_and_nothing
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options:
43
+ - --line-numbers
44
+ - --inline-source
45
+ - --title
46
+ - Something_and_nothing
47
+ - --main
48
+ - README.rdoc
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ version:
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "1.2"
62
+ version:
63
+ requirements: []
64
+
65
+ rubyforge_project: something_and_nothing
66
+ rubygems_version: 1.3.5
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: Helps display array results in action view
70
+ test_files: []
71
+