opushon 0.2.1 → 0.2.2

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
- SHA1:
3
- metadata.gz: d478dd02277f97c91f3767f7f3455157b030ba89
4
- data.tar.gz: c8470e81def24155c2c1a8588b172ca4024f5c8c
2
+ SHA256:
3
+ metadata.gz: 24fefd1822417befed8d3b8678ccda2e3f05eb7462617cdfd9bcf1d63302cded
4
+ data.tar.gz: 057236242425accea1ed1696b370b42cfbeedcf4cfce124734e3f6f0cac75552
5
5
  SHA512:
6
- metadata.gz: 6b8940675e9f52519378842d28c473342d0ec7a6cb9e9b1ba93f3fd982678119358a546a242817db9a9092a5b26f8a93ea59799dae90e6fbb19d355c8f46a7be
7
- data.tar.gz: 5b9dc5cc63f0664c74a04b0af0486d54073b266a6ff348704c0bd9f7a0f7d2da515de75779c712329a06443899315268ba907e67f214e4e2509dd98818fcbdec
6
+ metadata.gz: 046e40f75c5a8bee027928d7b2af0da0fe00f6bd9d8d8a7732a959e643dbb93a373f7de43c479c4cb98e054eba7cd685a54796f1b55e628f6ab914c7f64f5d38
7
+ data.tar.gz: 1d95889786e06951548c92680e7a8795d97225839ba6a52aeb89723ac1bf0f8b6fb04fe82f022d1ac293783df6599483323f8b635c46032c20ab7d4503f07291
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,103 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2019-08-26 13:08:39 +0200 using RuboCop version 0.74.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: TreatCommentsAsGroupSeparators, Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/OrderedDependencies:
14
+ Exclude:
15
+ - 'opushon.gemspec'
16
+
17
+ # Offense count: 24
18
+ # Cop supports --auto-correct.
19
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
20
+ # SupportedHashRocketStyles: key, separator, table
21
+ # SupportedColonStyles: key, separator, table
22
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
23
+ Layout/AlignHash:
24
+ Exclude:
25
+ - 'lib/opushon/body.rb'
26
+ - 'lib/opushon/option.rb'
27
+ - 'lib/opushon/parameter.rb'
28
+ - 'lib/opushon/request.rb'
29
+ - 'lib/opushon/response.rb'
30
+ - 'lib/opushon/restricted_value.rb'
31
+
32
+ # Offense count: 356
33
+ # Cop supports --auto-correct.
34
+ # Configuration parameters: AllowForAlignment.
35
+ Layout/SpaceAroundOperators:
36
+ Exclude:
37
+ - 'test/test_opushon.rb'
38
+
39
+ # Offense count: 140
40
+ # Cop supports --auto-correct.
41
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
42
+ # SupportedStyles: space, no_space, compact
43
+ # SupportedStylesForEmptyBraces: space, no_space
44
+ Layout/SpaceInsideHashLiteralBraces:
45
+ Exclude:
46
+ - 'test/test_opushon.rb'
47
+
48
+ # Offense count: 1
49
+ # Configuration parameters: CountComments, ExcludedMethods.
50
+ Metrics/MethodLength:
51
+ Max: 22
52
+
53
+ # Offense count: 2
54
+ # Cop supports --auto-correct.
55
+ # Configuration parameters: EnforcedStyle.
56
+ # SupportedStyles: braces, no_braces, context_dependent
57
+ Style/BracesAroundHashParameters:
58
+ Exclude:
59
+ - 'test/test_opushon.rb'
60
+
61
+ # Offense count: 3
62
+ Style/Documentation:
63
+ Exclude:
64
+ - 'spec/**/*'
65
+ - 'test/**/*'
66
+ - 'lib/opushon/option.rb'
67
+ - 'lib/opushon/request.rb'
68
+ - 'lib/opushon/response.rb'
69
+
70
+ # Offense count: 356
71
+ # Cop supports --auto-correct.
72
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
73
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
74
+ Style/HashSyntax:
75
+ Exclude:
76
+ - 'test/test_opushon.rb'
77
+
78
+ # Offense count: 1
79
+ Style/MixinUsage:
80
+ Exclude:
81
+ - 'test/test_opushon.rb'
82
+
83
+ # Offense count: 136
84
+ # Cop supports --auto-correct.
85
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
86
+ # SupportedStyles: single_quotes, double_quotes
87
+ Style/StringLiterals:
88
+ Exclude:
89
+ - 'test/test_opushon.rb'
90
+
91
+ # Offense count: 2
92
+ # Cop supports --auto-correct.
93
+ # Configuration parameters: MinSize, WordRegex.
94
+ # SupportedStyles: percent, brackets
95
+ Style/WordArray:
96
+ EnforcedStyle: brackets
97
+
98
+ # Offense count: 19
99
+ # Cop supports --auto-correct.
100
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
101
+ # URISchemes: http, https
102
+ Metrics/LineLength:
103
+ Max: 3537
data/.travis.yml CHANGED
@@ -1,13 +1,19 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
- script: 'bundle exec rake test:coverage --trace'
5
4
  before_install:
6
5
  - gem install bundler
6
+ script:
7
+ - bundle exec rubocop
8
+ - bundle exec rake test
7
9
  rvm:
8
- - 2.0
9
- - 2.1
10
- - 2.2
10
+ - 2.5.0
11
+ - 2.6.2
11
12
  - ruby-head
12
13
  - jruby-head
13
- - rbx-2
14
+ - rbx-3
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: ruby-head
18
+ - rvm: jruby-head
19
+ - rvm: rbx-3
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014 Cyril Wack
3
+ Copyright (c) 2014 Cyril Kato
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  [![Build Status](https://travis-ci.org/cyril/opushon.rb.svg?branch=master)][travis]
4
4
  [![Gem Version](https://badge.fury.io/rb/opushon.svg)][gem]
5
5
  [![Inline docs](http://inch-ci.org/github/cyril/opushon.rb.svg?branch=master)][inchpages]
6
- [![Documentation](http://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
7
6
 
8
7
  > An [Opushon's body](https://github.com/cyril/opushon) parser and emitter.
9
8
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rake/testtask'
3
5
  require 'rubocop/rake_task'
@@ -16,5 +18,4 @@ namespace :test do
16
18
  end
17
19
  end
18
20
 
19
- task(:doc_stats) { ruby '-S yard stats' }
20
- task default: [:test, :doc_stats, :rubocop]
21
+ task default: %i[test rubocop]
data/VERSION.semver CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'opushon'
data/bin/setup CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/bin/bash
2
+
2
3
  set -euo pipefail
3
4
  IFS=$'\n\t'
4
5
 
data/lib/opushon/body.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'option'
2
4
 
3
5
  module Opushon
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'request'
2
4
  require_relative 'response'
3
5
 
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'restricted_value'
2
4
 
3
5
  module Opushon
6
+ # The content of headers, query string and body params MUST be described with
7
+ # the keys below. When a key is missing, its default value is assigned.
4
8
  class Parameter
5
9
  include Virtus.model(strict: true)
6
10
 
@@ -10,11 +14,11 @@ module Opushon
10
14
  attribute :nullifiable, Boolean, default: true, required: true
11
15
  attribute :restricted_values, Array[RestrictedValue], required: false
12
16
  attribute :example, BasicObject, required: false
13
- attribute :minlen, Fixnum, required: false
14
- attribute :maxlen, Fixnum, required: false
17
+ attribute :minlen, Integer, required: false
18
+ attribute :maxlen, Integer, required: false
15
19
  attribute :pattern, Regexp, required: false
16
- attribute :min, Fixnum, required: false
17
- attribute :max, Fixnum, required: false
20
+ attribute :min, Integer, required: false
21
+ attribute :max, Integer, required: false
18
22
 
19
23
  def to_h
20
24
  h = {
@@ -30,7 +34,7 @@ module Opushon
30
34
  h.update(
31
35
  minlen: @minlen,
32
36
  maxlen: @maxlen,
33
- pattern: (@pattern.nil? ? nil : @pattern.to_s)
37
+ pattern: @pattern&.to_s
34
38
  )
35
39
  end
36
40
 
@@ -40,16 +44,16 @@ module Opushon
40
44
  max: @max
41
45
  )
42
46
  end
47
+
48
+ h
43
49
  end
44
50
 
45
51
  private
46
52
 
47
53
  def maybe_to_a(object)
48
- if object.nil?
49
- nil
50
- else
51
- object.map(&:to_h)
52
- end
54
+ return if object.nil?
55
+
56
+ object.map(&:to_h)
53
57
  end
54
58
  end
55
59
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'parameter'
2
4
 
3
5
  module Opushon
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'parameter'
2
4
 
3
5
  module Opushon
@@ -1,4 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Opushon
4
+ # If present, the value of restricted_values is an array where each item
5
+ # contains a hash.
2
6
  class RestrictedValue
3
7
  include Virtus.model(strict: true)
4
8
 
data/lib/opushon.rb CHANGED
@@ -1,36 +1,38 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'virtus'
2
4
  require 'json'
3
- require_relative File.join 'opushon', 'body'
4
5
 
5
6
  # Namespace for the Opushon library.
7
+ # Representation of documentations for HTTP APIs.
6
8
  #
7
9
  # @api private
8
10
  module Opushon
9
- class << self
10
- # Load opushon in to the Ruby data structure.
11
- #
12
- # @api public
13
- #
14
- # @example Load the option of a DELETE interface
15
- # load('{"DELETE":{"title":"Delete issues","description":"Remove every issues.","request":{"headers":{},"query_string":{},"body":{}},"response":{"headers":{},"query_string":{},"body":{}}}}')
16
- #
17
- # @param [String] opushon_string
18
- #
19
- # @return [Body] the Ruby data structure
20
- def load(opushon_string)
21
- opushon_hash = JSON.load(opushon_string)
22
- Body.new(opushon_hash)
23
- end
11
+ # Load opushon in to the Ruby data structure.
12
+ #
13
+ # @api public
14
+ #
15
+ # @example Load the option of a DELETE interface
16
+ # load('{"DELETE":{"title":"Delete issues","description":"Remove every issues.","request":{"headers":{},"query_string":{},"body":{}},"response":{"headers":{},"query_string":{},"body":{}}}}')
17
+ #
18
+ # @param [String] opushon_string
19
+ #
20
+ # @return [Body] the Ruby data structure
21
+ def self.load(opushon_string)
22
+ opushon_hash = JSON.parse(opushon_string)
23
+ Body.new(opushon_hash)
24
+ end
24
25
 
25
- # Dump Ruby object to a Opushon string.
26
- #
27
- # @api public
28
- #
29
- # @param [Body] opushon
30
- #
31
- # @return [String] the Opushon data representation
32
- def dump(opushon)
33
- opushon.to_h.to_json
34
- end
26
+ # Dump Ruby object to a Opushon string.
27
+ #
28
+ # @api public
29
+ #
30
+ # @param [Body] opushon
31
+ #
32
+ # @return [String] the Opushon data representation
33
+ def self.dump(opushon)
34
+ opushon.to_h.to_json
35
35
  end
36
36
  end
37
+
38
+ require_relative File.join('opushon', 'body')
data/opushon.gemspec CHANGED
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Gem::Specification.new do |spec|
2
4
  spec.name = 'opushon'
3
5
  spec.version = File.read('VERSION.semver').chomp
4
- spec.authors = ['Cyril Wack']
6
+ spec.authors = ['Cyril Kato']
5
7
  spec.email = ['contact@cyril.email']
6
8
 
7
9
  spec.summary = 'A HTTP Opushon parser and emitter'
@@ -16,10 +18,9 @@ Gem::Specification.new do |spec|
16
18
 
17
19
  spec.add_dependency 'virtus', '~> 1.0.5'
18
20
 
19
- spec.add_development_dependency 'bundler', '~> 1.10'
20
- spec.add_development_dependency 'rake', '~> 10.4'
21
- spec.add_development_dependency 'yard', '~> 0.8'
22
- spec.add_development_dependency 'simplecov', '~> 0.10'
23
- spec.add_development_dependency 'rubocop', '~> 0.33'
24
- spec.add_development_dependency 'spectus', '~> 2.1'
21
+ spec.add_development_dependency 'bundler', '~> 2.0'
22
+ spec.add_development_dependency 'rake', '~> 12.3'
23
+ spec.add_development_dependency 'simplecov', '~> 0.17'
24
+ spec.add_development_dependency 'rubocop', '~> 0.74'
25
+ spec.add_development_dependency 'spectus', '~> 3.0'
25
26
  end
data/pkg_checksum CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'digest/sha2'
4
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opushon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
- - Cyril Wack
7
+ - Cyril Kato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-21 00:00:00.000000000 Z
11
+ date: 2019-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -30,84 +30,70 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.10'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.10'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.4'
47
+ version: '12.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.4'
55
- - !ruby/object:Gem::Dependency
56
- name: yard
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.8'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.8'
54
+ version: '12.3'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: simplecov
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0.10'
61
+ version: '0.17'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0.10'
68
+ version: '0.17'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rubocop
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0.33'
75
+ version: '0.74'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0.33'
82
+ version: '0.74'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: spectus
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '2.1'
89
+ version: '3.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '2.1'
96
+ version: '3.0'
111
97
  description: An Opushon's body parser and emitter.
112
98
  email:
113
99
  - contact@cyril.email
@@ -116,6 +102,8 @@ extensions: []
116
102
  extra_rdoc_files: []
117
103
  files:
118
104
  - ".gitignore"
105
+ - ".rubocop.yml"
106
+ - ".rubocop_todo.yml"
119
107
  - ".travis.yml"
120
108
  - ".yardopts"
121
109
  - CODE_OF_CONDUCT.md
@@ -156,10 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
144
  - !ruby/object:Gem::Version
157
145
  version: '0'
158
146
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.4.5.1
147
+ rubygems_version: 3.0.3
161
148
  signing_key:
162
149
  specification_version: 4
163
150
  summary: A HTTP Opushon parser and emitter
164
151
  test_files: []
165
- has_rdoc: