yarh 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a97da72277418b174a46577325c63c3c301082a967c057fea0610469d526892d
4
- data.tar.gz: f4789d638553b9d778b5259d9b8ec073a2c44f46d20c1753831db91802f14336
3
+ metadata.gz: be06fa99910b08969531006fb8437dd82770a62fdd4d7d428d9d10599c33786e
4
+ data.tar.gz: 9ced27dcff33621e24ac55aa181af3cadfbbcd32255c3184ac2e73bf44dbecfa
5
5
  SHA512:
6
- metadata.gz: ff9fca30ecbbe6e45550cf623f27aec67d0341f1cc0858d59557f7b012f2acef9732224223ee0af92a9f2b98814b2b816dc5c2974bc6e210d23334b57de30444
7
- data.tar.gz: 24959a53e848687b803959a009fd44b6f6660ec041d0483695443af3245b2668df7bc86ee2f6fb1f306668826d49b78dc5dd26e5cddbe4d5ef8a788cf0ad82b4
6
+ metadata.gz: c6e28d50e58caadd9fe64e15f20fa4d001648af8c8bfebd200f0361c163032774171997060af51a8c6b3f0970c0450dfdc1e4d08d6e8acd51eb70f4a9748fc11
7
+ data.tar.gz: 78f9bf12359dde945a9dcb969224a5321020a43cddaa07bdae549d3cb870d77cbc6a08212f4028c31bbc20302dff49a1cae9980db7a9dcaa56d1e1057bcc54ae
data/exe/yarh CHANGED
@@ -1,8 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative '../lib/yarh'
4
+ require_relative '../lib/yarh/cli'
5
5
 
6
- test_result = Yarh.hello
7
-
8
- puts test_result
6
+ Yarh::CLI.start(ARGV)
data/lib/yarh/cli.rb ADDED
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require_relative 'version'
5
+ require_relative '../yarh'
6
+
7
+ module Yarh
8
+ # CLI
9
+ class CLI < Thor
10
+ package_name 'Yarh'
11
+ map '-v' => :version
12
+ map '-r' => :run_requests
13
+
14
+ desc '-r PATH', 'execute requests from file'
15
+ def run_requests(path)
16
+ Yarh.run_requests(path)
17
+ end
18
+
19
+ desc 'version', 'show Yarh version'
20
+ def version
21
+ puts "Yarh #{Yarh::VERSION}"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+ require 'json'
5
+
6
+ module Yarh
7
+ # RequestBuilder
8
+ class RequestBuilder
9
+ attr_reader :response
10
+
11
+ def initialize(data)
12
+ @data = data
13
+ @response = nil
14
+ end
15
+
16
+ def request
17
+ conn = Faraday.new(url: data['url'])
18
+
19
+ response = conn.send(data['method'].downcase.to_sym) do |req|
20
+ build_headers(req, data['headers'])
21
+ req.body = data['body'].to_json
22
+ end
23
+
24
+ @response = response
25
+ end
26
+
27
+ private
28
+
29
+ attr_reader :data
30
+
31
+ def build_headers(req, headers)
32
+ headers.each do |header, value|
33
+ req.headers[header] = value
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'yaml_parser'
4
+ require_relative 'request_builder'
5
+
6
+ module Yarh
7
+ # request run
8
+ class RequestRunner
9
+ attr_accessor :path
10
+
11
+ def initialize(path)
12
+ @path = path
13
+ end
14
+
15
+ def run
16
+ parsed_yaml.each_value do |data|
17
+ request = RequestBuilder.new(data)
18
+ request.request
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def parsed_yaml
25
+ @parsed_yaml ||= YamlParser.parse(path)
26
+ end
27
+ end
28
+ end
data/lib/yarh/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yarh
4
- VERSION = '0.1.2'
4
+ VERSION = '0.1.3'
5
5
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ module Yarh
6
+ # The main parser of Yaml files, uses psych under the hood
7
+ class YamlParser
8
+ def self.parse(file_path)
9
+ YAML.safe_load_file(file_path)
10
+ end
11
+ end
12
+ end
data/lib/yarh.rb CHANGED
@@ -1,8 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'yarh/request_runner'
4
+
3
5
  # main module
4
6
  module Yarh
5
- def self.hello
6
- 'hello'
7
+ def self.run_requests(path)
8
+ runner = RequestRunner.new(path)
9
+ runner.run
7
10
  end
8
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Leonov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-05 00:00:00.000000000 Z
11
+ date: 2024-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -24,7 +24,21 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.9'
27
- description: Yet Another Request Handler
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ description: Create specifications for HTTP requests without a single line of code
28
42
  email: leonov7632@gmail.com
29
43
  executables:
30
44
  - yarh
@@ -33,7 +47,11 @@ extra_rdoc_files: []
33
47
  files:
34
48
  - exe/yarh
35
49
  - lib/yarh.rb
50
+ - lib/yarh/cli.rb
51
+ - lib/yarh/request_builder.rb
52
+ - lib/yarh/request_runner.rb
36
53
  - lib/yarh/version.rb
54
+ - lib/yarh/yaml_parser.rb
37
55
  homepage: https://github.com/leonovk/yarh
38
56
  licenses:
39
57
  - MIT