contractinator 0.1.5 → 0.1.6

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: 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!