contractinator 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ec84970a63096af873fe2392b3ca1f02b2c7e1d
4
- data.tar.gz: 6d70e52f2ad58bc4a58eecbecc4ea4f0ec41a89c
3
+ metadata.gz: a4ac9c5aed456658b9b938a2570b502c9d90bef8
4
+ data.tar.gz: 5caea8de6ac2d5321c658f0d58264f7dd68dce2e
5
5
  SHA512:
6
- metadata.gz: e8e4e12538c51b1396eee7c449950e672dd8d8772de2e3314fa4a3a282a76d6d7ab06cf30deb3650b986086b30bdef36f04d188cab20a36cf6ddbf5f42ee196d
7
- data.tar.gz: 7d045e37fd9984714ceda3d24ca0b7d75665cbe93c3efc820734b06ac308000abb2a114a5fd17f2468d5cbc6af646f4e1cfb6e9b034adc9319e7797f3ae245a4
6
+ metadata.gz: 956417a5d7bf12e8e131f065f9c29a61aa9bc95b990c79697ce4e9926c4ea0d0bee848e790e93dc906723c98cd8778453138d0a34e0715664ac4a79614ecd332
7
+ data.tar.gz: b302a5bb3d75d1d2586d43b7202f7ea2840f581a9d78c66ed6002d153fcd07d18b99e01a7e1d56926e48816bf90bbd87706289ed30e536d8028438203e5f125e
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in contractinator.gemspec
4
3
  gemspec
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "rspec", "~> 3.0"
22
+ spec.add_dependency "rspec-mocks", "~> 3.0"
22
23
  spec.add_development_dependency "bundler", "~> 1.11"
23
24
  spec.add_development_dependency "rake", "~> 10.0"
24
25
  end
@@ -5,6 +5,8 @@ require_relative 'core_extensions/object'
5
5
  require_relative 'core_extensions/symbol'
6
6
  require_relative 'core_extensions/string'
7
7
  require_relative 'core_extensions/nil_class'
8
+ require_relative 'core_extensions/true_class'
9
+ require_relative 'core_extensions/false_class'
8
10
 
9
11
  module Contractinator
10
12
  ::Object.include(CoreExtensions::Object)
@@ -15,4 +17,6 @@ module Contractinator
15
17
  ::String.include(CoreExtensions::String)
16
18
  ::Symbol.include(CoreExtensions::Symbol)
17
19
  ::NilClass.include(CoreExtensions::NilClass)
20
+ ::TrueClass.include(CoreExtensions::TrueClass)
21
+ ::FalseClass.include(CoreExtensions::FalseClass)
18
22
  end
@@ -2,8 +2,12 @@ module Contractinator
2
2
  module CoreExtensions
3
3
  module Array
4
4
  def contract_inspect
5
- values = map(&:contract_inspect).join(', ')
6
- "[#{values}]"
5
+ if any?
6
+ values = map(&:contract_inspect).uniq.join(', ')
7
+ "[some #{values}]"
8
+ else
9
+ '[empty]'
10
+ end
7
11
  end
8
12
  end
9
13
  end
@@ -10,9 +10,13 @@ module Contractinator
10
10
  end
11
11
 
12
12
  def instance_contract_inspect
13
- class_contract_inspect.gsub(/([a-z])([A-Z])/) do |p, n|
14
- "#{p}_#{n.downcase}"
15
- end.downcase
13
+ underscore(class_contract_inspect)
14
+ end
15
+
16
+ def underscore(string)
17
+ string.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
18
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
19
+ downcase
16
20
  end
17
21
  end
18
22
  end
@@ -0,0 +1,9 @@
1
+ module Contractinator
2
+ module CoreExtensions
3
+ module FalseClass
4
+ def contract_inspect
5
+ 'bool'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Contractinator
2
+ module CoreExtensions
3
+ module TrueClass
4
+ def contract_inspect
5
+ 'bool'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Contractinator
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contractinator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ehren Murdick
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2016-02-19 00:00:00.000000000 Z
14
+ date: 2016-04-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -27,6 +27,20 @@ dependencies:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec-mocks
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '3.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.0'
30
44
  - !ruby/object:Gem::Dependency
31
45
  name: bundler
32
46
  requirement: !ruby/object:Gem::Requirement
@@ -79,11 +93,13 @@ files:
79
93
  - lib/contractinator/core_extensions.rb
80
94
  - lib/contractinator/core_extensions/array.rb
81
95
  - lib/contractinator/core_extensions/class.rb
96
+ - lib/contractinator/core_extensions/false_class.rb
82
97
  - lib/contractinator/core_extensions/hash.rb
83
98
  - lib/contractinator/core_extensions/nil_class.rb
84
99
  - lib/contractinator/core_extensions/object.rb
85
100
  - lib/contractinator/core_extensions/string.rb
86
101
  - lib/contractinator/core_extensions/symbol.rb
102
+ - lib/contractinator/core_extensions/true_class.rb
87
103
  - lib/contractinator/rspec_extensions.rb
88
104
  - lib/contractinator/rspec_extensions/double.rb
89
105
  - lib/contractinator/version.rb
@@ -107,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
123
  version: '0'
108
124
  requirements: []
109
125
  rubyforge_project:
110
- rubygems_version: 2.4.5.1
126
+ rubygems_version: 2.4.5
111
127
  signing_key:
112
128
  specification_version: 4
113
129
  summary: Contractinator is a tool for contract-driven development!