net_status 0.0.2 → 0.1.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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTI3YTBkZDEzYTllNDM2NGM0NTdiNzVhZDgwMDNlNDkwZWRmY2Y3Yw==
4
+ NmRiNmEzN2Q3NTlhZjZjYjhhMzgzYjE2NmNlODk4NzJmNDEwMzAyYQ==
5
5
  data.tar.gz: !binary |-
6
- NzlmZmU1MzdjOTI3NTJiNmYzNWFjMzg3OTY0MmEzODE0ZGY5ZGNhMQ==
6
+ MWU4ZDhlZjZkZWQzOTI4YmQ4NDBhNmRiYjNkZWFmZDQwMTZhMzJlZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTg4NzA5YzJhYTkwNzU3MzllMzcyOTg3MTZmNmMwZWRiNmE4MTYxY2YxYjk4
10
- MmY0NmU4ZDYxZDc0YTRlOWJjNDExMjEyOGNmMzc3ODE5NDczMDQyMDEzNzc1
11
- NzJmNDY5OGE4OGU0OGM4MTFkYTEzZDA5M2FjOTBiNzc3NmNlNmQ=
9
+ NTA3ZTcxZDZlMjY2YTZiYWM1OGQ3NTE1YTIwMTQzZmQ4OTNhOTk0Y2UyNTBh
10
+ OGMwOGQ0ZjliMDBhOWI1NjJkOTYxMTI2NzgwOWFiYjE4N2Q3ZDZhOWU4OGE3
11
+ MDk4MjYyNmU0NTkzM2YyMjZiMmRmOGNmYTljYjIzNmE0OWRiMWM=
12
12
  data.tar.gz: !binary |-
13
- ODM2MzA0NTAxOTVkMDRiMzNkNTY3Y2QzZmZkMjYyMTJhZTA1N2FmYjdkNzVj
14
- ZjUyOWMwZWFjZGRhODliZGFiOGJkM2Q1ZGIyMmQ1OTc0MThlOTQ2NDZmZmM1
15
- YjU5NmZkN2Y2ZWZhOWI5ZDFhNjI0N2ZhMjRhZjAyYzU4ZmJkNzY=
13
+ MzY4YjI5Mzg4YzU1Y2UyMjdjZjNjMGUzOTI1MGY5NThlYTMxNzdjNDM2Yjhk
14
+ ZTNiMWY2MTRiMjI0OTRkZTAyNzY5Njg2NDRlZmZmM2JmZTQ3YzNmNGE4OGJk
15
+ ODVlMTczOWVjZDk2OTE3YzVhMjlmOTkzNDk2ZjRmZDQwMjA5N2I=
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -0,0 +1,82 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ net_status (0.1.0)
5
+ i18n (~> 0.7)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.4.0)
11
+ backports (3.6.8)
12
+ coderay (1.1.1)
13
+ diff-lcs (1.2.5)
14
+ ethon (0.9.0)
15
+ ffi (>= 1.3.0)
16
+ faraday (0.9.2)
17
+ multipart-post (>= 1.2, < 3)
18
+ faraday_middleware (0.10.0)
19
+ faraday (>= 0.7.4, < 0.10)
20
+ ffi (1.9.10)
21
+ gh (0.14.0)
22
+ addressable
23
+ backports
24
+ faraday (~> 0.8)
25
+ multi_json (~> 1.0)
26
+ net-http-persistent (>= 2.7)
27
+ net-http-pipeline
28
+ highline (1.7.8)
29
+ i18n (0.7.0)
30
+ json (1.8.3)
31
+ launchy (2.4.3)
32
+ addressable (~> 2.3)
33
+ method_source (0.8.2)
34
+ multi_json (1.11.3)
35
+ multipart-post (2.0.0)
36
+ net-http-persistent (2.9.4)
37
+ net-http-pipeline (1.0.1)
38
+ pry (0.10.3)
39
+ coderay (~> 1.1.0)
40
+ method_source (~> 0.8.1)
41
+ slop (~> 3.4)
42
+ pusher-client (0.6.2)
43
+ json
44
+ websocket (~> 1.0)
45
+ rake (10.5.0)
46
+ rspec (3.4.0)
47
+ rspec-core (~> 3.4.0)
48
+ rspec-expectations (~> 3.4.0)
49
+ rspec-mocks (~> 3.4.0)
50
+ rspec-core (3.4.4)
51
+ rspec-support (~> 3.4.0)
52
+ rspec-expectations (3.4.0)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.4.0)
55
+ rspec-mocks (3.4.1)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.4.0)
58
+ rspec-support (3.4.1)
59
+ slop (3.6.0)
60
+ travis (1.8.2)
61
+ backports
62
+ faraday (~> 0.9)
63
+ faraday_middleware (~> 0.9, >= 0.9.1)
64
+ gh (~> 0.13)
65
+ highline (~> 1.6)
66
+ launchy (~> 2.1)
67
+ pusher-client (~> 0.4)
68
+ typhoeus (~> 0.6, >= 0.6.8)
69
+ typhoeus (0.8.0)
70
+ ethon (>= 0.8.0)
71
+ websocket (1.2.3)
72
+
73
+ PLATFORMS
74
+ ruby
75
+
76
+ DEPENDENCIES
77
+ bundler (~> 1.7)
78
+ net_status!
79
+ pry (>= 0.10.3, < 1.0)
80
+ rake (~> 10.0)
81
+ rspec (~> 3.4, >= 3.4.0)
82
+ travis (~> 1.8, >= 1.8.2)
@@ -1,4 +1,14 @@
1
1
  require "net_status/version"
2
2
 
3
3
  require "net_status/exception"
4
- require "net_status/mixin"
4
+ require "net_status/hash"
5
+
6
+ module NetStatus
7
+ def self.normalize(net_status, context: nil)
8
+ code = net_status[:code]
9
+ code ||= net_status[:error] if net_status.include? :error
10
+ net_status[:data] ||= {}
11
+ net_status[:message] = I18n.t [:net_status, context, code].join('.'), [:net_status, code].join('.'), **net_status[:data], raise: true rescue nil
12
+ net_status
13
+ end
14
+ end
@@ -1,18 +1,37 @@
1
- class NetStatus::Exception < Exception
2
- def initialize(net_status={})
3
- @net_status = net_status
4
- @net_status[:error] ||= :error
5
- super()
6
- end
1
+ module NetStatus
2
+ class Exception < Exception
3
+ def initialize(net_status={})
4
+ @net_status = net_status
5
+ @net_status[:error] ||= :error
6
+ super()
7
+ end
7
8
 
8
- def net_status
9
- @net_status.dup.tap do |res|
10
- res[:data] = (res[:data] || {}).dup
11
- res[:data][:backtrace] ||= self.backtrace
9
+ def net_status
10
+ @net_status.dup.tap do |res|
11
+ res[:data] = (res[:data] || {}).dup
12
+ res[:data][:backtrace] ||= self.backtrace
13
+ end
12
14
  end
13
- end
14
15
 
15
- def message
16
- net_status_short.to_s
16
+ def message
17
+ net_status_short.to_s
18
+ end
19
+
20
+ module Mixin
21
+ def net_status
22
+ { error: :error, code: :exception, message: self.message, data: { backtrace: self.backtrace } }
23
+ end
24
+
25
+ def net_status_short
26
+ net_status.dup.tap do |res|
27
+ if res[:data]
28
+ res[:data] = res[:data].dup
29
+ res[:data].delete(:backtrace)
30
+ end
31
+ end
32
+ end
33
+ end
17
34
  end
18
35
  end
36
+
37
+ ::Exception.send(:include, NetStatus::Exception::Mixin)
@@ -0,0 +1,26 @@
1
+ module NetStatus
2
+ class Hash
3
+ module Mixin
4
+ def net_status_normalize(**kwargs)
5
+ NetStatus.normalize(self, **kwargs)
6
+ end
7
+
8
+ def net_status_error?
9
+ not net_status_ok?
10
+ end
11
+
12
+ def net_status_ok?
13
+ !(key? :error)
14
+ end
15
+
16
+ def net_status_ok!
17
+ raise NetStatus::Exception, self unless net_status_ok?
18
+ self
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ ::Hash.send(:include, NetStatus::Hash::Mixin)
25
+
26
+
@@ -1,3 +1,3 @@
1
1
  module NetStatus
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -19,8 +19,11 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.required_ruby_version = '>= 2.2.1'
21
21
 
22
+ spec.add_dependency 'i18n', '~> 0.7'
23
+
22
24
  spec.add_development_dependency 'bundler', '~> 1.7'
23
25
  spec.add_development_dependency 'rake', '~> 10.0'
24
26
  spec.add_development_dependency 'rspec', '~> 3.4', '>= 3.4.0'
25
27
  spec.add_development_dependency 'travis', '~> 1.8', '>= 1.8.2'
28
+ spec.add_development_dependency 'pry', '>= 0.10.3', '< 1.0'
26
29
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net_status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Igrychev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-02 00:00:00.000000000 Z
11
+ date: 2016-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: i18n
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +92,26 @@ dependencies:
78
92
  - - ! '>='
79
93
  - !ruby/object:Gem::Version
80
94
  version: 1.8.2
95
+ - !ruby/object:Gem::Dependency
96
+ name: pry
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 0.10.3
102
+ - - <
103
+ - !ruby/object:Gem::Version
104
+ version: '1.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: 0.10.3
112
+ - - <
113
+ - !ruby/object:Gem::Version
114
+ version: '1.0'
81
115
  description: Net status return codes.
82
116
  email:
83
117
  - alexey.igrychev@flant.ru
@@ -88,12 +122,13 @@ files:
88
122
  - .gitignore
89
123
  - .travis.yml
90
124
  - Gemfile
125
+ - Gemfile.lock
91
126
  - LICENSE.txt
92
127
  - README.md
93
128
  - Rakefile
94
129
  - lib/net_status.rb
95
130
  - lib/net_status/exception.rb
96
- - lib/net_status/mixin.rb
131
+ - lib/net_status/hash.rb
97
132
  - lib/net_status/version.rb
98
133
  - net_status.gemspec
99
134
  - spec/net_status_spec.rb
@@ -1,16 +0,0 @@
1
- module NetStatus::Exception::Mixin
2
- def net_status
3
- { error: :error, code: :exception, message: self.message, data: { backtrace: self.backtrace } }
4
- end
5
-
6
- def net_status_short
7
- net_status.dup.tap do |res|
8
- if res[:data]
9
- res[:data] = res[:data].dup
10
- res[:data].delete(:backtrace)
11
- end
12
- end
13
- end
14
- end
15
-
16
- ::Exception.send(:include, NetStatus::Exception::Mixin)