reflekt 0.1.1 → 0.3.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/reflekt.rb +41 -7
  3. metadata +4 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e102804227ba45be7436324468a4c9f56964dc25e3b54b3281c7e4e95529049
4
- data.tar.gz: 0da3df0bee7127d33ca304b9d0f98e8c9334afe302aa0bace108f4d9eb041b76
3
+ metadata.gz: 7eecfaacf0ed26a06a1ab774a55f5ecf62713a71a685162a0da0fbd40696afec
4
+ data.tar.gz: 8a64d9fc0c39102423e6c95cfbdecbc53d9510097b63c35cb2f4cb4fb89d8870
5
5
  SHA512:
6
- metadata.gz: 2218c96406397ff88927c7e08114722de6b37aacf1070165bbe338c7501ba4850a568014d87bdfc512d1d5ca1749fe427d899908e35c63962a8ad36f754627f1
7
- data.tar.gz: 77c711a2414d62c170046f4f439fea7266fad426c9dd62dda042b289945c75947428e4921d929609c74edea1b7637d3e248e8de052ee0c22c3804e8887c48196
6
+ metadata.gz: d6029337485e9d149bd225e1a2786a37f7646115f3ea2adb6835adc8f686a1f93d090e7f68a3787ec37870f724f1a47dddf2df8b4ca58ad8dd6e7f0bda504c7c
7
+ data.tar.gz: da9b95e714e27bc6b96475784129aa66c8468657544d6bc368fb89edee5b4fbc2c4022770482b0d1fa3095bb310ec215c72fd2a63221b897c307748f2eff80cd
@@ -1,10 +1,17 @@
1
1
  require 'set'
2
+
3
+ # Production.
2
4
  require 'rowdb'
3
5
 
6
+ # Development.
7
+ #require_relative '../../rowdb/lib/rowdb.rb'
8
+ #require_relative '../../rowdb/lib/adapters/Adapter.rb'
9
+ #require_relative '../../rowdb/lib/adapters/FileSystem.rb'
10
+
4
11
  ################################################################################
5
12
  # REFLEKT
6
13
  #
7
- # Must be defined before the class it's included in.
14
+ # Usage. Prepend to the class like so:
8
15
  #
9
16
  # class ExampleClass
10
17
  # prepend Reflekt
@@ -30,6 +37,8 @@ module Reflekt
30
37
  @reflekt_clones.each do |clone|
31
38
  reflekt_action(clone, method, *args)
32
39
  end
40
+ # Save results.
41
+ @@db.write()
33
42
  end
34
43
  end
35
44
 
@@ -59,6 +68,9 @@ module Reflekt
59
68
 
60
69
  def reflekt_action(clone, method, *args)
61
70
 
71
+ class_name = clone.class.to_s
72
+ method_name = method.to_s
73
+
62
74
  # Create new arguments.
63
75
  new_args = []
64
76
  args.each do |arg|
@@ -73,12 +85,24 @@ module Reflekt
73
85
  # Action method with new arguments.
74
86
  begin
75
87
  clone.send(method, *new_args)
88
+
89
+ # Build reflection.
90
+ reflection = {
91
+ "time" => Time.now.to_i,
92
+ }
93
+ # When error.
76
94
  rescue StandardError => error
77
- p error
95
+ reflection["status"] = "error"
96
+ reflection["error"] = error
97
+ # When success.
78
98
  else
79
- puts "Success."
99
+ reflection["status"] = "success"
80
100
  end
81
101
 
102
+ # Save reflection.
103
+ @@db.get("#{class_name}.#{method_name}")
104
+ .push(reflection)
105
+
82
106
  end
83
107
 
84
108
  private
@@ -93,15 +117,25 @@ module Reflekt
93
117
  # Setup Klass.
94
118
  def self.setup_klass()
95
119
 
120
+ # Receive configuration from host application.
121
+ $ENV ||= {}
122
+ $ENV[:reflekt] ||= $ENV[:reflekt] = {}
123
+
124
+ # Create "reflections" directory in configured path.
125
+ if $ENV[:reflekt][:output_path]
126
+ dir_path = File.join($ENV[:reflekt][:output_path], 'reflections')
96
127
  # Create "reflections" directory in current execution path.
97
- # TODO: Allow global config override of path.
98
- dir_path = File.join(Dir.pwd, 'reflections')
128
+ else
129
+ dir_path = File.join(Dir.pwd, 'reflections')
130
+ end
131
+
99
132
  unless Dir.exist? dir_path
100
133
  Dir.mkdir(dir_path)
101
134
  end
102
135
 
103
- @@db = Rowdb.new(:file_system, dir_path + '/db.json')
104
- @@db.defaults({items: []})
136
+ # Create database.
137
+ @@db = Rowdb.new(dir_path + '/db.json')
138
+ @@db.defaults({"reflections" => []})
105
139
 
106
140
  return true
107
141
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reflekt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maedi Prichard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-18 00:00:00.000000000 Z
11
+ date: 2020-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: oj
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rowdb
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -38,7 +24,7 @@ dependencies:
38
24
  - - ">="
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
- description: Reflection-driven development via reflection testing.
27
+ description: Reflective testing that's completely automated.
42
28
  email: maediprichard@gmailcom
43
29
  executables: []
44
30
  extensions: []
@@ -67,5 +53,5 @@ requirements: []
67
53
  rubygems_version: 3.0.2
68
54
  signing_key:
69
55
  specification_version: 4
70
- summary: Reflection-driven development.
56
+ summary: Reflective testing that's completely automated.
71
57
  test_files: []