reflekt 0.1.2 → 0.4.0
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/lib/reflekt.rb +55 -19
- data/lib/template.html.erb +20 -0
- metadata +5 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9dab0fd8f1b076c4d4a4d6d7f571af7a6488e6d7a2a2fb430c4563cf12a8b011
         | 
| 4 | 
            +
              data.tar.gz: 22ac5bf780e0d048b50a902ce498f679d03c24a6e251b48ce31511c3d0829a6c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 251b7a98ea53230c50f2b3f77e602b5456b4a60b59a73c41e511b498d25b72c50a632cbadce1d887644c08ae32c90a30e36fb0ea51cffb437e0c3037a857ae7d
         | 
| 7 | 
            +
              data.tar.gz: ba4872b5ef00a2fec12e9a2ebb662f3024e1411f529bc467fdd6d8c67a54382fb99c72e800c7cb07671eee165e00f6e231d1e600e9dfb91c59b175d3e48989d3
         | 
    
        data/lib/reflekt.rb
    CHANGED
    
    | @@ -1,13 +1,7 @@ | |
| 1 1 | 
             
            require 'set'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # Production.
         | 
| 2 | 
            +
            require 'erb'
         | 
| 4 3 | 
             
            require 'rowdb'
         | 
| 5 4 |  | 
| 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 | 
            -
             | 
| 11 5 | 
             
            ################################################################################
         | 
| 12 6 | 
             
            # REFLEKT
         | 
| 13 7 | 
             
            #
         | 
| @@ -19,7 +13,7 @@ require 'rowdb' | |
| 19 13 |  | 
| 20 14 | 
             
            module Reflekt
         | 
| 21 15 |  | 
| 22 | 
            -
              @@ | 
| 16 | 
            +
              @@reflekt_clone_count = 5
         | 
| 23 17 |  | 
| 24 18 | 
             
              def initialize(*args)
         | 
| 25 19 |  | 
| @@ -33,10 +27,25 @@ module Reflekt | |
| 33 27 | 
             
                    # When method called in flow.
         | 
| 34 28 | 
             
                    if @reflekt_forked
         | 
| 35 29 | 
             
                      unless self.class.deflekted?(method)
         | 
| 30 | 
            +
             | 
| 36 31 | 
             
                        # Reflekt on method.
         | 
| 37 32 | 
             
                        @reflekt_clones.each do |clone|
         | 
| 38 33 | 
             
                          reflekt_action(clone, method, *args)
         | 
| 39 34 | 
             
                        end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                        # Save results.
         | 
| 37 | 
            +
                        @@reflekt_db.write()
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                        # Render results.
         | 
| 40 | 
            +
                        @@reflekt_json = File.read("#{@@reflekt_output_path}/db.json")
         | 
| 41 | 
            +
                        template = File.read("#{@@reflekt_path}/template.html.erb")
         | 
| 42 | 
            +
                        rendered = ERB.new(template).result(binding)
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                        # Write results.
         | 
| 45 | 
            +
                        File.open("#{@@reflekt_output_path}/index.html", 'w+') do |f|
         | 
| 46 | 
            +
                          f.write rendered
         | 
| 47 | 
            +
                        end
         | 
| 48 | 
            +
             | 
| 40 49 | 
             
                      end
         | 
| 41 50 | 
             
                    end
         | 
| 42 51 |  | 
| @@ -56,7 +65,7 @@ module Reflekt | |
| 56 65 |  | 
| 57 66 | 
             
              def reflekt_fork()
         | 
| 58 67 |  | 
| 59 | 
            -
                @@ | 
| 68 | 
            +
                @@reflekt_clone_count.times do |clone|
         | 
| 60 69 | 
             
                  @reflekt_clones << self.clone
         | 
| 61 70 | 
             
                end
         | 
| 62 71 |  | 
| @@ -66,6 +75,9 @@ module Reflekt | |
| 66 75 |  | 
| 67 76 | 
             
              def reflekt_action(clone, method, *args)
         | 
| 68 77 |  | 
| 78 | 
            +
                class_name = clone.class.to_s
         | 
| 79 | 
            +
                method_name = method.to_s
         | 
| 80 | 
            +
             | 
| 69 81 | 
             
                # Create new arguments.
         | 
| 70 82 | 
             
                new_args = []
         | 
| 71 83 | 
             
                args.each do |arg|
         | 
| @@ -80,12 +92,24 @@ module Reflekt | |
| 80 92 | 
             
                # Action method with new arguments.
         | 
| 81 93 | 
             
                begin
         | 
| 82 94 | 
             
                  clone.send(method, *new_args)
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                  # Build reflection.
         | 
| 97 | 
            +
                  reflection = {
         | 
| 98 | 
            +
                    "time" => Time.now.to_i,
         | 
| 99 | 
            +
                  }
         | 
| 100 | 
            +
                # When error.
         | 
| 83 101 | 
             
                rescue StandardError => error
         | 
| 84 | 
            -
                   | 
| 102 | 
            +
                  reflection["status"] = "error"
         | 
| 103 | 
            +
                  reflection["error"] = error
         | 
| 104 | 
            +
                # When success.
         | 
| 85 105 | 
             
                else
         | 
| 86 | 
            -
                   | 
| 106 | 
            +
                  reflection["status"] = "success"
         | 
| 87 107 | 
             
                end
         | 
| 88 108 |  | 
| 109 | 
            +
                # Save reflection.
         | 
| 110 | 
            +
                @@reflekt_db.get("#{class_name}.#{method_name}")
         | 
| 111 | 
            +
                            .push(reflection)
         | 
| 112 | 
            +
             | 
| 89 113 | 
             
              end
         | 
| 90 114 |  | 
| 91 115 | 
             
              private
         | 
| @@ -94,21 +118,33 @@ module Reflekt | |
| 94 118 | 
             
              def self.prepended(base)
         | 
| 95 119 | 
             
                base.singleton_class.prepend(Klass)
         | 
| 96 120 |  | 
| 97 | 
            -
                @@ | 
| 121 | 
            +
                @@reflekt_setup ||= reflekt_setup_klass
         | 
| 98 122 | 
             
              end
         | 
| 99 123 |  | 
| 100 124 | 
             
              # Setup Klass.
         | 
| 101 | 
            -
              def self. | 
| 125 | 
            +
              def self.reflekt_setup_klass()
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                # Receive configuration from host application.
         | 
| 128 | 
            +
                $ENV ||= {}
         | 
| 129 | 
            +
                $ENV[:reflekt] ||= $ENV[:reflekt] = {}
         | 
| 102 130 |  | 
| 131 | 
            +
                @@reflekt_path = File.dirname(File.realpath(__FILE__))
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                # Create "reflections" directory in configured path.
         | 
| 134 | 
            +
                if $ENV[:reflekt][:output_path]
         | 
| 135 | 
            +
                  @@reflekt_output_path = File.join($ENV[:reflekt][:output_path], 'reflections')
         | 
| 103 136 | 
             
                # Create "reflections" directory in current execution path.
         | 
| 104 | 
            -
                 | 
| 105 | 
            -
             | 
| 106 | 
            -
                 | 
| 107 | 
            -
             | 
| 137 | 
            +
                else
         | 
| 138 | 
            +
                  @@reflekt_output_path = File.join(Dir.pwd, 'reflections')
         | 
| 139 | 
            +
                end
         | 
| 140 | 
            +
             | 
| 141 | 
            +
                unless Dir.exist? @@reflekt_output_path
         | 
| 142 | 
            +
                  Dir.mkdir(@@reflekt_output_path)
         | 
| 108 143 | 
             
                end
         | 
| 109 144 |  | 
| 110 | 
            -
                 | 
| 111 | 
            -
                @@ | 
| 145 | 
            +
                # Create database.
         | 
| 146 | 
            +
                @@reflekt_db = Rowdb.new(@@reflekt_output_path + '/db.json')
         | 
| 147 | 
            +
                @@reflekt_db.defaults({ :reflekt => { :api_version => 1 }}).write()
         | 
| 112 148 |  | 
| 113 149 | 
             
                return true
         | 
| 114 150 | 
             
              end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            <!DOCTYPE html>
         | 
| 2 | 
            +
            <html>
         | 
| 3 | 
            +
              <head>
         | 
| 4 | 
            +
                <meta charset="utf-8">
         | 
| 5 | 
            +
                <title>Reflekt</title>
         | 
| 6 | 
            +
                <meta name="description" content="">
         | 
| 7 | 
            +
                <meta name="author" content="">
         | 
| 8 | 
            +
                <meta name="viewport" content="width=device-width, initial-scale=1">
         | 
| 9 | 
            +
                <link rel="stylesheet" href="">
         | 
| 10 | 
            +
                <link rel="shortcut icon" href="">
         | 
| 11 | 
            +
              </head>
         | 
| 12 | 
            +
              <body>
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                <script>
         | 
| 15 | 
            +
                  var reflections = JSON.parse(<%= @@reflekt_json %>)
         | 
| 16 | 
            +
                  console.log(reflections)
         | 
| 17 | 
            +
                </script>
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              </body>
         | 
| 20 | 
            +
            </html>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: reflekt
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.4.0
         | 
| 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- | 
| 11 | 
            +
            date: 2020-07-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rowdb
         | 
| @@ -24,13 +24,14 @@ dependencies: | |
| 24 24 | 
             
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 | 
            -
            description:  | 
| 27 | 
            +
            description: Testing that's completely automated.
         | 
| 28 28 | 
             
            email: maediprichard@gmailcom
         | 
| 29 29 | 
             
            executables: []
         | 
| 30 30 | 
             
            extensions: []
         | 
| 31 31 | 
             
            extra_rdoc_files: []
         | 
| 32 32 | 
             
            files:
         | 
| 33 33 | 
             
            - lib/reflekt.rb
         | 
| 34 | 
            +
            - lib/template.html.erb
         | 
| 34 35 | 
             
            homepage: https://github.com/maedi/reflekt
         | 
| 35 36 | 
             
            licenses:
         | 
| 36 37 | 
             
            - MPL-2.0
         | 
| @@ -53,5 +54,5 @@ requirements: [] | |
| 53 54 | 
             
            rubygems_version: 3.0.2
         | 
| 54 55 | 
             
            signing_key: 
         | 
| 55 56 | 
             
            specification_version: 4
         | 
| 56 | 
            -
            summary:  | 
| 57 | 
            +
            summary: Reflective testing.
         | 
| 57 58 | 
             
            test_files: []
         |