popper 0.5.2 → 0.5.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: c139212160c9146981eb7b1916a8ffdfde137559e98d97769372177ce79d85b4
4
- data.tar.gz: a8529c375cfc5c5636c7d68a4540a694692f8d524346746f84fca6298928f6e3
3
+ metadata.gz: 8b808e5e8c4b22939a7f9aa38f929a48fe47cc99cf569f97149e168d77e5ab5b
4
+ data.tar.gz: 13f1787819e224b2eeb96dd99cdfc0f210300e31decbe1752f133fc4520a5c81
5
5
  SHA512:
6
- metadata.gz: c55e98e69b188f7603c2d75da1833b37afad6becfce028f5bf215423b23cee059169dd4a0285566ebe5aa355732c39a9ebb08ccb11175aa4eb53c11286a64386
7
- data.tar.gz: 07c95f847d754d05de0015daea9192c5958f17d2802deb3b34f8abedb8599244ffb5a5106eead73de0594cf732362c0452ab9039c63e57d534fcd7ef59995683
6
+ metadata.gz: 15e3d186627b15f17b14f57e6829d0fa534e6d3792dad0fc080a51a833e3584044a2dd94bfcdea6c3860868e624538f87654d462559b61b4d0c039db9a42eb1b
7
+ data.tar.gz: e155391686166a6e6f24c498576fb523ad6bc0ccda98b5c293f9506649568d8a7fc6da488db32068da8a51f7ea537ca50ae1bef993fb03475e18b0e64a02ce94
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
@@ -0,0 +1,38 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ "master" ]
13
+ pull_request:
14
+ branches: [ "master" ]
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ test:
21
+
22
+ runs-on: ubuntu-latest
23
+ strategy:
24
+ matrix:
25
+ ruby-version: ['2.6', '2.7', '3.0']
26
+
27
+ steps:
28
+ - uses: actions/checkout@v3
29
+ - name: Set up Ruby
30
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
31
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
32
+ # uses: ruby/setup-ruby@v1
33
+ uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
34
+ with:
35
+ ruby-version: ${{ matrix.ruby-version }}
36
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
37
+ - name: Run tests
38
+ run: bundle exec rake
@@ -14,7 +14,7 @@ module Popper::Action
14
14
  title: mail.subject,
15
15
  color: "good"
16
16
  }
17
- note[:text] = mail.utf_body if @action_config.use_body
17
+ note[:text] = mail_body(mail.utf_body) if @action_config.use_body
18
18
 
19
19
  body = @action_config.message || "popper mail notification"
20
20
  body += " #{@action_config.mentions.join(" ")}" if @action_config.mentions
@@ -33,5 +33,12 @@ module Popper::Action
33
33
  @action_config.respond_to?(:webhook_url)
34
34
  end
35
35
 
36
+ def self.mail_body(body)
37
+ if @action_config.use_body.kind_of?(Integer) && body.lines.length > @action_config.use_body
38
+ return body.lines[0, @action_config.use_body].push('--- snip ---').join
39
+ end
40
+
41
+ body
42
+ end
36
43
  end
37
44
  end
data/lib/popper/config.rb CHANGED
@@ -4,13 +4,15 @@ require 'logger'
4
4
  module Popper
5
5
  class Config
6
6
  attr_reader :default, :accounts, :interval
7
+
7
8
  def initialize(config_path)
8
9
  raise "configure not fond #{config_path}" unless File.exist?(config_path)
10
+
9
11
  config = read_file(config_path)
10
12
 
11
- @interval = config.key?("interval") ? config["interval"].to_i : 60
12
- @default = config["default"] if config["default"]
13
- @accounts = config.select {|k,v| v.is_a?(Hash) && v.key?("login") }.map do |account|
13
+ @interval = config.key?('interval') ? config['interval'].to_i : 60
14
+ @default = config['default'] if config['default']
15
+ @accounts = config.select { |_k, v| v.is_a?(Hash) && v.key?('login') }.map do |account|
14
16
  _account = AccountAttributes.new(account[1])
15
17
  _account.name = account[0]
16
18
  _account
@@ -19,36 +21,36 @@ module Popper
19
21
 
20
22
  def read_file(file)
21
23
  config = TOML.load_file(file)
22
- if config.key?("include")
23
- content = config["include"].map {|p| Dir.glob(p).map {|f|File.read(f)}}.join("\n")
24
+ if config.key?('include')
25
+ content = config['include'].map { |p| Dir.glob(p).map { |f| File.read(f) } }.join("\n")
24
26
  config.deep_merge!(TOML::Parser.new(content).parsed)
25
27
  end
26
28
  config
27
29
  end
28
30
 
29
- %w(
31
+ %w[
30
32
  condition
31
33
  action
32
- ).each do |name|
33
- define_method("default_#{name}") {
34
- begin
35
- default[name]
36
- rescue
37
- {}
38
- end
39
- }
34
+ ].each do |name|
35
+ define_method("default_#{name}") do
36
+ default[name]
37
+ rescue StandardError
38
+ {}
39
+ end
40
40
  end
41
41
  end
42
42
 
43
43
  class AccountAttributes < OpenStruct
44
- def initialize(hash=nil)
44
+ def initialize(hash = nil)
45
+ super
45
46
  @table = {}
46
47
  @hash = hash
47
48
 
48
- hash.each do |k,v|
49
- @table[k.to_sym] = (v.is_a?(Hash) ? self.class.new(v) : v)
50
- new_ostruct_member(k)
51
- end if hash
49
+ if hash
50
+ hash.each do |k, v|
51
+ @table[k.to_sym] = (v.is_a?(Hash) ? self.class.new(v) : v)
52
+ end
53
+ end
52
54
  end
53
55
 
54
56
  def to_h
@@ -56,53 +58,48 @@ module Popper
56
58
  end
57
59
 
58
60
  [
59
- %w(select all?),
60
- %w(each each),
61
+ %w[select all?],
62
+ %w[each each]
61
63
  ].each do |arr|
62
64
  define_method("rule_with_conditions_#{arr[0]}") do |&blk|
63
- @hash["rules"].keys.send(arr[0]) do |rule|
64
- self.condition_by_rule(rule).to_h.send(arr[1]) do |mail_header,conditions|
65
+ @hash['rules'].keys.send(arr[0]) do |rule|
66
+ condition_by_rule(rule).to_h.send(arr[1]) do |mail_header, conditions|
65
67
  blk.call(rule, mail_header, conditions)
66
68
  end
67
69
  end
68
70
  end
69
71
  end
70
72
 
71
- %w(
73
+ %w[
72
74
  condition
73
75
  action
74
- ).each do |name|
75
- define_method("account_default_#{name}") {
76
- begin
77
- @hash["default"][name]
78
- rescue
79
- {}
80
- end
81
- }
76
+ ].each do |name|
77
+ define_method("account_default_#{name}") do
78
+ @hash['default'][name]
79
+ rescue StandardError
80
+ {}
81
+ end
82
82
 
83
83
  # merge default and account default
84
84
  define_method("#{name}_by_rule") do |rule|
85
85
  hash = Popper.configure.send("default_#{name}")
86
- hash = hash.deep_merge(self.send("account_default_#{name}")) if self.send("account_default_#{name}")
86
+ hash = hash.deep_merge(send("account_default_#{name}")) if send("account_default_#{name}")
87
87
  hash = hash.deep_merge(rule_by_name(rule)[name]) if rule_by_name(rule).key?(name)
88
88
 
89
89
  # replace body to utf_body
90
- AccountAttributes.new(Hash[hash.map {|k,v| [k.to_s.gsub(/^body$/, "utf_body").to_sym, v]}])
90
+ AccountAttributes.new(Hash[hash.map { |k, v| [k.to_s.gsub(/^body$/, 'utf_body').to_sym, v] }])
91
91
  end
92
92
  end
93
93
 
94
94
  def rule_by_name(name)
95
- begin
96
- @hash["rules"][name]
97
- rescue
98
- {}
99
- end
95
+ @hash['rules'][name]
96
+ rescue StandardError
97
+ {}
100
98
  end
101
-
102
99
  end
103
100
 
104
101
  def self.load_config(options)
105
- config_path = options[:config] || "/etc/popper.conf"
102
+ config_path = options[:config] || '/etc/popper.conf'
106
103
  @_config = Config.new(config_path)
107
104
  end
108
105
 
@@ -1,3 +1,3 @@
1
1
  module Popper
2
- VERSION = "0.5.2"
2
+ VERSION = '0.5.3'
3
3
  end
data/popper.gemspec CHANGED
@@ -1,31 +1,32 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'popper/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "popper"
6
+ spec.name = 'popper'
8
7
  spec.version = Popper::VERSION
9
- spec.authors = ["pyama86"]
10
- spec.email = ["pyama@pepabo.com"]
8
+ spec.authors = ['pyama86']
9
+ spec.email = ['pyama@pepabo.com']
11
10
 
12
- spec.summary = %q{email notification tool}
13
- spec.description = %q{email notification tool}
14
- spec.homepage = "http://ten-snapon.com"
15
- spec.license = "MIT"
11
+ spec.summary = 'email notification tool'
12
+ spec.description = 'email notification tool'
13
+ spec.homepage = 'http://ten-snapon.com'
14
+ spec.license = 'MIT'
16
15
 
17
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
17
+ spec.bindir = 'exe'
19
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
21
20
 
22
- spec.add_dependency 'thor'
23
- spec.add_dependency 'slack-notifier'
24
- spec.add_dependency 'toml'
21
+ spec.add_dependency 'bundler'
22
+ spec.add_dependency 'faraday'
25
23
  spec.add_dependency 'mail'
24
+ spec.add_dependency 'net-pop'
25
+ spec.add_dependency 'net-smtp'
26
26
  spec.add_dependency 'octokit'
27
- spec.add_dependency 'faraday'
28
- spec.add_dependency "bundler"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "rspec"
27
+ spec.add_dependency 'slack-notifier'
28
+ spec.add_dependency 'thor'
29
+ spec.add_dependency 'toml'
30
+ spec.add_development_dependency 'rake', '~> 13.0'
31
+ spec.add_development_dependency 'rspec'
31
32
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: popper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - pyama86
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-29 00:00:00.000000000 Z
11
+ date: 2022-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thor
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: slack-notifier
28
+ name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: toml
42
+ name: mail
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,21 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mail
56
+ name: net-pop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-smtp
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -81,7 +95,7 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
- name: faraday
98
+ name: slack-notifier
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - ">="
@@ -95,7 +109,21 @@ dependencies:
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: bundler
112
+ name: thor
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: toml
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - ">="
@@ -114,14 +142,14 @@ dependencies:
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: '10.0'
145
+ version: '13.0'
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: '10.0'
152
+ version: '13.0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: rspec
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -144,6 +172,8 @@ executables:
144
172
  extensions: []
145
173
  extra_rdoc_files: []
146
174
  files:
175
+ - ".github/dependabot.yml"
176
+ - ".github/workflows/ruby.yml"
147
177
  - ".gitignore"
148
178
  - ".rspec"
149
179
  - ".travis.yml"
@@ -187,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
217
  - !ruby/object:Gem::Version
188
218
  version: '0'
189
219
  requirements: []
190
- rubygems_version: 3.1.6
220
+ rubygems_version: 3.2.33
191
221
  signing_key:
192
222
  specification_version: 4
193
223
  summary: email notification tool