stimpack 0.1.0 → 0.4.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/README.md +16 -5
- data/lib/stimpack/pack/configuration.rb +3 -4
- data/lib/stimpack/pack.rb +7 -1
- data/lib/stimpack/packs.rb +1 -1
- data/lib/stimpack/railtie.rb +1 -1
- data/lib/stimpack/version.rb +1 -1
- data/lib/stimpack.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cb6166834b2ea8ebd3623491464ee321b457fc4347c7f8af80e8efa47c18785
|
4
|
+
data.tar.gz: b165b651e620abd0197c509070049a2f9ff5523f2b5c4ab32b2b7d26392c8b16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81f1124b9c8901a6a681f00385f9a5d67c48d035925c241b69ab68f0c9745d7b4c15decd45d59b1fceb6d9b552ec23c4431f900a230f77ef1954c5edba740bf0
|
7
|
+
data.tar.gz: e4c881c3356dab09454183967508051133a1054054fc10dc9106cae7fb5b2ef3378ff5c68da93dcfb119e55004144cb539c70ebf8c875ca9e301a4ecdafd2e94
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Stimpack
|
2
2
|
|
3
|
-
`stimpack`
|
3
|
+
`stimpack` establishes and implements a set of conventions for splitting up large monoliths built on top of [`packwerk`](https://github.com/Shopify/packwerk). With `stimpack`, new packages' autoload paths are automatically added to Rails, so your code will immediately become usable and loadable without additional configuration.
|
4
4
|
|
5
5
|
Here is an example application that uses `stimpack`:
|
6
6
|
```
|
@@ -24,12 +24,12 @@ packs/
|
|
24
24
|
some_other_non_namespaced_private_model.rb # this works too
|
25
25
|
my_domain/
|
26
26
|
my_private_namespacd_model.rb
|
27
|
-
config/
|
28
|
-
initializers/ # Initializers can live in packs and load as expected
|
29
27
|
controllers/
|
30
28
|
views/
|
31
|
-
|
32
|
-
|
29
|
+
config/
|
30
|
+
initializers/ # Initializers can live in packs and load as expected
|
31
|
+
lib/
|
32
|
+
tasks/
|
33
33
|
spec/ # With stimpack, specs for a pack live next to the pack
|
34
34
|
public/
|
35
35
|
my_domain_spec.rb
|
@@ -71,6 +71,17 @@ module MyCoolApp
|
|
71
71
|
end
|
72
72
|
```
|
73
73
|
|
74
|
+
### Splitting routes
|
75
|
+
`stimpack` allows you to split your application routes for every pack. You just have to create a file describing your routes and then `draw` them in your root `config/routes.rb` file.
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
# packs/my_domain/config/routes/my_domain.rb
|
79
|
+
resources :my_resource
|
80
|
+
|
81
|
+
# config/routes.rb
|
82
|
+
draw(:my_domain)
|
83
|
+
```
|
84
|
+
|
74
85
|
### Making your Package an Engine
|
75
86
|
Add `engine: true` to your `package.yml` to make it an actual Rails engine:
|
76
87
|
```yml
|
@@ -3,11 +3,10 @@
|
|
3
3
|
module Stimpack
|
4
4
|
class Pack
|
5
5
|
class Configuration
|
6
|
-
FILE = "package.yml"
|
7
6
|
KEY = "metadata"
|
8
7
|
|
9
|
-
def initialize(
|
10
|
-
@
|
8
|
+
def initialize(path)
|
9
|
+
@path = path
|
11
10
|
end
|
12
11
|
|
13
12
|
def engine
|
@@ -18,7 +17,7 @@ module Stimpack
|
|
18
17
|
private
|
19
18
|
|
20
19
|
def data
|
21
|
-
@data ||= YAML.load_file(@
|
20
|
+
@data ||= YAML.load_file(@path).fetch(KEY, {}).freeze
|
22
21
|
end
|
23
22
|
end
|
24
23
|
end
|
data/lib/stimpack/pack.rb
CHANGED
@@ -2,12 +2,18 @@
|
|
2
2
|
|
3
3
|
module Stimpack
|
4
4
|
class Pack
|
5
|
+
PACKAGE_FILE = "package.yml"
|
6
|
+
|
5
7
|
autoload :Configuration, "stimpack/pack/configuration"
|
6
8
|
|
7
9
|
attr_reader :name
|
8
10
|
attr_reader :path
|
9
11
|
attr_reader :engine
|
10
12
|
|
13
|
+
def self.create(path)
|
14
|
+
new(path) if path.join(PACKAGE_FILE).exist?
|
15
|
+
end
|
16
|
+
|
11
17
|
def initialize(path)
|
12
18
|
@path = path
|
13
19
|
@name = path.relative_path_from(Packs.root)
|
@@ -22,7 +28,7 @@ module Stimpack
|
|
22
28
|
end
|
23
29
|
|
24
30
|
def config
|
25
|
-
@config ||= Configuration.new(
|
31
|
+
@config ||= Configuration.new(path.join(PACKAGE_FILE))
|
26
32
|
end
|
27
33
|
|
28
34
|
private
|
data/lib/stimpack/packs.rb
CHANGED
@@ -14,7 +14,7 @@ module Stimpack
|
|
14
14
|
def resolve
|
15
15
|
# Gather all the packs under the root directory and create packs.
|
16
16
|
root.children.select(&:directory?).sort!.each do |path|
|
17
|
-
pack = Pack.
|
17
|
+
next unless pack = Pack.create(path)
|
18
18
|
@packs[pack.name] = pack
|
19
19
|
end
|
20
20
|
@packs.freeze
|
data/lib/stimpack/railtie.rb
CHANGED
data/lib/stimpack/version.rb
CHANGED
data/lib/stimpack.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ngan Pham
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|