insist 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,17 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- insist (0.0.4)
5
- cabin (> 0)
4
+ insist (0.0.5)
6
5
 
7
6
  GEM
8
7
  remote: http://rubygems.org/
9
8
  specs:
10
- cabin (0.4.3)
11
- json
12
9
  diff-lcs (1.1.3)
13
- json (1.6.5)
14
- json (1.6.5-java)
15
10
  rspec (2.8.0)
16
11
  rspec-core (~> 2.8.0)
17
12
  rspec-expectations (~> 2.8.0)
data/README.md CHANGED
@@ -31,7 +31,7 @@ can just do the usual '==' and other methods on it:
31
31
  describe "thing" do
32
32
  subject { insist { "whoa!" } }
33
33
 
34
- it "should be, like, awesome!"
34
+ it "should be, like, awesome!" do
35
35
  subject == "awesome!"
36
36
  end
37
37
  end
@@ -2,7 +2,7 @@ Gem::Specification.new do |spec|
2
2
  files = %x{git ls-files}.split("\n")
3
3
 
4
4
  spec.name = "insist"
5
- spec.version = "0.0.5"
5
+ spec.version = "0.0.6"
6
6
  spec.summary = "A simple block-driven assertion library for both testing and for production code"
7
7
  spec.description = spec.summary
8
8
  spec.license = "none chosen yet"
@@ -49,6 +49,13 @@ class Insist
49
49
  end # def value
50
50
  end # class Insist
51
51
 
52
+ # Like Insist, but rejects (fails) on truthy values instead falsey ones.
53
+ class Reject < Insist
54
+ def assert(truthy, message)
55
+ raise Insist::Failure.new(message) if truthy
56
+ end # def assert
57
+ end # class Reject
58
+
52
59
  module Kernel
53
60
  # A shortcut to 'Insist.new'
54
61
  #
@@ -58,4 +65,17 @@ module Kernel
58
65
  def insist(&block)
59
66
  return Insist.new(&block)
60
67
  end # def insist
68
+
69
+ # A shortcut to 'Reject.new'
70
+ #
71
+ # Example:
72
+ #
73
+ # # This will fail (raises Insist::Failure)
74
+ # reject { [1,2,3,4] }.include?(3)
75
+ #
76
+ # # This will succeed
77
+ # reject { [1,2,3,4] }.include?(4)
78
+ def reject(&block)
79
+ return Reject.new(&block)
80
+ end # def reject
61
81
  end # module Kernel
@@ -0,0 +1,18 @@
1
+ require "spec_setup"
2
+ require "insist"
3
+
4
+ describe Insist::Comparators do
5
+ subject do
6
+ reject { [1,2,3] }
7
+ end
8
+
9
+ describe "#include?" do
10
+ it "should fail if the include? returns true" do
11
+ insist { subject.include?(2) }.fails
12
+ end
13
+
14
+ it "should succeed if include? returns false" do
15
+ subject.include?(4)
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,84 +1,79 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: insist
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
4
5
  prerelease:
5
- version: 0.0.5
6
6
  platform: ruby
7
- authors:
8
- - Jordan Sissel
7
+ authors:
8
+ - Jordan Sissel
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-03-19 00:00:00 Z
12
+ date: 2012-08-30 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
- description: A simple block-driven assertion library for both testing and for production code
17
- email:
18
- - jls@semicomplete.com
14
+ description: A simple block-driven assertion library for both testing and for production
15
+ code
16
+ email:
17
+ - jls@semicomplete.com
19
18
  executables: []
20
-
21
19
  extensions: []
22
-
23
20
  extra_rdoc_files: []
24
-
25
- files:
26
- - .batcave/manifest
27
- - .gitignore
28
- - .travis.yml
29
- - Gemfile
30
- - Gemfile.lock
31
- - Makefile
32
- - README.md
33
- - insist.gemspec
34
- - lib/insist.rb
35
- - lib/insist/assert.rb
36
- - lib/insist/comparators.rb
37
- - lib/insist/comparators19.rb
38
- - lib/insist/enumerables.rb
39
- - lib/insist/failure.rb
40
- - lib/insist/namespace.rb
41
- - lib/insist/nil.rb
42
- - lib/insist/predicates.rb
43
- - lib/insist/raises.rb
44
- - notify-failure.sh
45
- - spec/insist/comparators_spec.rb
46
- - spec/insist/enumerables_spec.rb
47
- - spec/insist/nil_spec.rb
48
- - spec/insist/predicates_spec.rb
49
- - spec/insist_spec.rb
50
- - spec/spec_setup.rb
51
- - test/all.rb
52
- - test/docs.rb
53
- - test/testing.rb
21
+ files:
22
+ - .batcave/manifest
23
+ - .gitignore
24
+ - .travis.yml
25
+ - Gemfile
26
+ - Gemfile.lock
27
+ - Makefile
28
+ - README.md
29
+ - insist.gemspec
30
+ - lib/insist.rb
31
+ - lib/insist/assert.rb
32
+ - lib/insist/comparators.rb
33
+ - lib/insist/comparators19.rb
34
+ - lib/insist/enumerables.rb
35
+ - lib/insist/failure.rb
36
+ - lib/insist/namespace.rb
37
+ - lib/insist/nil.rb
38
+ - lib/insist/predicates.rb
39
+ - lib/insist/raises.rb
40
+ - notify-failure.sh
41
+ - spec/insist/comparators_spec.rb
42
+ - spec/insist/enumerables_spec.rb
43
+ - spec/insist/nil_spec.rb
44
+ - spec/insist/predicates_spec.rb
45
+ - spec/insist/reject_spec.rb
46
+ - spec/insist_spec.rb
47
+ - spec/spec_setup.rb
48
+ - test/all.rb
49
+ - test/docs.rb
50
+ - test/testing.rb
54
51
  homepage:
55
- licenses:
56
- - none chosen yet
52
+ licenses:
53
+ - none chosen yet
57
54
  post_install_message:
58
55
  rdoc_options: []
59
-
60
- require_paths:
61
- - lib
62
- - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
56
+ require_paths:
57
+ - lib
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
64
60
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
66
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: "0"
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
75
71
  requirements: []
76
-
77
72
  rubyforge_project:
78
- rubygems_version: 1.8.15
73
+ rubygems_version: 1.8.24
79
74
  signing_key:
80
75
  specification_version: 3
81
- summary: A simple block-driven assertion library for both testing and for production code
76
+ summary: A simple block-driven assertion library for both testing and for production
77
+ code
82
78
  test_files: []
83
-
84
79
  has_rdoc: