camille 0.1.0 → 0.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 +4 -4
- data/Gemfile.lock +0 -8
- data/lib/camille/code_generator.rb +1 -5
- data/lib/camille/controller_extension.rb +0 -3
- data/lib/camille/loader.rb +2 -33
- data/lib/camille/main_controller.rb +13 -0
- data/lib/camille/railtie.rb +11 -2
- data/lib/camille/version.rb +1 -1
- data/lib/camille.rb +1 -0
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5911a8f4d1519a2a373ebee118bce4f110d64f5eaeafece5c8c8e46580b5c20
|
4
|
+
data.tar.gz: b59a4600bd145350d1217219b0074ffb6e80d8cdc97318995b6ba2b0bffe7450
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3088068a948ca92e1a6bc90690c5f27d5e2c788c3f76e2ba40b5ebf62b7c3fdffac809411941a3f05a77ace636ce16bf7742c12c1ae5700c4b45d7bfb9fdddfb
|
7
|
+
data.tar.gz: c6f0a0b72216805bf591bc4289172e69382f702ccc14d161a3b63267dc83816a47045e9d61884029349543aac5ecf5aeb43bbc82f0c95ef23ff7df569037b8b6
|
data/Gemfile.lock
CHANGED
@@ -2,7 +2,6 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
camille (0.1.0)
|
5
|
-
listen (~> 3.3)
|
6
5
|
rails (>= 6.1, < 8)
|
7
6
|
|
8
7
|
GEM
|
@@ -79,14 +78,10 @@ GEM
|
|
79
78
|
date (3.3.3)
|
80
79
|
diff-lcs (1.5.0)
|
81
80
|
erubi (1.12.0)
|
82
|
-
ffi (1.15.5)
|
83
81
|
globalid (1.1.0)
|
84
82
|
activesupport (>= 5.0)
|
85
83
|
i18n (1.12.0)
|
86
84
|
concurrent-ruby (~> 1.0)
|
87
|
-
listen (3.8.0)
|
88
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
89
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
90
85
|
loofah (2.19.1)
|
91
86
|
crass (~> 1.0.2)
|
92
87
|
nokogiri (>= 1.5.9)
|
@@ -142,9 +137,6 @@ GEM
|
|
142
137
|
thor (~> 1.0)
|
143
138
|
zeitwerk (~> 2.5)
|
144
139
|
rake (13.0.6)
|
145
|
-
rb-fsevent (0.11.2)
|
146
|
-
rb-inotify (0.10.1)
|
147
|
-
ffi (~> 1.0)
|
148
140
|
rspec (3.12.0)
|
149
141
|
rspec-core (~> 3.12.0)
|
150
142
|
rspec-expectations (~> 3.12.0)
|
@@ -4,6 +4,7 @@ module Camille
|
|
4
4
|
module CodeGenerator
|
5
5
|
def self.generate_ts
|
6
6
|
io = StringIO.new
|
7
|
+
io.puts "// This file is automatically generated."
|
7
8
|
io.puts Camille::Configuration.ts_header
|
8
9
|
io.puts
|
9
10
|
Camille::Types.literal_lines.each do |line|
|
@@ -17,10 +18,5 @@ module Camille
|
|
17
18
|
io.string
|
18
19
|
end
|
19
20
|
|
20
|
-
def self.generate_ts_file
|
21
|
-
if Camille::Configuration.ts_location
|
22
|
-
File.open(Camille::Configuration.ts_location, 'w'){|f| f.write generate_ts}
|
23
|
-
end
|
24
|
-
end
|
25
21
|
end
|
26
22
|
end
|
data/lib/camille/loader.rb
CHANGED
@@ -19,7 +19,6 @@ module Camille
|
|
19
19
|
|
20
20
|
eager_load
|
21
21
|
construct_controller_name_to_schema_map
|
22
|
-
Camille::CodeGenerator.generate_ts_file
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
@@ -41,14 +40,10 @@ module Camille
|
|
41
40
|
@zeitwerk_loader.reload
|
42
41
|
eager_load
|
43
42
|
construct_controller_name_to_schema_map
|
44
|
-
Camille::CodeGenerator.generate_ts_file
|
45
43
|
end
|
46
44
|
end
|
47
45
|
|
48
46
|
def register_routes router_context
|
49
|
-
if exception = Camille::Loader.exception
|
50
|
-
raise exception
|
51
|
-
end
|
52
47
|
Camille::Loader.loaded_schemas.each do |schema|
|
53
48
|
schema.endpoints.each do |name, endpoint|
|
54
49
|
router_context.public_send(endpoint.verb, endpoint.path, controller: schema.path.gsub(/^\//, ''), action: endpoint.name, as: false)
|
@@ -86,34 +81,8 @@ module Camille
|
|
86
81
|
|
87
82
|
def reload
|
88
83
|
synchronize do
|
89
|
-
|
90
|
-
|
91
|
-
reload_types_and_schemas
|
92
|
-
Rails.application.reload_routes!
|
93
|
-
|
94
|
-
# just for spec
|
95
|
-
@last_reload = Time.now
|
96
|
-
rescue Exception => e
|
97
|
-
Rails.logger.error e
|
98
|
-
@exception = e
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def exception
|
104
|
-
synchronize do
|
105
|
-
@exception
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def setup_listen app
|
110
|
-
if !app.config.cache_classes
|
111
|
-
require 'listen'
|
112
|
-
listener = Listen.to("#{app.root}/config/camille") do |changed|
|
113
|
-
#puts "Change detected. Camille reloading..."
|
114
|
-
Camille::Loader.reload
|
115
|
-
end
|
116
|
-
listener.start
|
84
|
+
reload_types_and_schemas
|
85
|
+
Rails.application.reload_routes!
|
117
86
|
end
|
118
87
|
end
|
119
88
|
|
data/lib/camille/railtie.rb
CHANGED
@@ -8,16 +8,25 @@ module Camille
|
|
8
8
|
ActionController::Base.include(Camille::ControllerExtension)
|
9
9
|
|
10
10
|
Camille::Loader.setup_zeitwerk_loader(app)
|
11
|
-
Camille::Loader.setup_listen(app)
|
12
11
|
|
13
12
|
app.routes.prepend do
|
13
|
+
get '/camille/endpoints.ts' => 'camille/main#endpoints_ts'
|
14
14
|
Camille::Loader.register_routes(self)
|
15
15
|
end
|
16
16
|
|
17
|
+
dir = "#{Rails.root}/config/camille"
|
18
|
+
|
19
|
+
update_checker = ActiveSupport::FileUpdateChecker.new([], {dir => ['rb']}) do
|
20
|
+
Camille::Loader.reload
|
21
|
+
end
|
22
|
+
|
23
|
+
app.reloaders << update_checker
|
24
|
+
|
17
25
|
app.reloader.to_run do
|
18
26
|
require_unload_lock!
|
19
|
-
|
27
|
+
update_checker.execute_if_updated
|
20
28
|
end
|
29
|
+
|
21
30
|
end
|
22
31
|
|
23
32
|
end
|
data/lib/camille/version.rb
CHANGED
data/lib/camille.rb
CHANGED
@@ -28,6 +28,7 @@ require_relative "camille/controller_extension"
|
|
28
28
|
require_relative "camille/loader"
|
29
29
|
require_relative "camille/configuration"
|
30
30
|
require_relative "camille/code_generator"
|
31
|
+
require_relative "camille/main_controller"
|
31
32
|
|
32
33
|
module Camille
|
33
34
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: camille
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 辻彩
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,20 +30,6 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '8'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: listen
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '3.3'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '3.3'
|
47
33
|
description: ''
|
48
34
|
email:
|
49
35
|
- cichol@live.cn
|
@@ -67,6 +53,7 @@ files:
|
|
67
53
|
- lib/camille/endpoint.rb
|
68
54
|
- lib/camille/line.rb
|
69
55
|
- lib/camille/loader.rb
|
56
|
+
- lib/camille/main_controller.rb
|
70
57
|
- lib/camille/railtie.rb
|
71
58
|
- lib/camille/schema.rb
|
72
59
|
- lib/camille/schemas.rb
|