ree_lib 1.0.44 → 1.0.46

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b693a698326ebc9436c1b53ac0ef76b16a084f0cf164d5dbbf296f965f2c9d0
4
- data.tar.gz: afcc7ad74317cb8c3c5f553430d2d486be8747b185b819d93852c56104604802
3
+ metadata.gz: c891f66e5e8dfeb011588bb1cdfebebd2d1ca88552a2e623eeb573d72b43fd47
4
+ data.tar.gz: 3c9885f0abfb06dc1cde8d9fcdcb7a5901c859dbb629c61d7939caf1eb74b242
5
5
  SHA512:
6
- metadata.gz: 0bb1241355f92521c4f2ef67dfe52b55082335c8d963028ad9cf1cc4f4bd0238def3aa33f34193c1bcdf8f3968fdb118e29e27cde0b40da052969ee9b0c7d658
7
- data.tar.gz: '0178d10d0f7b0063f665150c2848c7b985aae3505617bf2daaa637e5ac9ea2429fd1c9f925de8014d4d817fa06451ed5dfb2e91942d77a9a09973c8fdbb04112'
6
+ metadata.gz: '0726859940ca7bc5e7f32a1995ad40f42670cc41a3c829d5211b37712ef65092efb5a643cd0b000d55f1497fd4db2fa37eee991cb7e5f27185515d6f3f996cc7'
7
+ data.tar.gz: fed4151d293502fbf5eb73236acf2e944f3ceade748d7e73da38bbf3cf906df1153388789db47c11469c005a06fb7a79eca8736e55e0d496f1a2df252bde6047
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ree_lib (1.0.44)
4
+ ree_lib (1.0.46)
5
5
  binding_of_caller (~> 1.0.0)
6
6
  i18n (~> 1.12.0)
7
7
  loofah (~> 2.18.0)
@@ -36,9 +36,9 @@ GEM
36
36
  crass (~> 1.0.2)
37
37
  nokogiri (>= 1.5.9)
38
38
  msgpack (1.6.0)
39
- nokogiri (1.14.2-x86_64-darwin)
39
+ nokogiri (1.14.3-x86_64-darwin)
40
40
  racc (~> 1.4)
41
- nokogiri (1.14.2-x86_64-linux)
41
+ nokogiri (1.14.3-x86_64-linux)
42
42
  racc (~> 1.4)
43
43
  oj (3.13.23)
44
44
  pg (1.4.6)
@@ -52,7 +52,11 @@ class ReeRoda::BuildRouteErrors
52
52
  klass, :call, scope: :instance
53
53
  )
54
54
 
55
- method_decorator&.errors || []
55
+ original_method_decorator = Ree::Contracts.get_method_decorator(
56
+ klass, :__original_call, scope: :instance
57
+ )
58
+
59
+ method_decorator&.errors || original_method_decorator&.errors || []
56
60
  end
57
61
 
58
62
  def status_from_error(error)
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ package_require("ree_errors/validation_error")
4
+
5
+ RSpec.describe :build_swagger_from_routes do
6
+ link :add_load_path, from: :ree_i18n
7
+ link :build_swagger_from_routes, from: :ree_roda
8
+
9
+ before :all do
10
+ add_load_path(Dir[File.join(__dir__, 'locales/*.yml')])
11
+
12
+ Ree.enable_irb_mode
13
+
14
+ module ReeRodaTestSwagger
15
+ include Ree::PackageDSL
16
+
17
+ package do
18
+ depends_on :ree_actions
19
+ depends_on :ree_dao
20
+ end
21
+ end
22
+
23
+ class ReeRodaTestSwagger::Cmd
24
+ include ReeActions::DSL
25
+
26
+ action :cmd
27
+
28
+ ActionCaster = build_mapper.use(:cast) do
29
+ integer :id
30
+ end
31
+
32
+ InvalidErr = ReeErrors::ValidationError.build(:invalid, "invalid")
33
+
34
+ contract(Any, Any => Any).throws(InvalidErr)
35
+ def call(access, attrs)
36
+ raise InvalidErr if false
37
+ end
38
+ end
39
+
40
+ class ReeRodaTestSwagger::TestRoutes
41
+ include ReeRoutes::DSL
42
+
43
+ routes :test_routes do
44
+ default_warden_scope :identity
45
+ opts = { from: :ree_roda_test_swagger }
46
+
47
+ post "api/actions" do
48
+ summary "Some action"
49
+ action :cmd, **opts
50
+ end
51
+ end
52
+ end
53
+
54
+ class TestSwaggerApp < ReeRoda::App
55
+ plugin :ree_routes
56
+
57
+ ree_routes ReeRodaTestSwagger::TestRoutes.new
58
+
59
+ route do |r|
60
+ r.ree_routes
61
+ end
62
+ end
63
+ end
64
+
65
+ after :all do
66
+ Ree.disable_irb_mode
67
+ end
68
+
69
+ let(:routes) { TestSwaggerApp.instance_variable_get(:@ree_routes) }
70
+
71
+ it {
72
+ swagger = build_swagger_from_routes(routes, "test", "test", "1.0", "https://example.com")
73
+
74
+ expect(swagger.dig(:paths, "/api/actions", :post, :responses, 422, :description))
75
+ .to eq("- type: **validation**, code: **invalid**, message: **invalid**")
76
+ }
77
+ end
@@ -0,0 +1,2 @@
1
+ en:
2
+ invalid: "invalid"
@@ -0,0 +1,2 @@
1
+ ru:
2
+ invalid: "invalid"
@@ -3,6 +3,10 @@
3
3
  require 'set'
4
4
 
5
5
  class ReeText::PermitScrubber < Loofah::Scrubber
6
+ include Ree::LinkDSL
7
+
8
+ link :unescape_html
9
+
6
10
  attr_reader :tags, :attributes, :prune
7
11
 
8
12
  contract Kwargs[
@@ -11,7 +15,6 @@ class ReeText::PermitScrubber < Loofah::Scrubber
11
15
  attributes: Set,
12
16
  ] => Any
13
17
  def initialize(prune: false, tags: nil, attributes: nil)
14
- @unescape_html = ReeText::UnescapeHtml.new
15
18
  @prune = prune
16
19
  @direction = @prune ? :top_down : :bottom_up
17
20
  @tags = tags
@@ -26,7 +29,7 @@ class ReeText::PermitScrubber < Loofah::Scrubber
26
29
 
27
30
  return CONTINUE
28
31
  end
29
-
32
+
30
33
  return CONTINUE if node.text?
31
34
 
32
35
  unless (node.element? || node.comment?) && allowed_node?(node)
@@ -37,7 +40,7 @@ class ReeText::PermitScrubber < Loofah::Scrubber
37
40
  end
38
41
 
39
42
  protected
40
-
43
+
41
44
  def allowed_node?(node)
42
45
  @tags.include?(node.name)
43
46
  end
@@ -74,8 +77,7 @@ class ReeText::PermitScrubber < Loofah::Scrubber
74
77
 
75
78
  if Loofah::HTML5::SafeList::ATTR_VAL_IS_URI.include?(attr_name)
76
79
  # this block lifted nearly verbatim from HTML5 sanitization
77
- val_unescaped = @unescape_html
78
- .call(attr_node.value)
80
+ val_unescaped = unescape_html(attr_node.value)
79
81
  .gsub(Loofah::HTML5::Scrub::CONTROL_CHARACTERS,'')
80
82
  .downcase
81
83
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReeLib
4
- VERSION = "1.0.44"
4
+ VERSION = "1.0.46"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ree_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.44
4
+ version: 1.0.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-05 00:00:00.000000000 Z
11
+ date: 2023-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ree
@@ -1131,6 +1131,9 @@ files:
1131
1131
  - lib/ree_lib/packages/ree_roda/spec/package_schema_spec.rb
1132
1132
  - lib/ree_lib/packages/ree_roda/spec/ree_roda/app_spec.rb
1133
1133
  - lib/ree_lib/packages/ree_roda/spec/ree_roda/services/build_routing_tree_spec.rb
1134
+ - lib/ree_lib/packages/ree_roda/spec/ree_roda/services/build_swagger_from_routes_spec.rb
1135
+ - lib/ree_lib/packages/ree_roda/spec/ree_roda/services/locales/en.yml
1136
+ - lib/ree_lib/packages/ree_roda/spec/ree_roda/services/locales/ru.yml
1134
1137
  - lib/ree_lib/packages/ree_roda/spec/spec_helper.rb
1135
1138
  - lib/ree_lib/packages/ree_routes/.gitignore
1136
1139
  - lib/ree_lib/packages/ree_routes/.rspec