punk 0.1.2 → 0.3.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 +4 -4
- data/.editorconfig +9 -0
- data/.github/workflows/ship.yml +3 -1
- data/.github/workflows/test.yml +26 -1
- data/.rdoc_options +23 -0
- data/.rgignore +1 -0
- data/.rspec +2 -0
- data/Gemfile +7 -8
- data/Gemfile.lock +28 -41
- data/README.md +7 -1
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/app/migrations/001_lets_punk.rb +3 -0
- data/app/routes/hello.rb +4 -0
- data/env/.gitignore +3 -0
- data/env/spec/test.sh +3 -0
- data/lib/punk/actions/.keep +0 -0
- data/lib/punk/actions/groups/list.rb +24 -0
- data/lib/punk/actions/sessions/clear.rb +21 -0
- data/lib/punk/actions/sessions/create.rb +64 -0
- data/lib/punk/actions/sessions/list.rb +18 -0
- data/lib/punk/actions/sessions/verify.rb +24 -0
- data/lib/punk/actions/tenants/list.rb +18 -0
- data/lib/punk/actions/users/list_group.rb +18 -0
- data/lib/punk/actions/users/list_tenant.rb +18 -0
- data/lib/punk/actions/users/show.rb +18 -0
- data/lib/punk/commands/list.rb +12 -6
- data/lib/punk/config/defaults.json +3 -0
- data/lib/punk/config/schema.json +3 -0
- data/lib/punk/core/app.rb +4 -6
- data/lib/punk/core/commander.rb +12 -7
- data/lib/punk/core/exec.rb +2 -0
- data/lib/punk/core/load.rb +0 -1
- data/lib/punk/framework/command.rb +5 -1
- data/lib/punk/framework/plugins/validation.rb +0 -14
- data/lib/punk/helpers/loggable.rb +1 -1
- data/lib/punk/migrations/001_punk.rb +103 -0
- data/lib/punk/models/.keep +0 -0
- data/lib/punk/models/group.rb +20 -0
- data/lib/punk/models/group_user_metadata.rb +17 -0
- data/lib/punk/models/identity.rb +29 -0
- data/lib/punk/models/session.rb +89 -0
- data/lib/punk/models/tenant.rb +19 -0
- data/lib/punk/models/tenant_user_metadata.rb +17 -0
- data/lib/punk/models/user.rb +31 -0
- data/lib/punk/routes/groups.rb +31 -0
- data/lib/punk/routes/plivo.rb +4 -0
- data/lib/punk/routes/sessions.rb +108 -0
- data/lib/punk/routes/swagger.rb +9 -0
- data/lib/punk/routes/tenants.rb +29 -0
- data/lib/punk/routes/users.rb +36 -0
- data/lib/punk/services/.keep +0 -0
- data/lib/punk/services/challenge_claim.rb +46 -0
- data/lib/punk/services/create_identities.rb +25 -0
- data/lib/punk/services/generate_swagger.rb +25 -0
- data/lib/punk/services/prove_claim.rb +29 -0
- data/lib/punk/services/secret.rb +9 -0
- data/lib/punk/templates/groups/list.jbuilder +7 -0
- data/lib/punk/templates/plivo.slim +16 -0
- data/lib/punk/templates/sessions/list.jbuilder +6 -0
- data/lib/punk/templates/sessions/pending.jbuilder +4 -0
- data/lib/punk/templates/tenants/list.jbuilder +7 -0
- data/lib/punk/templates/tenants/list.slim +8 -0
- data/lib/punk/templates/users/list.jbuilder +7 -0
- data/lib/punk/templates/users/list.rcsv +4 -0
- data/lib/punk/templates/users/show.jbuilder +5 -0
- data/lib/punk/views/groups/list.rb +22 -0
- data/lib/punk/views/plivo_store.rb +15 -0
- data/lib/punk/views/sessions/list.rb +22 -0
- data/lib/punk/views/sessions/pending.rb +28 -0
- data/lib/punk/views/tenants/list.rb +22 -0
- data/lib/punk/views/users/list.rb +22 -0
- data/lib/punk/views/users/show.rb +22 -0
- data/lib/punk/workers/.keep +0 -0
- data/lib/punk/workers/expire_sessions.rb +9 -0
- data/lib/punk/workers/geocode_session_worker.rb +48 -0
- data/lib/punk/workers/identify_session_worker.rb +45 -0
- data/lib/punk/workers/secret.rb +18 -0
- data/lib/punk/workers/send_email_worker.rb +51 -0
- data/lib/punk/workers/send_sms_worker.rb +40 -0
- data/punk.gemspec +147 -21
- data/schema.psql +345 -0
- data/spec/actions/groups/punk/list_groups_action_spec.rb +36 -0
- data/spec/actions/sessions/punk/clear_session_action_spec.rb +29 -0
- data/spec/actions/sessions/punk/create_session_action_spec.rb +33 -0
- data/spec/actions/sessions/punk/list_sessions_action_spec.rb +26 -0
- data/spec/actions/sessions/punk/verify_session_action_spec.rb +59 -0
- data/spec/actions/tenants/punk/list_tenants_action_spec.rb +25 -0
- data/spec/actions/users/punk/list_group_users_action_spec.rb +26 -0
- data/spec/actions/users/punk/list_tenant_users_action_spec.rb +26 -0
- data/spec/factories/group.rb +12 -0
- data/spec/factories/group_user_metadata.rb +10 -0
- data/spec/factories/identity.rb +19 -0
- data/spec/factories/session.rb +12 -0
- data/spec/factories/tenant.rb +10 -0
- data/spec/factories/tenant_user_metadata.rb +10 -0
- data/spec/factories/user.rb +12 -0
- data/spec/lib/commands/auth_spec.rb +11 -0
- data/spec/lib/commands/generate_spec.rb +7 -0
- data/spec/lib/commands/http_spec.rb +23 -0
- data/spec/lib/commands/list_spec.rb +7 -0
- data/spec/lib/commands/swagger_spec.rb +7 -0
- data/spec/lib/engine/punk_env_spec.rb +13 -0
- data/spec/lib/engine/punk_exec_spec.rb +9 -0
- data/spec/lib/engine/punk_init_spec.rb +9 -0
- data/spec/lib/engine/punk_store_spec.rb +10 -0
- data/spec/lib/punk.env +7 -0
- data/spec/models/punk/group_spec.rb +50 -0
- data/spec/models/punk/group_user_metadata_spec.rb +61 -0
- data/spec/models/punk/identity_spec.rb +61 -0
- data/spec/models/punk/session_spec.rb +156 -0
- data/spec/models/punk/tenant_spec.rb +51 -0
- data/spec/models/punk/tenant_user_metadata_spec.rb +61 -0
- data/spec/models/punk/user_spec.rb +115 -0
- data/spec/routes/groups/get_groups_spec.rb +33 -0
- data/spec/routes/plivo/get_plivo_spec.rb +11 -0
- data/spec/routes/sessions/delete_session_spec.rb +11 -0
- data/spec/routes/sessions/get_sessions_spec.rb +30 -0
- data/spec/routes/sessions/patch_session_spec.rb +11 -0
- data/spec/routes/sessions/post_session_spec.rb +11 -0
- data/spec/routes/swagger/get_swagger_spec.rb +12 -0
- data/spec/routes/tenants/get_tenants_spec.rb +31 -0
- data/spec/routes/users/get_users_spec.rb +60 -0
- data/spec/services/punk/challenge_claim_service_spec.rb +7 -0
- data/spec/services/punk/create_identities_service_spec.rb +14 -0
- data/spec/services/punk/generate_swagger_service_spec.rb +7 -0
- data/spec/services/punk/prove_claim_service_spec.rb +7 -0
- data/spec/services/punk/secret_service_spec.rb +7 -0
- data/spec/spec_helper.rb +122 -0
- data/spec/vcr_cassettes/PUNK_GeocodeSessionWorker/updates_the_session_data.yml +57 -0
- data/spec/vcr_cassettes/PUNK_IdentifySessionWorker/updates_the_session_data.yml +112 -0
- data/spec/views/punk/plivo_store_spec.rb +7 -0
- data/spec/views/sessions/punk/list_sessions_view_spec.rb +7 -0
- data/spec/views/sessions/punk/pending_session_view_spec.rb +7 -0
- data/spec/views/tenants/punk/list_tenants_view_spec.rb +7 -0
- data/spec/views/users/punk/list_groups_view_spec.rb +7 -0
- data/spec/views/users/punk/list_users_view_spec.rb +7 -0
- data/spec/workers/punk/expire_sessions_worker_spec.rb +31 -0
- data/spec/workers/punk/geocode_session_worker_spec.rb +14 -0
- data/spec/workers/punk/identify_session_worker_spec.rb +15 -0
- data/spec/workers/punk/secret_worker_spec.rb +20 -0
- data/spec/workers/punk/send_email_worker_spec.rb +46 -0
- data/spec/workers/punk/send_sms_worker_spec.rb +33 -0
- metadata +154 -16
- data/lib/punk/views/all.rb +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 02d2a524887bd63a01e56b8f95e42f484ea2fe2b881595ffeb521e2658aabc5f
|
|
4
|
+
data.tar.gz: 6ef472cb4212009585a6e0aa5c3d5460aa3ee2e6dbb3eb07aaf0238e673fd28c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6c93503cdb55dc5a3df437f5af392232c12b86e8c03426486dcf2b7dfcf4e9c2b2918a80cd03fa0a20798ada7287797ddd830405fcf40fbee1833474b742555d
|
|
7
|
+
data.tar.gz: c920f18c82d66f6027a4d119d0285c05343176f4439c8b2b40566e6e3c9749be288fcb9133ec6a15ce777c45eaa81c463e3b19f2d2322c9a44fc6d34f8b143c7
|
data/.editorconfig
ADDED
data/.github/workflows/ship.yml
CHANGED
|
@@ -21,6 +21,8 @@ jobs:
|
|
|
21
21
|
touch $HOME/.gem/credentials
|
|
22
22
|
chmod 0600 $HOME/.gem/credentials
|
|
23
23
|
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
24
|
-
bundle exec rake
|
|
24
|
+
bundle exec rake gemspec
|
|
25
|
+
bundle exec rake build
|
|
26
|
+
gem push pkg/*
|
|
25
27
|
env:
|
|
26
28
|
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
data/.github/workflows/test.yml
CHANGED
|
@@ -7,6 +7,28 @@ jobs:
|
|
|
7
7
|
runs-on: ubuntu-latest
|
|
8
8
|
env:
|
|
9
9
|
PUNK_ENV: test
|
|
10
|
+
COVERALLS_REPO_TOKEN: "${{secrets.COVERALLS_REPO_TOKEN}}"
|
|
11
|
+
IPSTACK_ACCESS_KEY: "${{secrets.IPSTACK_ACCESS_KEY}}"
|
|
12
|
+
USERSTACK_API_KEY: "${{secrets.USERSTACK_API_KEY}}"
|
|
13
|
+
DATABASE_URL: "postgres://postgres:postgres@localhost/punk_test"
|
|
14
|
+
|
|
15
|
+
services:
|
|
16
|
+
postgres:
|
|
17
|
+
image: postgres
|
|
18
|
+
env:
|
|
19
|
+
POSTGRES_PASSWORD: postgres
|
|
20
|
+
options: >-
|
|
21
|
+
--health-cmd pg_isready
|
|
22
|
+
--health-interval 10s
|
|
23
|
+
--health-timeout 5s
|
|
24
|
+
--health-retries 5
|
|
25
|
+
ports:
|
|
26
|
+
- 5432:5432
|
|
27
|
+
memcached:
|
|
28
|
+
image: memcached
|
|
29
|
+
ports:
|
|
30
|
+
- 11211:11211
|
|
31
|
+
options: --health-cmd "timeout 5 bash -c 'cat < /dev/null > /dev/udp/127.0.0.1/11211'" --health-interval 10s --health-timeout 5s --health-retries 5
|
|
10
32
|
steps:
|
|
11
33
|
- uses: actions/checkout@v2
|
|
12
34
|
- name: Set up Ruby
|
|
@@ -17,4 +39,7 @@ jobs:
|
|
|
17
39
|
- name: Lint files
|
|
18
40
|
run: bundle exec rubocop
|
|
19
41
|
- name: Run specs
|
|
20
|
-
run:
|
|
42
|
+
run: |
|
|
43
|
+
bundle exec ruby ./bin/punk db create
|
|
44
|
+
bundle exec ruby ./bin/punk db migrate
|
|
45
|
+
bundle exec rspec
|
data/.rdoc_options
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
--- !ruby/object:RDoc::Options
|
|
2
|
+
encoding: UTF-8
|
|
3
|
+
static_path: []
|
|
4
|
+
rdoc_include:
|
|
5
|
+
- "."
|
|
6
|
+
- "/Users/jason/dev/rocket_engine"
|
|
7
|
+
charset: UTF-8
|
|
8
|
+
exclude:
|
|
9
|
+
hyperlink_all: false
|
|
10
|
+
line_numbers: false
|
|
11
|
+
locale:
|
|
12
|
+
locale_dir: locale
|
|
13
|
+
locale_name:
|
|
14
|
+
main_page:
|
|
15
|
+
markup: markdown
|
|
16
|
+
output_decoration: true
|
|
17
|
+
page_dir:
|
|
18
|
+
show_hash: false
|
|
19
|
+
tab_width: 8
|
|
20
|
+
template_stylesheets: []
|
|
21
|
+
title:
|
|
22
|
+
visibility: :protected
|
|
23
|
+
webcvs:
|
data/.rgignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*.lock
|
data/.rspec
ADDED
data/Gemfile
CHANGED
|
@@ -47,7 +47,7 @@ gem 'aasm', '~> 5.1'
|
|
|
47
47
|
|
|
48
48
|
# Authentication
|
|
49
49
|
gem 'http-accept', '~> 2.1'
|
|
50
|
-
gem '
|
|
50
|
+
gem 'ipstack', '~> 0.1'
|
|
51
51
|
gem 'rbnacl', '~> 7.1'
|
|
52
52
|
gem 'userstack', '~> 0.1'
|
|
53
53
|
|
|
@@ -62,15 +62,15 @@ gem 'mailgun-ruby', '~> 1.2'
|
|
|
62
62
|
gem 'plivo', '~> 4.15'
|
|
63
63
|
|
|
64
64
|
# HTTP Framework
|
|
65
|
-
gem 'roda', '~> 3.
|
|
65
|
+
gem 'roda', '~> 3.40'
|
|
66
66
|
gem 'roda-route_list', '~> 2.1'
|
|
67
67
|
|
|
68
68
|
# HTML Rendering
|
|
69
69
|
gem 'slim', '~> 4.1'
|
|
70
70
|
|
|
71
71
|
# JSON Rendering
|
|
72
|
-
gem 'jbuilder', '~> 2.
|
|
73
|
-
gem 'oj', '~> 3.
|
|
72
|
+
gem 'jbuilder', '~> 2.11'
|
|
73
|
+
gem 'oj', '~> 3.11'
|
|
74
74
|
gem 'tilt-jbuilder', '~> 0.7'
|
|
75
75
|
|
|
76
76
|
# Documentation Generation
|
|
@@ -81,7 +81,8 @@ gem 'swagger_yard', '~> 1.0'
|
|
|
81
81
|
gem 'activesupport', '~> 6.1'
|
|
82
82
|
|
|
83
83
|
# Monitoring
|
|
84
|
-
gem 'sentry-
|
|
84
|
+
gem 'sentry-ruby', '~> 4.1'
|
|
85
|
+
gem 'sentry-sidekiq', '~> 4.1'
|
|
85
86
|
gem 'skylight', '~> 4.3'
|
|
86
87
|
|
|
87
88
|
# Phone Numbers
|
|
@@ -96,18 +97,16 @@ end
|
|
|
96
97
|
|
|
97
98
|
# Testing
|
|
98
99
|
group :test do
|
|
99
|
-
gem 'capybara', '~> 3.34'
|
|
100
100
|
gem 'coveralls', '~> 0.8'
|
|
101
101
|
gem 'factory_bot', '~> 6.1'
|
|
102
102
|
gem 'faker', '~> 2.15'
|
|
103
103
|
gem 'rack-test', '~> 1.1'
|
|
104
104
|
gem 'rspec', '~> 3.10'
|
|
105
105
|
gem 'rspec-its', '~> 1.3'
|
|
106
|
-
gem 'rubocop', '~> 1.
|
|
106
|
+
gem 'rubocop', '~> 1.8'
|
|
107
107
|
gem 'rubocop-rails', '~> 2.9'
|
|
108
108
|
gem 'rubocop-rspec', '~> 2.1'
|
|
109
109
|
gem 'rubocop-sequel', '~> 0.1'
|
|
110
|
-
gem 'selenium-webdriver', '~> 3.142'
|
|
111
110
|
gem 'timecop', '~> 0.9'
|
|
112
111
|
gem 'vcr', '~> 6.0'
|
|
113
112
|
gem 'webmock', '~> 3.11'
|
data/Gemfile.lock
CHANGED
|
@@ -3,7 +3,7 @@ GEM
|
|
|
3
3
|
specs:
|
|
4
4
|
aasm (5.1.1)
|
|
5
5
|
concurrent-ruby (~> 1.0)
|
|
6
|
-
activesupport (6.1.
|
|
6
|
+
activesupport (6.1.1)
|
|
7
7
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
8
8
|
i18n (>= 1.6, < 2)
|
|
9
9
|
minitest (>= 5.1)
|
|
@@ -13,25 +13,16 @@ GEM
|
|
|
13
13
|
public_suffix (>= 2.0.2, < 5.0)
|
|
14
14
|
amazing_print (1.2.2)
|
|
15
15
|
ansi (1.5.0)
|
|
16
|
-
ast (2.4.
|
|
16
|
+
ast (2.4.2)
|
|
17
17
|
bootsnap (1.5.1)
|
|
18
18
|
msgpack (~> 1.0)
|
|
19
19
|
builder (3.2.4)
|
|
20
20
|
byebug (11.1.3)
|
|
21
|
-
capybara (3.34.0)
|
|
22
|
-
addressable
|
|
23
|
-
mini_mime (>= 0.1.3)
|
|
24
|
-
nokogiri (~> 1.8)
|
|
25
|
-
rack (>= 1.6.0)
|
|
26
|
-
rack-test (>= 0.6.3)
|
|
27
|
-
regexp_parser (~> 1.5)
|
|
28
|
-
xpath (~> 3.2)
|
|
29
|
-
childprocess (3.0.0)
|
|
30
21
|
chronic (0.10.2)
|
|
31
22
|
coderay (1.1.3)
|
|
32
23
|
commander (4.5.2)
|
|
33
24
|
highline (~> 2.0.0)
|
|
34
|
-
concurrent-ruby (1.1.
|
|
25
|
+
concurrent-ruby (1.1.8)
|
|
35
26
|
connection_pool (2.2.3)
|
|
36
27
|
coveralls (0.8.23)
|
|
37
28
|
json (>= 1.8, < 3)
|
|
@@ -46,7 +37,7 @@ GEM
|
|
|
46
37
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
47
38
|
diff-lcs (1.4.4)
|
|
48
39
|
dim (1.2.8)
|
|
49
|
-
docile (1.3.
|
|
40
|
+
docile (1.3.5)
|
|
50
41
|
domain_name (0.5.20190701)
|
|
51
42
|
unf (>= 0.0.5, < 1.0.0)
|
|
52
43
|
dot_hash (1.1.8)
|
|
@@ -62,7 +53,7 @@ GEM
|
|
|
62
53
|
faraday_middleware (1.0.0)
|
|
63
54
|
faraday (~> 1.0)
|
|
64
55
|
ffi (1.14.2)
|
|
65
|
-
fugit (1.4.
|
|
56
|
+
fugit (1.4.2)
|
|
66
57
|
et-orbi (~> 1.1, >= 1.1.8)
|
|
67
58
|
raabro (~> 1.4)
|
|
68
59
|
gemfile_updater (0.1.0)
|
|
@@ -83,7 +74,9 @@ GEM
|
|
|
83
74
|
domain_name (~> 0.5)
|
|
84
75
|
i18n (1.8.7)
|
|
85
76
|
concurrent-ruby (~> 1.0)
|
|
86
|
-
|
|
77
|
+
ipstack (0.1.3)
|
|
78
|
+
nokogiri (>= 1.8, < 2.0)
|
|
79
|
+
jbuilder (2.11.1)
|
|
87
80
|
activesupport (>= 5.0.0)
|
|
88
81
|
json (2.5.1)
|
|
89
82
|
juwelier (2.4.9)
|
|
@@ -105,12 +98,10 @@ GEM
|
|
|
105
98
|
addressable (~> 2.7)
|
|
106
99
|
mailgun-ruby (1.2.0)
|
|
107
100
|
rest-client (~> 2.0.2)
|
|
108
|
-
maxmind-db (1.1.1)
|
|
109
101
|
method_source (1.0.0)
|
|
110
102
|
mime-types (3.3.1)
|
|
111
103
|
mime-types-data (~> 3.2015)
|
|
112
104
|
mime-types-data (3.2020.1104)
|
|
113
|
-
mini_mime (1.0.2)
|
|
114
105
|
mini_portile2 (2.5.0)
|
|
115
106
|
minitest (5.14.3)
|
|
116
107
|
msgpack (1.3.3)
|
|
@@ -128,7 +119,7 @@ GEM
|
|
|
128
119
|
multi_json (~> 1.3)
|
|
129
120
|
multi_xml (~> 0.5)
|
|
130
121
|
rack (>= 1.2, < 3)
|
|
131
|
-
oj (3.
|
|
122
|
+
oj (3.11.1)
|
|
132
123
|
papertrail (0.11.0)
|
|
133
124
|
ansi (~> 1.5)
|
|
134
125
|
chronic (~> 0.10)
|
|
@@ -171,13 +162,13 @@ GEM
|
|
|
171
162
|
rchardet (1.8.0)
|
|
172
163
|
rdoc (6.3.0)
|
|
173
164
|
redis (4.2.5)
|
|
174
|
-
regexp_parser (
|
|
165
|
+
regexp_parser (2.0.3)
|
|
175
166
|
rest-client (2.0.2)
|
|
176
167
|
http-cookie (>= 1.0.2, < 2.0)
|
|
177
168
|
mime-types (>= 1.16, < 4.0)
|
|
178
169
|
netrc (~> 0.8)
|
|
179
170
|
rexml (3.2.4)
|
|
180
|
-
roda (3.
|
|
171
|
+
roda (3.40.0)
|
|
181
172
|
rack
|
|
182
173
|
roda-route_list (2.1.0)
|
|
183
174
|
roda
|
|
@@ -197,7 +188,7 @@ GEM
|
|
|
197
188
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
198
189
|
rspec-support (~> 3.10.0)
|
|
199
190
|
rspec-support (3.10.1)
|
|
200
|
-
rubocop (1.8.
|
|
191
|
+
rubocop (1.8.1)
|
|
201
192
|
parallel (~> 1.10)
|
|
202
193
|
parser (>= 3.0.0.0)
|
|
203
194
|
rainbow (>= 2.2.2, < 4.0)
|
|
@@ -206,7 +197,7 @@ GEM
|
|
|
206
197
|
rubocop-ast (>= 1.2.0, < 2.0)
|
|
207
198
|
ruby-progressbar (~> 1.7)
|
|
208
199
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
209
|
-
rubocop-ast (1.4.
|
|
200
|
+
rubocop-ast (1.4.1)
|
|
210
201
|
parser (>= 2.7.1.5)
|
|
211
202
|
rubocop-rails (2.9.1)
|
|
212
203
|
activesupport (>= 4.2.0)
|
|
@@ -218,20 +209,19 @@ GEM
|
|
|
218
209
|
rubocop-sequel (0.1.0)
|
|
219
210
|
rubocop (~> 1.0)
|
|
220
211
|
ruby-progressbar (1.11.0)
|
|
221
|
-
rubyzip (2.3.0)
|
|
222
|
-
selenium-webdriver (3.142.7)
|
|
223
|
-
childprocess (>= 0.5, < 4.0)
|
|
224
|
-
rubyzip (>= 1.2.2)
|
|
225
212
|
semantic_logger (4.7.4)
|
|
226
213
|
concurrent-ruby (~> 1.0)
|
|
227
214
|
semver2 (3.4.2)
|
|
228
|
-
sentry-
|
|
215
|
+
sentry-ruby (4.1.4)
|
|
216
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
229
217
|
faraday (>= 1.0)
|
|
218
|
+
sentry-sidekiq (4.1.2)
|
|
219
|
+
sentry-ruby (~> 4.1.2)
|
|
230
220
|
sequel (5.40.0)
|
|
231
221
|
sequel_pg (1.14.0)
|
|
232
222
|
pg (>= 0.18.0, != 1.2.0)
|
|
233
223
|
sequel (>= 4.38.0)
|
|
234
|
-
sidekiq (6.1.
|
|
224
|
+
sidekiq (6.1.3)
|
|
235
225
|
connection_pool (>= 2.2.2)
|
|
236
226
|
rack (~> 2.0)
|
|
237
227
|
redis (>= 4.2.0)
|
|
@@ -257,14 +247,14 @@ GEM
|
|
|
257
247
|
temple (0.8.2)
|
|
258
248
|
term-ansicolor (1.7.1)
|
|
259
249
|
tins (~> 1.0)
|
|
260
|
-
thor (1.0
|
|
250
|
+
thor (1.1.0)
|
|
261
251
|
thread_safe (0.3.6)
|
|
262
252
|
tilt (2.0.10)
|
|
263
253
|
tilt-jbuilder (0.7.1)
|
|
264
254
|
jbuilder
|
|
265
255
|
tilt (>= 1.3.0, < 3)
|
|
266
256
|
timecop (0.9.2)
|
|
267
|
-
tins (1.
|
|
257
|
+
tins (1.28.0)
|
|
268
258
|
sync
|
|
269
259
|
tzinfo (2.0.4)
|
|
270
260
|
concurrent-ruby (~> 1.0)
|
|
@@ -274,13 +264,11 @@ GEM
|
|
|
274
264
|
unicode-display_width (2.0.0)
|
|
275
265
|
userstack (0.1.0)
|
|
276
266
|
vcr (6.0.0)
|
|
277
|
-
webmock (3.11.
|
|
267
|
+
webmock (3.11.1)
|
|
278
268
|
addressable (>= 2.3.6)
|
|
279
269
|
crack (>= 0.3.2)
|
|
280
270
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
281
271
|
wisper (2.0.1)
|
|
282
|
-
xpath (3.2.0)
|
|
283
|
-
nokogiri (~> 1.8)
|
|
284
272
|
yard (0.9.26)
|
|
285
273
|
zeitwerk (2.4.2)
|
|
286
274
|
|
|
@@ -294,7 +282,6 @@ DEPENDENCIES
|
|
|
294
282
|
bootsnap (~> 1.5)
|
|
295
283
|
bundler (~> 1.17)
|
|
296
284
|
byebug (~> 11.1)
|
|
297
|
-
capybara (~> 3.34)
|
|
298
285
|
commander (~> 4.5)
|
|
299
286
|
coveralls (~> 0.8)
|
|
300
287
|
dalli (~> 2.7)
|
|
@@ -305,12 +292,12 @@ DEPENDENCIES
|
|
|
305
292
|
faker (~> 2.15)
|
|
306
293
|
gemfile_updater (~> 0.1)
|
|
307
294
|
http-accept (~> 2.1)
|
|
308
|
-
|
|
295
|
+
ipstack (~> 0.1)
|
|
296
|
+
jbuilder (~> 2.11)
|
|
309
297
|
juwelier (~> 2.4)
|
|
310
298
|
launchy (~> 2.5)
|
|
311
299
|
mailgun-ruby (~> 1.2)
|
|
312
|
-
|
|
313
|
-
oj (~> 3.10)
|
|
300
|
+
oj (~> 3.11)
|
|
314
301
|
papertrail (~> 0.11)
|
|
315
302
|
pg (~> 1.2)
|
|
316
303
|
phony (~> 2.18)
|
|
@@ -325,17 +312,17 @@ DEPENDENCIES
|
|
|
325
312
|
rack-unreloader (~> 1.7)
|
|
326
313
|
rbnacl (~> 7.1)
|
|
327
314
|
rdoc (~> 6.3)
|
|
328
|
-
roda (~> 3.
|
|
315
|
+
roda (~> 3.40)
|
|
329
316
|
roda-route_list (~> 2.1)
|
|
330
317
|
rspec (~> 3.10)
|
|
331
318
|
rspec-its (~> 1.3)
|
|
332
|
-
rubocop (~> 1.
|
|
319
|
+
rubocop (~> 1.8)
|
|
333
320
|
rubocop-rails (~> 2.9)
|
|
334
321
|
rubocop-rspec (~> 2.1)
|
|
335
322
|
rubocop-sequel (~> 0.1)
|
|
336
|
-
selenium-webdriver (~> 3.142)
|
|
337
323
|
semantic_logger (~> 4.7)
|
|
338
|
-
sentry-
|
|
324
|
+
sentry-ruby (~> 4.1)
|
|
325
|
+
sentry-sidekiq (~> 4.1)
|
|
339
326
|
sequel (~> 5.40)
|
|
340
327
|
sequel_pg (~> 1.14)
|
|
341
328
|
sidekiq (~> 6.1)
|
data/README.md
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
[](https://github.com/kranzky/punk/actions?query=workflow%3Atest)
|
|
2
|
-
[](https://coveralls.io/github/kranzky/punk?branch=main)
|
|
3
3
|
[](https://badge.fury.io/rb/punk)
|
|
4
4
|
|
|
5
5
|
# Punk!
|
|
6
6
|
|
|
7
7
|
Punk! is an omakase web framework for rapid prototyping.
|
|
8
8
|
|
|
9
|
+
## Release Process
|
|
10
|
+
|
|
11
|
+
1. `rake version:bump:whatever`
|
|
12
|
+
2. `rake git:release BRANCH=main`
|
|
13
|
+
3. Create new release on GitHub to trigger ship workflow
|
|
14
|
+
|
|
9
15
|
## Copyright
|
|
10
16
|
|
|
11
17
|
Copyright (c) 2021 Jason Hutchens. See LICENSE for further details.
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.3.2
|
data/app/routes/hello.rb
ADDED
data/env/.gitignore
ADDED
data/env/spec/test.sh
ADDED
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module PUNK
|
|
4
|
+
class ListGroupsAction < Action
|
|
5
|
+
args :user, :tenant
|
|
6
|
+
|
|
7
|
+
def validate
|
|
8
|
+
validates_not_null :user
|
|
9
|
+
validates_not_empty :user
|
|
10
|
+
return if user.blank?
|
|
11
|
+
validates_not_null :tenant
|
|
12
|
+
validates_not_empty :tenant
|
|
13
|
+
return if tenant.blank?
|
|
14
|
+
validates_type User, :user
|
|
15
|
+
validates_type Tenant, :tenant
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def process
|
|
19
|
+
# TODO: repository here
|
|
20
|
+
# an action takes arguments (that may be entities) and returns a view object
|
|
21
|
+
present ListGroupsView, groups: user.groups_dataset.where(tenant: tenant).all
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|