json-spec 0.1.0 → 0.1.1
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 +4 -4
- data/.travis.yml +13 -0
- data/Gemfile +3 -0
- data/README.md +27 -26
- data/cachivache/.gitignore +1 -1
- data/cachivache/README.md +176 -96
- data/cachivache/Rakefile +18 -9
- data/cachivache/Vagrantfile +3 -3
- data/cachivache/cachivache.rb +4 -6
- data/cachivache/lib/rake-helper.rb +27 -105
- data/cachivache/lib/shell-contexts/shell-context.rb +63 -0
- data/cachivache/lib/shell-contexts/shell-exec.rb +19 -0
- data/cachivache/lib/shell-contexts/shell_buffer.rb +25 -0
- data/cachivache/lib/shell-contexts/shell_debugger.rb +11 -0
- data/cachivache/lib/{sh-file-context.rb → shell-file-context.rb} +13 -16
- data/cachivache/lib/shell-if-context.rb +21 -0
- data/cachivache/lib/stuff-api-behaviour.rb +145 -0
- data/cachivache/lib/stuff-configuration.rb +55 -0
- data/cachivache/lib/stuff-reminders-behaviour.rb +11 -0
- data/cachivache/stuff/ruby-json-spec.rb +10 -14
- data/json-spec.gemspec +4 -2
- data/lib/cabeza-de-termo/json-spec/expectations-library/default-expectations/default-expectations-mapping.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expectations-library/definition-builders/expectation-builders/expectations-definition-builder.rb +2 -2
- data/lib/cabeza-de-termo/json-spec/expectations-library/definition-builders/expectation-library-definition-builder.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expectations-library/definition-builders/modifier-builders/modifiers-definition-builder.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expectations-library/expectations-library.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-any-of.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-each-field.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-each.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-expression.rb +2 -2
- data/lib/cabeza-de-termo/json-spec/expressions/json-field.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-list.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-object.rb +1 -1
- data/lib/cabeza-de-termo/json-spec/expressions/json-spec.rb +4 -4
- data/lib/cabeza-de-termo/json-spec/version.rb +1 -1
- metadata +27 -21
- data/cachivache/lib/let-behaviour.rb +0 -27
- data/cachivache/lib/sh-if-context.rb +0 -31
- data/lib/cabeza-de-termo/json-spec/utilities/bind.rb +0 -20
@@ -0,0 +1,55 @@
|
|
1
|
+
module Stuff
|
2
|
+
class Configuration
|
3
|
+
# Class methods
|
4
|
+
class << self
|
5
|
+
def variables()
|
6
|
+
@variables ||= {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def has_variable?(name)
|
10
|
+
variables.key?(name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def is_defined?(name)
|
14
|
+
has_variable?(name) && !self[name].nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
def let(name, &block)
|
18
|
+
variables[name] = block
|
19
|
+
end
|
20
|
+
|
21
|
+
def [](name)
|
22
|
+
raise "Can't find variable named #{name.inspect}" unless has_variable?(name)
|
23
|
+
variables[name].call
|
24
|
+
end
|
25
|
+
|
26
|
+
protected
|
27
|
+
|
28
|
+
def method_missing(name, *more_args, &block)
|
29
|
+
return self[name] if more_args.empty? && block.nil?
|
30
|
+
|
31
|
+
super(name, *more_args, &block)
|
32
|
+
end
|
33
|
+
|
34
|
+
public
|
35
|
+
|
36
|
+
def class_named(class_name)
|
37
|
+
Object.const_get(class_name)
|
38
|
+
end
|
39
|
+
|
40
|
+
def ensure_subclass_exists(class_name)
|
41
|
+
define_subclass(class_name) unless is_class_defined?(class_name)
|
42
|
+
end
|
43
|
+
|
44
|
+
protected
|
45
|
+
|
46
|
+
def is_class_defined?(name)
|
47
|
+
Object.const_defined?(name)
|
48
|
+
end
|
49
|
+
|
50
|
+
def define_subclass(name)
|
51
|
+
Object.const_set(name, Class.new(self))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -1,22 +1,18 @@
|
|
1
1
|
dependencies = [
|
2
|
-
:
|
2
|
+
:'projects-setup',
|
3
3
|
:ruby
|
4
4
|
]
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
cd #{RubyJsonSpec.project_folder}
|
6
|
+
desc 'Install ruby-json-spec'
|
7
|
+
stuff :'ruby-json-spec' => dependencies do
|
8
|
+
shell %Q{
|
9
|
+
cd #{RubyJsonSpec.project_folder}
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
11
|
+
bundle install
|
12
|
+
rake test
|
13
|
+
}
|
16
14
|
end
|
17
15
|
|
18
|
-
|
19
|
-
include LetBehaviour
|
20
|
-
|
16
|
+
configure :RubyJsonSpec do
|
21
17
|
let(:project_folder) { Cachivache.src_folder }
|
22
|
-
end
|
18
|
+
end
|
data/json-spec.gemspec
CHANGED
@@ -19,11 +19,13 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
+
spec.required_ruby_version = '>= 2.0'
|
23
|
+
|
24
|
+
spec.add_dependency "cdt-utilities", '~> 0.1'
|
22
25
|
spec.add_dependency "validates_email_format_of", "~> 1.6"
|
23
26
|
|
24
27
|
spec.add_development_dependency "bundler", "~> 1.10"
|
25
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
29
|
spec.add_development_dependency "minitest"
|
27
30
|
spec.add_development_dependency "colorize"
|
28
|
-
|
29
|
-
end
|
31
|
+
end
|
@@ -47,7 +47,7 @@ module CabezaDeTermo
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def for_every_expression_of(json_expression_type, &block)
|
50
|
-
|
50
|
+
CdT.bind_evaluation_of block, to: DefaultExpectationBuilder.new(self, json_expression_type)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -19,7 +19,7 @@ module CabezaDeTermo
|
|
19
19
|
@expectations_library = expectations_library
|
20
20
|
reset_current_definition
|
21
21
|
|
22
|
-
|
22
|
+
CdT.bind_evaluation_of block, to: self
|
23
23
|
end
|
24
24
|
|
25
25
|
# Accessing
|
@@ -57,7 +57,7 @@ module CabezaDeTermo
|
|
57
57
|
def define(method_name, &block)
|
58
58
|
@method_name = method_name.to_sym
|
59
59
|
|
60
|
-
|
60
|
+
CdT.bind_evaluation_of block, to: self
|
61
61
|
|
62
62
|
define_expectation_in_library
|
63
63
|
define_expectation_message_in_library
|
@@ -34,7 +34,7 @@ module CabezaDeTermo
|
|
34
34
|
def expect_a(type, &block)
|
35
35
|
expression = add_posibble_expression( new_expression_for(type) )
|
36
36
|
|
37
|
-
|
37
|
+
CdT.bind_evaluation_of block, to: self unless block.nil?
|
38
38
|
|
39
39
|
expression
|
40
40
|
end
|
@@ -43,7 +43,7 @@ module CabezaDeTermo
|
|
43
43
|
def expect_a(type, &block)
|
44
44
|
@value_expression = new_expression_for(type)
|
45
45
|
|
46
|
-
|
46
|
+
CdT.bind_evaluation_of block, to: @value_expression unless block.nil?
|
47
47
|
|
48
48
|
@value_expression
|
49
49
|
end
|
@@ -43,7 +43,7 @@ module CabezaDeTermo
|
|
43
43
|
def expect_a(type, &block)
|
44
44
|
@each_item_expression = new_expression_for(type)
|
45
45
|
|
46
|
-
|
46
|
+
CdT.bind_evaluation_of block, to: @each_item_expression unless block.nil?
|
47
47
|
|
48
48
|
@each_item_expression
|
49
49
|
end
|
@@ -158,7 +158,7 @@ module CabezaDeTermo
|
|
158
158
|
|
159
159
|
add_expectation(expectation)
|
160
160
|
|
161
|
-
|
161
|
+
CdT.bind_evaluation_of message.block, to: self unless message.block.nil?
|
162
162
|
|
163
163
|
self
|
164
164
|
end
|
@@ -178,7 +178,7 @@ module CabezaDeTermo
|
|
178
178
|
|
179
179
|
run_modifier(modifier)
|
180
180
|
|
181
|
-
|
181
|
+
CdT.bind_evaluation_of message.block, to: self unless message.block.nil?
|
182
182
|
|
183
183
|
self
|
184
184
|
end
|
@@ -34,7 +34,7 @@ module CabezaDeTermo
|
|
34
34
|
|
35
35
|
def to_be_a(type, &block)
|
36
36
|
expression = set_value_expression( new_expression_for(type) )
|
37
|
-
|
37
|
+
CdT.bind_evaluation_of block, to: expression unless block.nil?
|
38
38
|
expression
|
39
39
|
end
|
40
40
|
|
@@ -61,7 +61,7 @@ module CabezaDeTermo
|
|
61
61
|
def each_field(&block)
|
62
62
|
@each_field_expression = new_each_field
|
63
63
|
|
64
|
-
|
64
|
+
CdT.bind_evaluation_of block, to: @each_field_expression unless block.nil?
|
65
65
|
|
66
66
|
@each_field_expression
|
67
67
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
-
require
|
2
|
+
require 'cdt/utilities/bind'
|
3
3
|
require "cabeza-de-termo/json-spec/expectations-library/expectations-library"
|
4
4
|
require "cabeza-de-termo/json-spec/walkers/validator/json-validator"
|
5
5
|
|
@@ -25,7 +25,7 @@ module CabezaDeTermo
|
|
25
25
|
@expectation_messages_mapping = new_expectations_messages_mapping
|
26
26
|
@default_expectations = new_default_expectations_mapping
|
27
27
|
|
28
|
-
|
28
|
+
CdT.bind_evaluation_of block, to: self unless block.nil?
|
29
29
|
end
|
30
30
|
|
31
31
|
# Accessing
|
@@ -49,7 +49,7 @@ module CabezaDeTermo
|
|
49
49
|
# Default expectations
|
50
50
|
|
51
51
|
def define(&block)
|
52
|
-
|
52
|
+
CdT.bind_evaluation_of block, to: ExpectationLibraryDefinitionBuilder.new(self)
|
53
53
|
end
|
54
54
|
|
55
55
|
# Expectations
|
@@ -65,7 +65,7 @@ module CabezaDeTermo
|
|
65
65
|
def expect_a(type, &block)
|
66
66
|
@root_expression = new_expression_for(type)
|
67
67
|
|
68
|
-
|
68
|
+
CdT.bind_evaluation_of block, to: @root_expression unless block.nil?
|
69
69
|
|
70
70
|
@root_expression
|
71
71
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json-spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Rubi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cdt-utilities
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.1'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: validates_email_format_of
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +94,6 @@ dependencies:
|
|
80
94
|
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: simplecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
97
|
description: You can use this json expectations to validate jsons you send or receive
|
98
98
|
in your application, or to test your API with unit tests.
|
99
99
|
email:
|
@@ -104,6 +104,7 @@ extra_rdoc_files: []
|
|
104
104
|
files:
|
105
105
|
- ".gitignore"
|
106
106
|
- ".gitmodules"
|
107
|
+
- ".travis.yml"
|
107
108
|
- Gemfile
|
108
109
|
- LICENSE.txt
|
109
110
|
- README.md
|
@@ -115,10 +116,16 @@ files:
|
|
115
116
|
- cachivache/Rakefile
|
116
117
|
- cachivache/Vagrantfile
|
117
118
|
- cachivache/cachivache.rb
|
118
|
-
- cachivache/lib/let-behaviour.rb
|
119
119
|
- cachivache/lib/rake-helper.rb
|
120
|
-
- cachivache/lib/
|
121
|
-
- cachivache/lib/
|
120
|
+
- cachivache/lib/shell-contexts/shell-context.rb
|
121
|
+
- cachivache/lib/shell-contexts/shell-exec.rb
|
122
|
+
- cachivache/lib/shell-contexts/shell_buffer.rb
|
123
|
+
- cachivache/lib/shell-contexts/shell_debugger.rb
|
124
|
+
- cachivache/lib/shell-file-context.rb
|
125
|
+
- cachivache/lib/shell-if-context.rb
|
126
|
+
- cachivache/lib/stuff-api-behaviour.rb
|
127
|
+
- cachivache/lib/stuff-configuration.rb
|
128
|
+
- cachivache/lib/stuff-reminders-behaviour.rb
|
122
129
|
- cachivache/stuff/.gitkeep
|
123
130
|
- cachivache/stuff/ruby-json-spec.rb
|
124
131
|
- examples/example-1-simple.rb
|
@@ -200,7 +207,6 @@ files:
|
|
200
207
|
- lib/cabeza-de-termo/json-spec/modifiers/modifier-composite.rb
|
201
208
|
- lib/cabeza-de-termo/json-spec/signals/signal.rb
|
202
209
|
- lib/cabeza-de-termo/json-spec/signals/skip-branch-signal.rb
|
203
|
-
- lib/cabeza-de-termo/json-spec/utilities/bind.rb
|
204
210
|
- lib/cabeza-de-termo/json-spec/utilities/range.rb
|
205
211
|
- lib/cabeza-de-termo/json-spec/value-holders/accessors-chain.rb
|
206
212
|
- lib/cabeza-de-termo/json-spec/value-holders/missing-value.rb
|
@@ -226,7 +232,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
232
|
requirements:
|
227
233
|
- - ">="
|
228
234
|
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
235
|
+
version: '2.0'
|
230
236
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
237
|
requirements:
|
232
238
|
- - ">="
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module LetBehaviour
|
2
|
-
def self.included(base)
|
3
|
-
base.extend(self)
|
4
|
-
end
|
5
|
-
|
6
|
-
def variables()
|
7
|
-
@variables ||= {}
|
8
|
-
end
|
9
|
-
|
10
|
-
def has_variable?(name)
|
11
|
-
variables.key?(name)
|
12
|
-
end
|
13
|
-
|
14
|
-
def is_defined?(name)
|
15
|
-
has_variable?(name) && !variables[name].nil?
|
16
|
-
end
|
17
|
-
|
18
|
-
def let(name, &block)
|
19
|
-
variables[name] = block.call
|
20
|
-
end
|
21
|
-
|
22
|
-
def method_missing(method_name, *args, &block)
|
23
|
-
return variables[method_name] if has_variable?(method_name)
|
24
|
-
|
25
|
-
super(method_name, *args, &block)
|
26
|
-
end
|
27
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class ShIfContext
|
2
|
-
def self.with(args, &block)
|
3
|
-
new(args).evaluate_with block
|
4
|
-
end
|
5
|
-
|
6
|
-
def initialize(args)
|
7
|
-
@guard = args[:guard]
|
8
|
-
@text = ''
|
9
|
-
end
|
10
|
-
|
11
|
-
def text
|
12
|
-
@text
|
13
|
-
end
|
14
|
-
|
15
|
-
def evaluate_with(block)
|
16
|
-
self << "if #{@guard}; then"
|
17
|
-
|
18
|
-
instance_eval(&block)
|
19
|
-
|
20
|
-
self << "fi"
|
21
|
-
end
|
22
|
-
|
23
|
-
def sh(string)
|
24
|
-
self << string
|
25
|
-
end
|
26
|
-
|
27
|
-
def <<(string)
|
28
|
-
text << "\n" unless @text.empty?
|
29
|
-
text << string
|
30
|
-
end
|
31
|
-
end
|