reflekt 0.1.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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: []