usecase_tracer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5bb8736df1d14096db5ed85f3929c6cf7dff31c0
4
+ data.tar.gz: 0e06083cd346c9c864f74284f96874342e7c93a0
5
+ SHA512:
6
+ metadata.gz: 8e7f33ef63cb6d0b07513d84dc25a55bdb68ec59803b986a499d1ee7e519c7b2fbda4fcd815adb48bb63329c21e43ec1c200fe00132cb685754b2e6ffa930f3d
7
+ data.tar.gz: f3be850a3a6e21e9d17d8f766a0b588bf6703ead4e3cb4ddfe1de09ccb389e0adfecb43a705a91bf01eb04c2fb7036701fbe376356cdbe1f52329b13339ffa57
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: usecase_tracer.rb
4
+
5
+ require 'indented-tracer'
6
+
7
+ =begin
8
+
9
+ # example usecase
10
+
11
+ # description
12
+
13
+ usecase 'new day: create a new entry' do
14
+
15
+ # preparation (files to create in the
16
+ # /tmp directory, setting of the date etc.)
17
+
18
+ # intialisation
19
+ liveblog = LiveBlog.new
20
+
21
+ # setup (i.e. setting the date)
22
+
23
+ # conditions
24
+ if liveblog.date == Date.today and liveblog.today_exists? == false then
25
+
26
+ trace() do
27
+
28
+ # public method to be traced
29
+ s = '# Testing the liveblog #liveblog'
30
+ liveblog.add_entry(s)
31
+
32
+ end
33
+
34
+ # optional validator
35
+ html = File.read(File.join(path, 'index.html'))
36
+ html =~ /Testing the liveblog/ ? true : false
37
+
38
+ end
39
+
40
+ end # end of run
41
+ =end
42
+
43
+
44
+ class UsecaseTracer
45
+
46
+ attr_reader :tracelog, :testresult
47
+
48
+ @@classes = []
49
+
50
+ def initialize()
51
+
52
+ @usecases = []
53
+ cases()
54
+ @tracelog = []
55
+ @testresult = []
56
+
57
+
58
+ end
59
+
60
+ def self.class_tracer(*args)
61
+ a = *args
62
+ @@classes = a.map(&:to_s)
63
+ end
64
+
65
+ def classes()
66
+ @@classes
67
+ end
68
+
69
+ def run()
70
+
71
+ @usecases.each.with_index do |x, i|
72
+
73
+ desc, blk = x
74
+ @desc = desc
75
+ r = blk.call
76
+ @testresult << [i, r] if r.is_a?(TrueClass) or r.is_a?(FalseClass)
77
+
78
+ end
79
+
80
+ end
81
+
82
+ def passed?()
83
+ @testresult.map(&:last).all?
84
+ end
85
+
86
+ def trace()
87
+
88
+ it = IndentedTracer.new
89
+ it.classes = @@classes
90
+ it.on
91
+
92
+ yield
93
+
94
+ it.off
95
+ @tracelog << it.log(@desc, tags: classes())
96
+
97
+ end
98
+
99
+ private
100
+
101
+ # override this method with your own implementation of usecase methods
102
+ #
103
+ def cases()
104
+
105
+ end
106
+
107
+ def usecase(desc='', &blk)
108
+ @usecases << [desc, blk]
109
+ end
110
+ end
111
+
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: usecase_tracer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE3MDEyMDIwNTk0M1oXDTE4MDEyMDIwNTk0M1owSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAMzkrxF1kZo6Rv5LFgL4sNpMgyPO+PBXSbJxvKarUfmg6V977kKdeXC71bJb
19
+ DLSXZK/z1T1FiAwkGd1a7vOTUDurlN158lWMKOTAFiirLZ7WBEOPobKVP2r5MTTp
20
+ GHmTRvyhuzMSggv3u6fbuJnfYR0AwB/9UOz05FPnmTymHczEV52/zxfqdaAFsiVg
21
+ 9kwURfuYWqpyqM1K1f0qvxMpU+MOnsUZN/0xQq2hSBw0mmjSmlVrAk35xGU02y+O
22
+ iZ5hnYHsN2JkeVAQyuKUPMUHwcZmJYI2CRpClt0tw5/rgqnL0isEVJRSNmgt00FI
23
+ NDlTVuKjUmLVUUJmzLDuJPk9UFsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUJRknOEmC5uHpx1V1DcCsKMnd2WcwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAcwW+2Qof
27
+ wAtdCA3IaaLeTJI6SvhFzsKbZG7sZPy5f7np9Z94xqor5T33t1Gec9lsi59z1hsT
28
+ MvILi0m/qp2YVwD1Xtsnb35APfruRVCagsA3wek5UAJ1qrTArpFCrsDbAjQSH3xc
29
+ vafDUhjDBiKDPAG4evqzD4IGQ4lZUssY95fLRX6vtqYuWsEja20nkPUv7KoQeAux
30
+ 88lnocDsOE0Gz3Tx/OtR6Z6mR1JvYWjtV9v2b7v5fkE9NNpb4xc0pCi5cymPEZW9
31
+ HGmhPBwL2haWfqW7DnI+6yZ/IunAq0eUCsZpxDveDzQAm3ASzbphaKHR1MGrVme6
32
+ mvh0ZtZs2h0/HQ==
33
+ -----END CERTIFICATE-----
34
+ date: 2017-01-20 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: indented_tracer
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.3
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.1'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.3
56
+ description:
57
+ email: james@jamesrobertson.eu
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/usecase_tracer.rb
63
+ homepage: https://github.com/jrobertson/usecase_tracer
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.6.8
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Traces the methods used for each use case and returns them as raw Polyrex
87
+ documents
88
+ test_files: []
metadata.gz.sig ADDED
Binary file