redwing 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f1dcc893ae2dc858f82bba7d62fd9e053228df58f407facf0c3007d8c61ae43f
4
+ data.tar.gz: 82ed81b3391106060b8366a1b48f8f446fdb19fc23efaa8d29424b0f2d4cf77f
5
+ SHA512:
6
+ metadata.gz: 7e391b0b3967aa994cfeb6ba6c467f6cd0183fec5bb6e3a752e0eff4395e7729226f549f0a268f36b9788c39cb41e31a0da71dd8c37495c8ea71275c203a2ce1
7
+ data.tar.gz: 1c9968054b294c5c9fde9e4ac36aef0b6224fdd93a81d7ab1458f3abc0b1855ae67016ec1db52321a0501468277004b51536a5e79873ac4620c0d0d10e658887
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # redwing
2
+
3
+ Sometimes, all you need is a little server. That´s `redwing` for you. What you make out of it, is up to you.
data/bin/redwing ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ lib_path = File.expand_path('../lib', __dir__)
5
+ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
6
+
7
+ require 'redwing/command'
8
+
9
+ Redwing::Command.invoke ARGV.dup
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'redwing/commands/console_command'
4
+ require 'redwing/commands/server_command'
5
+
6
+ module Redwing
7
+ module Command
8
+ COMMAND_WHITELIST = {
9
+ console: %w[console c],
10
+ server: %w[server s]
11
+ }.freeze
12
+
13
+ def self.invoke(argv)
14
+ command_name = COMMAND_WHITELIST.find { |_, aliases| aliases.include?(argv.first) }&.first
15
+ args = argv.drop(1)
16
+
17
+ case command_name
18
+ when :console
19
+ Redwing::Commands::ConsoleCommand.start(args)
20
+ when :server
21
+ Redwing::Commands::ServerCommand.start(args)
22
+ else
23
+ warn "Unknown command: #{argv.first}"
24
+ exit(1)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require 'redwing/version'
5
+
6
+ module Redwing
7
+ module Commands
8
+ class ConsoleCommand < Thor
9
+ desc 'console', 'Start an interactive Redwing console'
10
+
11
+ def console
12
+ app_root = Dir.pwd
13
+ app_file = File.join(app_root, 'config', 'application.rb')
14
+ load app_file if File.exist?(app_file)
15
+
16
+ puts "Redwing #{Redwing::VERSION} console (#{RUBY_ENGINE} #{RUBY_VERSION})"
17
+
18
+ begin
19
+ require 'pry'
20
+ Pry.start
21
+ rescue LoadError
22
+ require 'irb'
23
+ IRB.start(__FILE__)
24
+ end
25
+ end
26
+
27
+ default_task :console
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require 'redwing/server'
5
+
6
+ module Redwing
7
+ module Commands
8
+ class ServerCommand < Thor
9
+ desc 'server', 'Start the Redwing server'
10
+
11
+ method_option :host, type: :string, default: 'localhost', aliases: '-b', desc: 'Bind to host'
12
+ method_option :port, type: :numeric, default: 3001, aliases: '-p', desc: 'Listen on port'
13
+
14
+ def server
15
+ Redwing::Server.start(host: options[:host], port: options[:port])
16
+ end
17
+
18
+ default_task :server
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rack'
4
+ require 'rackup'
5
+
6
+ module Redwing
7
+ module Server
8
+ def self.start(host:, port:)
9
+ app = proc do |env|
10
+ _request = Rack::Request.new(env)
11
+ [200, {}, ['hello world']]
12
+ end
13
+
14
+ handler = Rackup::Handler.get('puma')
15
+ handler.run(app, Host: host, Port: port)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Redwing
4
+ VERSION = '0.0.3'
5
+
6
+ def self.gem_version
7
+ Gem::Version.new VERSION
8
+ end
9
+ end
data/lib/redwing.rb ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/dependencies/autoload'
4
+ require 'redwing/version'
5
+
6
+ module Redwing
7
+ extend ActiveSupport::Autoload
8
+ end
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: redwing
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Marek Witkowski
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '8.1'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 8.1.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '8.1'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 8.1.3
32
+ - !ruby/object:Gem::Dependency
33
+ name: puma
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '7.2'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: '7.2'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rack
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '3.2'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 3.2.5
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '3.2'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 3.2.5
66
+ - !ruby/object:Gem::Dependency
67
+ name: rack-cors
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '3.0'
73
+ type: :runtime
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: rackup
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '2.3'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.3.1
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.3'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 2.3.1
100
+ - !ruby/object:Gem::Dependency
101
+ name: thor
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '1.5'
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '1.5'
114
+ - !ruby/object:Gem::Dependency
115
+ name: pry
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.16.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.16.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: rspec
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '3.13'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '3.13'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rubocop
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 1.86.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 1.86.0
156
+ description: Rails inspired (web) application framework
157
+ email: info@marekwitkowski.de
158
+ executables:
159
+ - redwing
160
+ extensions: []
161
+ extra_rdoc_files: []
162
+ files:
163
+ - README.md
164
+ - bin/redwing
165
+ - lib/redwing.rb
166
+ - lib/redwing/command.rb
167
+ - lib/redwing/commands/console_command.rb
168
+ - lib/redwing/commands/server_command.rb
169
+ - lib/redwing/server.rb
170
+ - lib/redwing/version.rb
171
+ homepage: https://github.com/mrmarekwitkowski/redwing
172
+ licenses:
173
+ - MIT
174
+ metadata:
175
+ bug_tracker_uri: https://github.com/mrmarekwitkowski/redwing/issues
176
+ homepage_uri: https://github.com/mrmarekwitkowski/redwing
177
+ source_code_uri: https://github.com/mrmarekwitkowski/redwing
178
+ rubygems_mfa_required: 'true'
179
+ rdoc_options: []
180
+ require_paths:
181
+ - lib
182
+ required_ruby_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '3.4'
187
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '3.3'
192
+ requirements: []
193
+ rubygems_version: 3.6.9
194
+ specification_version: 4
195
+ summary: Redwing
196
+ test_files: []