jabber_admin 1.0.5 → 1.2.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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f66fd5543a21b130fc4a24d7c6d9d05659e63b956c379f7973028f7902595e81
4
- data.tar.gz: a4e3cb834dec2a20f2d093e1588ba24167d06cdb1db2d0ce0722d0c750a39c47
3
+ metadata.gz: bd0bcf59057c6d9ae11137e3f6427177a74aa0969f44abe30aaf5d192b43e693
4
+ data.tar.gz: b49453ad3ca03bdb7665c487e9547ed5721f28fe7ded316bba9e2af3a6d96745
5
5
  SHA512:
6
- metadata.gz: a9b6847f6493eee80e7086ab76a01ab4bf0f29e11fc58451d048ece7954db51bd7c349bf7e572260475ef34982d4a7cdf92fe546105bacf55189ecead923f80e
7
- data.tar.gz: 4dd98caa90adb727d1cca90bc4b4c914c6cb744826965819cd54695535a9d729d695b135318adf9a140b06782a9bd3790961b77cae2f3fa9b4aa346765de93a6
6
+ metadata.gz: 5c6c483c01e80efbb706cf855f4881b65880b455dd85043baca8620491cdb9b24d521f9f9b4b14344d2b4982778b0bf1d1309ebd990b50ea6743376061ba05b4
7
+ data.tar.gz: 30a6239b2893a205bbf82552567d3f0fb783072e679ae25e9d948e404e582d518abd9ff8ce49b72ba1025b95f0b35075f536d0473158510e9bb95b22ea22847f
@@ -9,16 +9,17 @@ concurrency:
9
9
  jobs:
10
10
  docs:
11
11
  name: Build gem documentation
12
- runs-on: ubuntu-20.04
12
+ runs-on: ubuntu-22.04
13
13
  timeout-minutes: 5
14
14
  steps:
15
- - uses: actions/checkout@v2
15
+ - uses: actions/checkout@v3
16
16
 
17
17
  - name: Install the correct Ruby version
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
20
  ruby-version: 2.5
21
21
  bundler-cache: true
22
+ rubygems: '3.3.26'
22
23
 
23
24
  - name: Prepare the virtual environment
24
25
  uses: hausgold/actions/ci@master
@@ -0,0 +1,47 @@
1
+ name: Release
2
+ run-name: Release ${{ github.event.inputs.VERSION }}
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ inputs:
7
+ VERSION:
8
+ description: The new version to release. (eg. `1.0.0`) Check the
9
+ changelog for the latest version.
10
+
11
+ concurrency:
12
+ group: '${{ github.event.inputs.VERSION }}'
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ docs:
17
+ name: Release the gem
18
+ runs-on: ubuntu-22.04
19
+ timeout-minutes: 5
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+
23
+ - name: Install Ruby 2.5
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: 2.5
27
+ bundler-cache: true
28
+ rubygems: '3.3.26'
29
+
30
+ - name: Prepare the virtual environment
31
+ uses: hausgold/actions/ci@master
32
+ with:
33
+ clone_token: '${{ secrets.CLONE_TOKEN }}'
34
+ settings: '${{ github.repository }}'
35
+ target: ci/gem-test
36
+
37
+ - name: Switch to SSH remotes for the Git repository
38
+ run: git-ssh-remotes
39
+
40
+ - name: Enforce version '${{ github.event.inputs.VERSION }}'
41
+ run: set-gem-version '${{ github.event.inputs.VERSION }}'
42
+
43
+ - name: Prepare the Git release commit
44
+ run: git-release-commit '${{ github.event.inputs.VERSION }}'
45
+
46
+ - name: Push the release Git commit/tag and package to the registry
47
+ run: make release
@@ -12,21 +12,25 @@ concurrency:
12
12
 
13
13
  jobs:
14
14
  test:
15
- name: 'Test the gem (Ruby ${{ matrix.ruby }})'
16
- runs-on: ubuntu-20.04
15
+ name: 'Test the gem (Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }})'
16
+ runs-on: ubuntu-22.04
17
17
  timeout-minutes: 5
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: [2.5, 2.6, 2.7]
21
+ ruby: ['2.5', '2.7']
22
+ rails: ['5.2']
23
+ env:
24
+ BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
22
25
  steps:
23
- - uses: actions/checkout@v2
26
+ - uses: actions/checkout@v3
24
27
 
25
28
  - name: Install the correct Ruby version
26
29
  uses: ruby/setup-ruby@v1
27
30
  with:
28
31
  ruby-version: ${{ matrix.ruby }}
29
32
  bundler-cache: true
33
+ rubygems: '3.3.26'
30
34
 
31
35
  - name: Prepare the virtual environment
32
36
  uses: hausgold/actions/ci@master
@@ -43,7 +47,7 @@ jobs:
43
47
 
44
48
  trigger-docs:
45
49
  name: Trigger the documentation upload
46
- runs-on: ubuntu-20.04
50
+ runs-on: ubuntu-22.04
47
51
  timeout-minutes: 2
48
52
  needs: test
49
53
  if: github.ref == 'refs/heads/master'
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
+ --backtrace
2
+ --force-color
1
3
  --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,11 +1,25 @@
1
- require: rubocop-rspec
1
+ require:
2
+ - rubocop-rspec
3
+ - rubocop-rails
2
4
 
3
- Documentation:
5
+ Rails:
6
+ Enabled: true
7
+
8
+ Style/Documentation:
4
9
  Enabled: true
5
10
 
6
11
  AllCops:
12
+ NewCops: enable
13
+ SuggestExtensions: false
7
14
  DisplayCopNames: true
8
15
  TargetRubyVersion: 2.5
16
+ TargetRailsVersion: 5.2
17
+ Exclude:
18
+ - bin/**/*
19
+ - vendor/**/*
20
+ - config/**/*
21
+ - build/**/*
22
+ - gemfiles/**/*
9
23
 
10
24
  Metrics/BlockLength:
11
25
  Exclude:
@@ -14,6 +28,10 @@ Metrics/BlockLength:
14
28
  - '**/*.rake'
15
29
  - '*.gemspec'
16
30
 
31
+ # MFA is not yet enabled for our gems yet.
32
+ Gemspec/RequireMFA:
33
+ Enabled: false
34
+
17
35
  # Document all the things.
18
36
  Style/DocumentationMethod:
19
37
  Enabled: true
@@ -31,5 +49,5 @@ RSpec/NestedGroups:
31
49
 
32
50
  # We stay at 80 characters per line.
33
51
  # See: https://rubystyle.guide/#max-line-length
34
- Metrics/LineLength:
52
+ Layout/LineLength:
35
53
  Max: 80
data/.simplecov CHANGED
@@ -1,5 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'simplecov-html'
4
+ require 'simplecov_json_formatter'
5
+
6
+ SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
7
+ [
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ SimpleCov::Formatter::JSONFormatter
10
+ ]
11
+ )
12
+
3
13
  SimpleCov.start 'test_frameworks' do
4
14
  add_filter '/vendor/bundle/'
5
15
  end
data/Appraisals ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise 'rails-5.2' do
4
+ gem 'activesupport', '~> 5.2.0'
5
+ end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ### next
2
+
3
+ * TODO: Replace this bullet point with an actual description of a change.
4
+
5
+ ### 1.2.0
6
+
7
+ * Added support for Gem release automation
8
+
9
+ ### 1.1.0
10
+
11
+ * Bundler >= 2.3 is from now on required as minimal version (#11)
12
+ * Dropped support for Ruby < 2.5 (#11)
13
+ * Dropped support for Rails < 5.2 (#11)
14
+ * Updated all development/runtime gems to their latest
15
+ Ruby 2.5 compatible version (#11)
16
+
1
17
  ### 1.0.5
2
18
 
3
19
  * Added support for the predefined command `get_room_affiliations` (#10)
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at development@hausgold.de. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Dockerfile ADDED
@@ -0,0 +1,28 @@
1
+ FROM hausgold/ruby:2.5
2
+ MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
3
+
4
+ # Update system gem
5
+ RUN gem update --system '3.3.26'
6
+
7
+ # Install system packages and the latest bundler
8
+ RUN apt-get update -yqqq && \
9
+ apt-get install -y \
10
+ build-essential locales sudo vim \
11
+ ca-certificates \
12
+ bash-completion inotify-tools && \
13
+ echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
14
+ gem install bundler -v '~> 2.3.0' --no-document --no-prerelease
15
+
16
+ # Add new web user
17
+ RUN mkdir /app && \
18
+ adduser web --home /home/web --shell /bin/bash \
19
+ --disabled-password --gecos ""
20
+ COPY config/docker/* /home/web/
21
+ RUN chown web:web -R /app /home/web /usr/local/bundle && \
22
+ mkdir -p /home/web/.ssh
23
+
24
+ # Set the root password and grant root access to web
25
+ RUN echo 'root:root' | chpasswd
26
+ RUN echo 'web ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
27
+
28
+ WORKDIR /app
data/Envfile ADDED
@@ -0,0 +1,3 @@
1
+ LANG=en_US.UTF-8
2
+ LANGUAGE=en_US.UTF-8
3
+ LC_ALL=en_US.UTF-8
data/Guardfile ADDED
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A sample Guardfile
4
+ # More info at https://github.com/guard/guard#readme
5
+
6
+ ## Uncomment and set this to only include directories you want to watch
7
+ (directories %w[lib spec]).select do |d|
8
+ if Dir.exist?(d)
9
+ d
10
+ else
11
+ UI.warning("Directory #{d} does not exist")
12
+ end
13
+ end
14
+
15
+ ## Note: if you are using the `directories` clause above and you are not
16
+ ## watching the project directory ('.'), then you will want to move
17
+ ## the Guardfile to a watched dir and symlink it back, e.g.
18
+ #
19
+ # $ mkdir config
20
+ # $ mv Guardfile config/
21
+ # $ ln -s config/Guardfile .
22
+ #
23
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
24
+
25
+ # NOTE: The cmd option is now required due to the increasing number of ways
26
+ # rspec may be run, below are examples of the most common uses.
27
+ # * bundler: 'bundle exec rspec'
28
+ # * bundler binstubs: 'bin/rspec'
29
+ # * spring: 'bin/rspec' (This will use spring if running and you have
30
+ # installed the spring binstubs per the docs)
31
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
32
+ # * 'just' rspec: 'rspec'
33
+
34
+ guard :rspec, cmd: 'bundle exec rspec' do
35
+ watch('spec/spec_helper.rb') { 'spec' }
36
+ watch(%r{^lib/jabber_admin.rb}) { 'spec' }
37
+ watch(%r{^spec/.+_spec\.rb$})
38
+ watch(%r{^lib/jabber_admin/([^\\]+)\.rb$}) do |m|
39
+ "spec/jabber_admin/#{m[1]}_spec.rb"
40
+ end
41
+ watch(%r{^lib/jabber_admin/([^\\]+)/(.*)\.rb$}) do |m|
42
+ "spec/jabber_admin/#{m[1]}/#{m[2]}_spec.rb"
43
+ end
44
+ end
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2018 HAUSGOLD | talocasa GmbH
3
+ Copyright (c) 2023 HAUSGOLD | talocasa GmbH
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/Makefile CHANGED
@@ -9,35 +9,52 @@ SHELL := bash
9
9
  # Environment switches
10
10
  MAKE_ENV ?= docker
11
11
  COMPOSE_RUN_SHELL_FLAGS ?= --rm
12
+ BASH_RUN_SHELL_FLAGS ?=
12
13
 
13
14
  # Directories
14
15
  VENDOR_DIR ?= vendor/bundle
15
16
 
16
17
  # Host binaries
18
+ AWK ?= awk
17
19
  BASH ?= bash
18
20
  COMPOSE ?= docker-compose
19
- ECHO ?= echo
21
+ CP ?= cp
22
+ DOCKER ?= docker
23
+ FIND ?= find
20
24
  GREP ?= grep
25
+ HEAD ?= head
21
26
  ID ?= id
22
27
  MKDIR ?= mkdir
23
28
  RM ?= rm
24
- SED ?= sed
25
29
  SORT ?= sort
30
+ XARGS ?= xargs
26
31
 
27
32
  # Container binaries
33
+ APPRAISAL ?= appraisal
28
34
  BUNDLE ?= bundle
35
+ GEM ?= gem
36
+ GUARD ?= guard
29
37
  RAKE ?= rake
38
+ RSPEC ?= rspec
30
39
  RUBOCOP ?= rubocop
31
40
  YARD ?= yard
32
41
 
42
+ # Files
43
+ GEMFILES ?= $(subst _,-,$(patsubst $(GEMFILES_DIR)/%.gemfile,%,\
44
+ $(wildcard $(GEMFILES_DIR)/*.gemfile)))
45
+ TEST_GEMFILES := $(GEMFILES:%=test-%)
46
+
33
47
  all:
34
48
  # jabber_admin
35
49
  #
36
50
  # install Install the dependencies
37
- # test Run the whole test suite
38
- # test-style Check the coding styles
51
+ # update Update the local Gemset dependencies
39
52
  # clean Clean the dependencies
40
53
  #
54
+ # test Run the whole test suite
55
+ # test-style Test the code styles
56
+ # watch Watch for code changes and rerun the test suite
57
+ #
41
58
  # docs Generate the Ruby documentation of the library
42
59
  # stats Print the code statistics (library and test suite)
43
60
  # notes Print all the notes from the code
@@ -54,8 +71,9 @@ ifeq ($(MAKE_ENV),docker)
54
71
  define run-shell
55
72
  $(COMPOSE) run $(COMPOSE_RUN_SHELL_FLAGS) \
56
73
  -e LANG=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 \
57
- -e HOME=/tmp -e BUNDLE_APP_CONFIG=/app/.bundle \
58
- -u `$(ID) -u` test bash -c 'sleep 0.1; echo; $(1)'
74
+ -e HOME=/home/web -e BUNDLE_APP_CONFIG=/app/.bundle \
75
+ -u `$(ID) -u` test \
76
+ bash $(BASH_RUN_SHELL_FLAGS) -c 'sleep 0.1; echo; $(1)'
59
77
  endef
60
78
  else ifeq ($(MAKE_ENV),baremetal)
61
79
  define run-shell
@@ -63,10 +81,24 @@ define run-shell
63
81
  endef
64
82
  endif
65
83
 
84
+ .interactive:
85
+ @$(eval BASH_RUN_SHELL_FLAGS = --login)
86
+
66
87
  install:
67
88
  # Install the dependencies
68
89
  @$(MKDIR) -p $(VENDOR_DIR)
69
90
  @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
91
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
92
+
93
+ update:
94
+ # Install the dependencies
95
+ @$(MKDIR) -p $(VENDOR_DIR)
96
+ @$(call run-shell,$(BUNDLE) update)
97
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) update)
98
+
99
+ watch: install .interactive
100
+ # Watch for code changes and rerun the test suite
101
+ @$(call run-shell,$(BUNDLE) exec $(GUARD))
70
102
 
71
103
  test: \
72
104
  test-specs \
@@ -76,6 +108,11 @@ test-specs:
76
108
  # Run the whole test suite
77
109
  @$(call run-shell,$(BUNDLE) exec $(RAKE) stats spec)
78
110
 
111
+ $(TEST_GEMFILES): GEMFILE=$(@:test-%=%)
112
+ $(TEST_GEMFILES):
113
+ # Run the whole test suite ($(GEMFILE))
114
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(RSPEC))
115
+
79
116
  test-style: test-style-ruby
80
117
 
81
118
  test-style-ruby:
@@ -85,6 +122,8 @@ test-style-ruby:
85
122
  clean:
86
123
  # Clean the dependencies
87
124
  @$(RM) -rf $(VENDOR_DIR)
125
+ @$(RM) -rf .bundle .yardoc coverage pkg Gemfile.lock doc/api \
126
+ .rspec_status
88
127
 
89
128
  clean-containers:
90
129
  # Clean running containers
@@ -92,7 +131,15 @@ ifeq ($(MAKE_ENV),docker)
92
131
  @$(COMPOSE) down
93
132
  endif
94
133
 
95
- distclean: clean clean-containers
134
+ clean-images:
135
+ # Clean build images
136
+ ifeq ($(MAKE_ENV),docker)
137
+ @-$(DOCKER) images | $(GREP) $(shell basename "`pwd`") \
138
+ | $(AWK) '{ print $$3 }' \
139
+ | $(XARGS) -rn1 $(DOCKER) rmi -f
140
+ endif
141
+
142
+ distclean: clean clean-containers clean-images
96
143
 
97
144
  shell:
98
145
  # Run an interactive shell on the container
data/README.md CHANGED
@@ -15,7 +15,9 @@ admin API](https://docs.ejabberd.im/developer/ejabberd-api/admin-api).
15
15
  - [Predefined commands](#predefined-commands)
16
16
  - [Freestyle commands](#freestyle-commands)
17
17
  - [Development](#development)
18
+ - [Code of Conduct](#code-of-conduct)
18
19
  - [Contributing](#contributing)
20
+ - [Releasing](#releasing)
19
21
 
20
22
  ## Installation
21
23
 
@@ -166,12 +168,24 @@ After checking out the repo, run `make install` to install dependencies. Then,
166
168
  run `make test` to run the tests. You can also run `make shell-irb` for an
167
169
  interactive prompt that will allow you to experiment.
168
170
 
169
- To release a new version, update the version number in `version.rb`, and then
170
- run `make release`, which will create a git tag for the version, push git
171
- commits and tags, and push the `.gem` file to
172
- [rubygems.org](https://rubygems.org).
171
+ ## Code of Conduct
172
+
173
+ Everyone interacting in the project codebase, issue tracker, chat
174
+ rooms and mailing lists is expected to follow the [code of
175
+ conduct](./CODE_OF_CONDUCT.md).
173
176
 
174
177
  ## Contributing
175
178
 
176
179
  Bug reports and pull requests are welcome on GitHub at
177
- https://github.com/hausgold/jabber_admin.
180
+ https://github.com/hausgold/jabber_admin. Make sure that every pull request adds
181
+ a bullet point to the [changelog](./CHANGELOG.md) file with a reference to the
182
+ actual pull request.
183
+
184
+ ## Releasing
185
+
186
+ The release process of this Gem is fully automated. You just need to open the
187
+ Github Actions [Release
188
+ Workflow](https://github.com/hausgold/jabber_admin/actions/workflows/release.yml)
189
+ and trigger a new run via the **Run workflow** button. Insert the new version
190
+ number (check the [changelog](./CHANGELOG.md) first for the latest release) and
191
+ you're done.
data/Rakefile CHANGED
@@ -2,75 +2,21 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
- require 'rails/code_statistics'
6
- require 'pp'
5
+ require 'countless/rake_tasks'
7
6
 
8
7
  RSpec::Core::RakeTask.new(:spec)
9
8
 
10
9
  task default: :spec
11
10
 
12
- # Load some railties tasks
13
- load 'rails/tasks/statistics.rake'
14
- load 'rails/tasks/annotations.rake'
15
-
16
- # Clear the default statistics directory constant
17
- #
18
- # rubocop:disable Style/MutableConstant because we define it
19
- Object.send(:remove_const, :STATS_DIRECTORIES)
20
- ::STATS_DIRECTORIES = []
21
- # rubocop:enable Style/MutableConstant
22
-
23
- # Monkey patch the Rails +CodeStatistics+ class to support configurable
24
- # patterns per path. This is reuqired to support top-level only file matches.
25
- class CodeStatistics
26
- DEFAULT_PATTERN = /^(?!\.).*?\.(rb|js|coffee|rake)$/.freeze
27
-
28
- # Pass the possible +pattern+ argument down to the
29
- # +calculate_directory_statistics+ method call.
30
- def calculate_statistics
31
- Hash[@pairs.map do |pair|
32
- [pair.first, calculate_directory_statistics(*pair[1..-1])]
33
- end]
34
- end
35
-
36
- # Match the pattern against the individual file name and the relative file
37
- # path. This allows top-level only matches.
38
- def calculate_directory_statistics(directory, pattern = DEFAULT_PATTERN)
39
- stats = CodeStatisticsCalculator.new
40
-
41
- Dir.foreach(directory) do |file_name|
42
- path = "#{directory}/#{file_name}"
43
-
44
- if File.directory?(path) && (/^\./ !~ file_name)
45
- stats.add(calculate_directory_statistics(path, pattern))
46
- elsif file_name =~ pattern || path =~ pattern
47
- stats.add_by_file_path(path)
48
- end
49
- end
50
-
51
- stats
52
- end
53
- end
54
-
55
11
  # Configure all code statistics directories
56
- vendors = [
57
- [:unshift, 'Top-levels', 'lib', %r{lib(/jabber_admin)?/[^/]+\.rb$}],
58
- [:unshift, 'Top-levels specs', 'spec',
59
- %r{spec/jabber_admin(_spec\.rb|/[^/]+\.rb$)}],
60
-
61
- [:unshift, 'Commands', 'lib/jabber_admin/commands'],
62
- [:unshift, 'Commands specs', 'spec/jabber_admin/commands']
63
- ].reverse
64
-
65
- vendors.each do |method, type, dir, pattern|
66
- ::STATS_DIRECTORIES.send(method, [type, dir, pattern].compact)
67
- ::CodeStatistics::TEST_TYPES << type if type.include? 'specs'
68
- end
69
-
70
- # Setup annotations
71
- ENV['SOURCE_ANNOTATION_DIRECTORIES'] = 'spec,doc'
72
-
73
- desc 'Enumerate all annotations'
74
- task :notes do
75
- SourceAnnotationExtractor.enumerate '@?OPTIMIZE|@?FIXME|@?TODO', tag: true
12
+ Countless.configure do |config|
13
+ config.stats_base_directories = [
14
+ { name: 'Top-levels', dir: 'lib',
15
+ pattern: %r{/lib(/jabber_admin)?/[^/]+\.rb$} },
16
+ { name: 'Top-levels specs', test: true, dir: 'spec',
17
+ pattern: %r{/spec(/jabber_admin)?/[^/]+_spec\.rb$} },
18
+ { name: 'Commands', pattern: 'lib/jabber_admin/commands/**/*.rb' },
19
+ { name: 'Commands specs', test: true,
20
+ pattern: 'spec/jabber_admin/commands/**/*_spec.rb' }
21
+ ]
76
22
  end
@@ -0,0 +1,3 @@
1
+ if [ -f ~/.bashrc ]; then
2
+ . ~/.bashrc
3
+ fi
@@ -0,0 +1,48 @@
1
+ # ~/.bashrc: executed by bash(1) for non-login shells.
2
+ # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3
+ # for examples
4
+
5
+ _GEM_PATHS=$(ls -d1 ${HOME}/.gem/ruby/*/bin 2>/dev/null | paste -sd ':')
6
+ _APP_PATHS=$(ls -d1 /app/vendor/bundle/ruby/*/bin 2>/dev/null | paste -sd ':')
7
+
8
+ export PATH="${_GEM_PATHS}:${_APP_PATHS}:${PATH}"
9
+ export PATH="/app/node_modules/.bin:${HOME}/.bin:/app/bin:${PATH}"
10
+ export MAKE_ENV=baremetal
11
+
12
+ # Disable the autostart of all supervisord units
13
+ sudo sed -i 's/autostart=.*/autostart=false/g' /etc/supervisor/conf.d/*
14
+
15
+ # Start the supervisord (empty, no units)
16
+ sudo supervisord >/dev/null 2>&1 &
17
+
18
+ # Wait for supervisord
19
+ while ! supervisorctl status >/dev/null 2>&1; do sleep 1; done
20
+
21
+ # Boot the mDNS stack
22
+ echo '# Start the mDNS stack'
23
+ sudo supervisorctl start dbus avahi
24
+ echo
25
+
26
+ function watch-make-test()
27
+ {
28
+ while [ 1 ]; do
29
+ inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
30
+ make test
31
+ done
32
+ }
33
+
34
+ function watch-make()
35
+ {
36
+ while [ 1 ]; do
37
+ inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
38
+ make $@
39
+ done
40
+ }
41
+
42
+ function watch-run()
43
+ {
44
+ while [ 1 ]; do
45
+ inotifywait --quiet -r `pwd` -e close_write --format '%e -> %w%f'
46
+ bash -c "$@"
47
+ done
48
+ }
@@ -0,0 +1,17 @@
1
+ # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
2
+ "\e[1;5C": forward-word
3
+ "\e[1;5D": backward-word
4
+ "\e[5C": forward-word
5
+ "\e[5D": backward-word
6
+ "\e\e[C": forward-word
7
+ "\e\e[D": backward-word
8
+
9
+ # handle common Home/End escape codes
10
+ "\e[1~": beginning-of-line
11
+ "\e[4~": end-of-line
12
+ "\e[7~": beginning-of-line
13
+ "\e[8~": end-of-line
14
+ "\eOH": beginning-of-line
15
+ "\eOF": end-of-line
16
+ "\e[H": beginning-of-line
17
+ "\e[F": end-of-line
data/docker-compose.yml CHANGED
@@ -6,7 +6,8 @@ services:
6
6
  ports: ["4560", "5222", "5269", "5280", "5443"]
7
7
 
8
8
  test:
9
- image: ruby:2.5
9
+ build: .
10
+ env_file: Envfile
10
11
  network_mode: bridge
11
12
  working_dir: /app
12
13
  volumes:
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "~> 5.2.0"
6
+
7
+ gemspec path: "../"
data/jabber_admin.gemspec CHANGED
@@ -5,48 +5,51 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'jabber_admin/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'jabber_admin'
9
- spec.version = JabberAdmin::VERSION
10
- spec.authors = ['Henning Vogt', 'Hermann Mayer']
11
- spec.licenses = ['MIT']
12
- spec.email = ['henning.vogt@hausgold.de', 'hermann.mayer@hausgold.de']
8
+ spec.name = 'jabber_admin'
9
+ spec.version = JabberAdmin::VERSION
10
+ spec.authors = ['Hermann Mayer', 'Henning Vogt']
11
+ spec.email = ['hermann.mayer92@gmail.com', 'henning.vogt@hausgold.de']
13
12
 
14
- spec.summary = 'Library for the ejabberd RESTful admin API'
13
+ spec.license = 'MIT'
14
+ spec.summary = 'Library for the ejabberd RESTful admin API'
15
15
  spec.description = 'Library for the ejabberd RESTful admin API'
16
- spec.homepage = 'https://github.com/hausgold/jabber_admin'
17
-
18
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the
19
- # 'allowed_push_host' to allow pushing to a single host or delete this
20
- # section to allow pushing to any host.
21
- if spec.respond_to?(:metadata)
22
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
23
- else
24
- raise 'RubyGems 2.0 or newer is required to protect against ' \
25
- 'public gem pushes.'
26
- end
27
16
 
28
- spec.required_ruby_version = '~> 2.5'
17
+ base_uri = "https://github.com/hausgold/#{spec.name}"
18
+ spec.metadata = {
19
+ 'homepage_uri' => base_uri,
20
+ 'source_code_uri' => base_uri,
21
+ 'changelog_uri' => "#{base_uri}/blob/master/CHANGELOG.md",
22
+ 'bug_tracker_uri' => "#{base_uri}/issues",
23
+ 'documentation_uri' => "https://www.rubydoc.info/gems/#{spec.name}"
24
+ }
29
25
 
30
26
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
31
27
  f.match(%r{^(test|spec|features)/})
32
28
  end
33
- spec.bindir = 'exe'
34
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+
30
+ spec.bindir = 'exe'
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
35
32
  spec.require_paths = ['lib']
36
33
 
37
- spec.add_dependency 'activesupport', '>= 5.2.0'
38
- spec.add_dependency 'rest-client', '~> 2.0', '>= 2.0.2'
34
+ spec.required_ruby_version = '>= 2.5'
35
+
36
+ spec.add_dependency 'activesupport', '>= 5.2'
37
+ spec.add_dependency 'rest-client', '~> 2.1'
39
38
 
40
- spec.add_development_dependency 'bundler', '>= 1.16', '< 3'
39
+ spec.add_development_dependency 'appraisal', '~> 2.4'
40
+ spec.add_development_dependency 'bundler', '~> 2.3'
41
+ spec.add_development_dependency 'countless', '~> 1.1'
42
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
41
43
  spec.add_development_dependency 'irb', '~> 1.2'
42
- spec.add_development_dependency 'railties', '>= 4.2.0', '< 6.1'
44
+ spec.add_development_dependency 'railties', '>= 5.2'
43
45
  spec.add_development_dependency 'rake', '~> 13.0'
44
- spec.add_development_dependency 'rspec', '~> 3.9'
45
- spec.add_development_dependency 'rubocop', '~> 0.93'
46
- spec.add_development_dependency 'rubocop-rspec', '~> 1.43'
47
- spec.add_development_dependency 'simplecov', '< 0.18'
46
+ spec.add_development_dependency 'rspec', '~> 3.12'
47
+ spec.add_development_dependency 'rubocop', '~> 1.28'
48
+ spec.add_development_dependency 'rubocop-rails', '~> 2.14'
49
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.10'
50
+ spec.add_development_dependency 'simplecov', '>= 0.22'
48
51
  spec.add_development_dependency 'vcr', '~> 6.0'
49
- spec.add_development_dependency 'webmock', '~> 3.0'
50
- spec.add_development_dependency 'yard', '~> 0.9.18'
51
- spec.add_development_dependency 'yard-activesupport-concern', '~> 0.0.1'
52
+ spec.add_development_dependency 'webmock', '~> 3.18'
53
+ spec.add_development_dependency 'yard', '>= 0.9.28'
54
+ spec.add_development_dependency 'yard-activesupport-concern', '>= 0.0.1'
52
55
  end
@@ -15,7 +15,7 @@ module JabberAdmin
15
15
  def self.call(callable, room:, host:, **options)
16
16
  name, service = room.split('@')
17
17
  options = options.map do |key, value|
18
- Hash['name', key.to_s, 'value', value.to_s]
18
+ { 'name' => key.to_s, 'value' => value.to_s }
19
19
  end
20
20
 
21
21
  callable.call('create_room_with_opts',
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # The gem module.
3
+ # The gem version details.
4
4
  module JabberAdmin
5
- # The version constant of the gem. Increase this value
6
- # in case of a gem release.
7
- VERSION = '1.0.5'
5
+ # The version of the +jabber_admin+ gem
6
+ VERSION = '1.2.0'
8
7
 
9
8
  class << self
10
9
  # Returns the version of gem as a string.
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jabber_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Henning Vogt
8
7
  - Hermann Mayer
9
- autorequire:
8
+ - Henning Vogt
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-01-20 00:00:00.000000000 Z
12
+ date: 2023-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,54 +17,84 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 5.2.0
20
+ version: '5.2'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 5.2.0
27
+ version: '5.2'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rest-client
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.0'
35
- - - ">="
36
- - !ruby/object:Gem::Version
37
- version: 2.0.2
34
+ version: '2.1'
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
38
  requirements:
42
39
  - - "~>"
43
40
  - !ruby/object:Gem::Version
44
- version: '2.0'
45
- - - ">="
41
+ version: '2.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: appraisal
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.4'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
46
54
  - !ruby/object:Gem::Version
47
- version: 2.0.2
55
+ version: '2.4'
48
56
  - !ruby/object:Gem::Dependency
49
57
  name: bundler
50
58
  requirement: !ruby/object:Gem::Requirement
51
59
  requirements:
52
- - - ">="
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.3'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: '1.16'
55
- - - "<"
69
+ version: '2.3'
70
+ - !ruby/object:Gem::Dependency
71
+ name: countless
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
56
75
  - !ruby/object:Gem::Version
57
- version: '3'
76
+ version: '1.1'
58
77
  type: :development
59
78
  prerelease: false
60
79
  version_requirements: !ruby/object:Gem::Requirement
61
80
  requirements:
62
- - - ">="
81
+ - - "~>"
63
82
  - !ruby/object:Gem::Version
64
- version: '1.16'
65
- - - "<"
83
+ version: '1.1'
84
+ - !ruby/object:Gem::Dependency
85
+ name: guard-rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.7'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
66
96
  - !ruby/object:Gem::Version
67
- version: '3'
97
+ version: '4.7'
68
98
  - !ruby/object:Gem::Dependency
69
99
  name: irb
70
100
  requirement: !ruby/object:Gem::Requirement
@@ -85,20 +115,14 @@ dependencies:
85
115
  requirements:
86
116
  - - ">="
87
117
  - !ruby/object:Gem::Version
88
- version: 4.2.0
89
- - - "<"
90
- - !ruby/object:Gem::Version
91
- version: '6.1'
118
+ version: '5.2'
92
119
  type: :development
93
120
  prerelease: false
94
121
  version_requirements: !ruby/object:Gem::Requirement
95
122
  requirements:
96
123
  - - ">="
97
124
  - !ruby/object:Gem::Version
98
- version: 4.2.0
99
- - - "<"
100
- - !ruby/object:Gem::Version
101
- version: '6.1'
125
+ version: '5.2'
102
126
  - !ruby/object:Gem::Dependency
103
127
  name: rake
104
128
  requirement: !ruby/object:Gem::Requirement
@@ -119,56 +143,70 @@ dependencies:
119
143
  requirements:
120
144
  - - "~>"
121
145
  - !ruby/object:Gem::Version
122
- version: '3.9'
146
+ version: '3.12'
123
147
  type: :development
124
148
  prerelease: false
125
149
  version_requirements: !ruby/object:Gem::Requirement
126
150
  requirements:
127
151
  - - "~>"
128
152
  - !ruby/object:Gem::Version
129
- version: '3.9'
153
+ version: '3.12'
130
154
  - !ruby/object:Gem::Dependency
131
155
  name: rubocop
132
156
  requirement: !ruby/object:Gem::Requirement
133
157
  requirements:
134
158
  - - "~>"
135
159
  - !ruby/object:Gem::Version
136
- version: '0.93'
160
+ version: '1.28'
137
161
  type: :development
138
162
  prerelease: false
139
163
  version_requirements: !ruby/object:Gem::Requirement
140
164
  requirements:
141
165
  - - "~>"
142
166
  - !ruby/object:Gem::Version
143
- version: '0.93'
167
+ version: '1.28'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rubocop-rails
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '2.14'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '2.14'
144
182
  - !ruby/object:Gem::Dependency
145
183
  name: rubocop-rspec
146
184
  requirement: !ruby/object:Gem::Requirement
147
185
  requirements:
148
186
  - - "~>"
149
187
  - !ruby/object:Gem::Version
150
- version: '1.43'
188
+ version: '2.10'
151
189
  type: :development
152
190
  prerelease: false
153
191
  version_requirements: !ruby/object:Gem::Requirement
154
192
  requirements:
155
193
  - - "~>"
156
194
  - !ruby/object:Gem::Version
157
- version: '1.43'
195
+ version: '2.10'
158
196
  - !ruby/object:Gem::Dependency
159
197
  name: simplecov
160
198
  requirement: !ruby/object:Gem::Requirement
161
199
  requirements:
162
- - - "<"
200
+ - - ">="
163
201
  - !ruby/object:Gem::Version
164
- version: '0.18'
202
+ version: '0.22'
165
203
  type: :development
166
204
  prerelease: false
167
205
  version_requirements: !ruby/object:Gem::Requirement
168
206
  requirements:
169
- - - "<"
207
+ - - ">="
170
208
  - !ruby/object:Gem::Version
171
- version: '0.18'
209
+ version: '0.22'
172
210
  - !ruby/object:Gem::Dependency
173
211
  name: vcr
174
212
  requirement: !ruby/object:Gem::Requirement
@@ -189,60 +227,66 @@ dependencies:
189
227
  requirements:
190
228
  - - "~>"
191
229
  - !ruby/object:Gem::Version
192
- version: '3.0'
230
+ version: '3.18'
193
231
  type: :development
194
232
  prerelease: false
195
233
  version_requirements: !ruby/object:Gem::Requirement
196
234
  requirements:
197
235
  - - "~>"
198
236
  - !ruby/object:Gem::Version
199
- version: '3.0'
237
+ version: '3.18'
200
238
  - !ruby/object:Gem::Dependency
201
239
  name: yard
202
240
  requirement: !ruby/object:Gem::Requirement
203
241
  requirements:
204
- - - "~>"
242
+ - - ">="
205
243
  - !ruby/object:Gem::Version
206
- version: 0.9.18
244
+ version: 0.9.28
207
245
  type: :development
208
246
  prerelease: false
209
247
  version_requirements: !ruby/object:Gem::Requirement
210
248
  requirements:
211
- - - "~>"
249
+ - - ">="
212
250
  - !ruby/object:Gem::Version
213
- version: 0.9.18
251
+ version: 0.9.28
214
252
  - !ruby/object:Gem::Dependency
215
253
  name: yard-activesupport-concern
216
254
  requirement: !ruby/object:Gem::Requirement
217
255
  requirements:
218
- - - "~>"
256
+ - - ">="
219
257
  - !ruby/object:Gem::Version
220
258
  version: 0.0.1
221
259
  type: :development
222
260
  prerelease: false
223
261
  version_requirements: !ruby/object:Gem::Requirement
224
262
  requirements:
225
- - - "~>"
263
+ - - ">="
226
264
  - !ruby/object:Gem::Version
227
265
  version: 0.0.1
228
266
  description: Library for the ejabberd RESTful admin API
229
267
  email:
268
+ - hermann.mayer92@gmail.com
230
269
  - henning.vogt@hausgold.de
231
- - hermann.mayer@hausgold.de
232
270
  executables: []
233
271
  extensions: []
234
272
  extra_rdoc_files: []
235
273
  files:
236
274
  - ".editorconfig"
237
275
  - ".github/workflows/documentation.yml"
276
+ - ".github/workflows/release.yml"
238
277
  - ".github/workflows/test.yml"
239
278
  - ".gitignore"
240
279
  - ".rspec"
241
280
  - ".rubocop.yml"
242
281
  - ".simplecov"
243
282
  - ".yardopts"
283
+ - Appraisals
244
284
  - CHANGELOG.md
285
+ - CODE_OF_CONDUCT.md
286
+ - Dockerfile
287
+ - Envfile
245
288
  - Gemfile
289
+ - Guardfile
246
290
  - LICENSE
247
291
  - Makefile
248
292
  - README.md
@@ -250,8 +294,12 @@ files:
250
294
  - bin/config.rb
251
295
  - bin/console
252
296
  - bin/setup
297
+ - config/docker/.bash_profile
298
+ - config/docker/.bashrc
299
+ - config/docker/.inputrc
253
300
  - doc/assets/project.svg
254
301
  - docker-compose.yml
302
+ - gemfiles/rails_5.2.gemfile
255
303
  - jabber_admin.gemspec
256
304
  - lib/jabber_admin.rb
257
305
  - lib/jabber_admin/api_call.rb
@@ -279,18 +327,22 @@ files:
279
327
  - lib/jabber_admin/configuration.rb
280
328
  - lib/jabber_admin/exceptions.rb
281
329
  - lib/jabber_admin/version.rb
282
- homepage: https://github.com/hausgold/jabber_admin
330
+ homepage:
283
331
  licenses:
284
332
  - MIT
285
333
  metadata:
286
- allowed_push_host: https://rubygems.org
287
- post_install_message:
334
+ homepage_uri: https://github.com/hausgold/jabber_admin
335
+ source_code_uri: https://github.com/hausgold/jabber_admin
336
+ changelog_uri: https://github.com/hausgold/jabber_admin/blob/master/CHANGELOG.md
337
+ bug_tracker_uri: https://github.com/hausgold/jabber_admin/issues
338
+ documentation_uri: https://www.rubydoc.info/gems/jabber_admin
339
+ post_install_message:
288
340
  rdoc_options: []
289
341
  require_paths:
290
342
  - lib
291
343
  required_ruby_version: !ruby/object:Gem::Requirement
292
344
  requirements:
293
- - - "~>"
345
+ - - ">="
294
346
  - !ruby/object:Gem::Version
295
347
  version: '2.5'
296
348
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -299,8 +351,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
351
  - !ruby/object:Gem::Version
300
352
  version: '0'
301
353
  requirements: []
302
- rubygems_version: 3.0.9
303
- signing_key:
354
+ rubygems_version: 3.3.26
355
+ signing_key:
304
356
  specification_version: 4
305
357
  summary: Library for the ejabberd RESTful admin API
306
358
  test_files: []