Skip to content

Commit 634cd34

Browse files
committed
#11 updated required documentation in all section and added view on github button
1 parent ee139be commit 634cd34

File tree

11 files changed

+190
-41
lines changed

11 files changed

+190
-41
lines changed

docs/_navbar.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
- [Home](/)
22

3-
- [Quick Start](quickstart.md)
3+
- [Quick Start](quickstart.md)
4+
- <a class="btn" target="_blank" type="button" href="https://github.com/navarasu/serverless-ruby-layer/">View on GitHub</a>

docs/configuration.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
1-
# Configuration
1+
# Configuration
2+
3+
The plugin operation can be customized by specifying `custom` configuration under `rubyLayer`.
4+
5+
For example,
6+
7+
```yml
8+
custom:
9+
rubyLayer:
10+
use_docker: true
11+
docker_yums:
12+
- postgresql-devel
13+
native_libs:
14+
- /usr/lib64/libpq.so.5
15+
```
16+
17+
### Configuration Options
18+
19+
20+
| Option | Type | Default | Detail |
21+
| ------------- |-------- |-------------- | --------------------|
22+
| **use_docker** | boolean | false | Set true to use Docker to bundle gems with OS native C extensions or system libraries |
23+
| **docker_yums** | array | undefined | List of yum libraries to be preinstalled for gems which requires OS native system libraries |
24+
| **native_libs** | array | undefined | Paths of the native libraries files that need to be packed in lambda layer along wuth gems |
25+
| **docker_file** | string | undefined | Path of the custom docker file to be used for bundling gems|

docs/index.html

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8">
5-
<title>Document</title>
5+
<title>Ruby Layer</title>
66
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
77
<meta name="description" content="Description">
88
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
99
<meta name="keywords" content="doc,docs,documentation,gitbook,creator,generator,github,jekyll,github-pages">
1010
<meta name="description" content="A magical documentation generator.">
1111
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
12-
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify-darklight-theme@3/dist/docsify-themeable/style.min.css" type="text/css">
13-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple.css" title="light">
14-
<link rel="stylesheet alternative" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple-dark.css" title="dark">
12+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify-darklight-theme/dist/docsify-themeable/style.min.css" type="text/css">
13+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable/dist/css/theme-simple.css" title="light">
14+
<link rel="stylesheet alternative" href="https://cdn.jsdelivr.net/npm/docsify-themeable/dist/css/theme-simple-dark.css" title="dark">
1515
<link rel="stylesheet" href="theme-custom.css">
1616
</head>
1717
<body>
@@ -57,6 +57,12 @@
5757
logoImage : 'url(assets/serverless-ruby-layer.png)'
5858
}
5959
},
60+
tabs: {
61+
persist: false,
62+
sync: false,
63+
theme: 'classic'
64+
65+
},
6066
plugins: [
6167
function(hook) {
6268
var footer = [
@@ -74,11 +80,13 @@
7480
</script>
7581
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
7682
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
77-
<script src="https://cdn.jsdelivr.net/npm/docsify-themeable@0"></script>
78-
<script src="https://cdn.jsdelivr.net/npm/docsify-copy-code@2"></script>
83+
<script src="https://cdn.jsdelivr.net/npm/docsify-themeable"></script>
84+
<script src="https://cdn.jsdelivr.net/npm/docsify-copy-code"></script>
85+
<script src="https://cdn.jsdelivr.net/npm/docsify-tabs"></script>
7986
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.20.0/components/prism-bash.min.js"></script>
8087
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.20.0/components/prism-yaml.js"></script>
8188
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.20.0/components/prism-ruby.min.js"></script>
89+
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/components/prism-docker.min.js"></script>
8290
<script src="https://cdn.jsdelivr.net/npm/docsify-pagination@2/dist/docsify-pagination.min.js"></script>
8391
<script src="//cdn.jsdelivr.net/npm/docsify-darklight-theme@3/dist/docsify-themeable/main.min.js" type="text/javascript"></script>
8492
<script src="//cdn.jsdelivr.net/npm/docsify-darklight-theme@3/dist/docsify-themeable/index.min.js" type="text/javascript">

docs/quickstart.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sls plugin install -n serverless-ruby-layer
88

99
*This will add the plugin to `package.json` and the plugins section of `serverless.yml`.*
1010

11-
## Simple Usage
11+
## Usage
1212

1313
*`serverless.yml`*
1414

@@ -36,4 +36,4 @@ functions:
3636

3737
Running `servleress deploy` automatically deploys the required gems as in Gemfile to AWS lambda layer and make the gems available to the `RUBY_PATH` of the functions `hello.handler`
3838

39-
Refer [here](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/basic) for example.
39+
Refer [example](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/basic) and [docs](serverless-ruby-layer/#/use_local_bundler) for more details

docs/release_notes.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,15 @@
1-
# Release notes
1+
# Release notes
2+
3+
### [1.1.0](https://www.npmjs.com/package/serverless-ruby-layer/v/1.1.0)
4+
#### Use-Docker Release
5+
* Added option to use docker to bundle gem with os specific C extensions
6+
* Auto excluded node_modules and vendor folder, Gemfile and Gemfile.lock from being deployed to function
7+
* Configured test and improved test coverage
8+
9+
10+
### [0.1.0](https://www.npmjs.com/package/serverless-ruby-layer/v/0.1.0)
11+
12+
#### First Release
13+
* Auto deploy the gems to AWS layer while doing serverless deploy
14+
* Also configure the layer to make the gem available to all functions declared in the serverless.yml
15+
* Uses local bundler to install the gem

docs/theme-custom.css

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,21 @@
55
height: 60px;
66
}
77

8-
.app-nav {
8+
.btn {
9+
background: none;
10+
color: var(--heading-color);
11+
padding: 8px 15px;
12+
border: 1px solid var(--heading-color);
13+
border-radius: 5px;
14+
}
15+
16+
button:focus {outline:0;}
17+
18+
button:hover {
19+
cursor: pointer;
20+
}
21+
22+
.app-nav {
923
margin: 15px 60px 0 0;
1024
position: absolute;
1125
right: 0;
@@ -14,7 +28,7 @@
1428
}
1529

1630
.app-nav.no-badge {
17-
margin-right: 25px
31+
margin-right: 125px
1832
}
1933

2034
.app-nav p {

docs/usage_examples/main.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11

22
## Usage and Examples
33

4-
4+
Using the custom configuration, the plugin can be utilized for below cases,
5+
* Using locallly installed bundler for gems which native extensions [Example](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/basic) - [Docs](/use_local_bundler)
6+
* Using Docker for gems with OS native C extensions or system libraries like `http`, `Nokogiri` - [Example](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/use_docker) - [Docs](use_docker)
7+
* Preinstall OS packages (yum packages) for gems which requires OS native system libraries like `pg`, `mysql`, `RMagick` - [Example](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/use_docker_with_yums) - [Docs](use_docker_with_yums)
8+
* Using Dockerfile for gems which with other OS linux image or system libraries and utilities - [Example](https://github.com/navarasu/serverless-ruby-layer/blob/master/examples/use_docker_file) - [Docs](use_docker_file)
59

docs/usage_examples/use_docker.md

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11

22
## Using Docker for gems with OS native C extensions or system libraries
33

4-
*Add custom config in `serverless.yml`*
4+
<!-- tabs:start -->
55

6-
```YML
7-
service: basic
6+
#### ** serverless.yml **
7+
8+
```yml
9+
service: using_docker
810

911
plugins:
1012
- serverless-ruby-layer
@@ -20,13 +22,31 @@ provider:
2022
functions:
2123
hello:
2224
handler: handler.hello
25+
2326
```
2427

25-
*Gemfile*
28+
#### ** Gemfile **
29+
30+
```ruby
31+
source 'https://rubygems.org'
32+
gem 'http'
33+
gem 'nokogiri'
34+
```
35+
36+
#### ** handler.rb **
2637

2738
```ruby
28-
source 'https://rubygems.org'
29-
gem 'http'
30-
gem 'nokogiri'
39+
require 'http'
40+
require 'nokogiri'
41+
42+
def hello(event:, context:)
43+
body = HTTP.get('https://github.com').body.to_s
44+
doc = Nokogiri::HTML(body)
45+
46+
{ statusCode: 200, body: doc.title }
47+
end
48+
49+
3150
```
3251

52+
<!-- tabs:end -->
Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11

22
## Using Dockerfile for gems which with other OS linux image or system libraries and utilities
33

4-
*Add custom config in `serverless.yml`*
54

6-
```YML
7-
service: basic
5+
<!-- tabs:start -->
6+
7+
#### ** serverless.yml **
8+
9+
```yml
10+
service: using-docker-file
811

912
plugins:
1013
- serverless-ruby-layer
@@ -13,6 +16,8 @@ custom:
1316
rubyLayer:
1417
use_docker: true
1518
docker_file: Dockerfile
19+
native_libs:
20+
- /usr/lib64/libpq.so.5
1621

1722
provider:
1823
name: aws
@@ -22,12 +27,35 @@ functions:
2227
hello:
2328
handler: handler.hello
2429
```
30+
#### ** Dockerfile **
31+
```docker
32+
FROM lambci/lambda:build-ruby2.5
33+
34+
RUN yum install -y postgresql-devel
35+
RUN gem update bundler
2536

26-
*Gemfile*
37+
CMD "/bin/bash"
38+
```
39+
40+
#### ** Gemfile **
2741

2842
```ruby
29-
source 'https://rubygems.org'
30-
gem 'http'
31-
gem 'nokogiri'
43+
source 'https://rubygems.org'
44+
gem 'pg'
45+
```
46+
47+
#### ** handler.rb **
48+
49+
```ruby
50+
require 'pg'
51+
52+
def hello(event:, context:)
53+
{ statusCode: 200, body: {
54+
"pg_version": PG.library_version
55+
}
56+
}
57+
end
58+
3259
```
3360

61+
<!-- tabs:end -->
Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<!-- # Customization -->
22

3-
## Preinstall OS packages (yum packages) for gems which requires OS native system libraries
3+
## Preinstall yum packages for gems which requires OS native system libraries
44

5-
*Add custom config in `serverless.yml`*
65

7-
```YML
8-
service: basic
6+
<!-- tabs:start -->
7+
8+
#### ** serverless.yml **
9+
10+
```yml
11+
service: using-docker-yums
912

1013
plugins:
1114
- serverless-ruby-layer
@@ -15,6 +18,8 @@ custom:
1518
use_docker: true
1619
docker_yums:
1720
- postgresql-devel
21+
native_libs:
22+
- /usr/lib64/libpq.so.5
1823

1924
provider:
2025
name: aws
@@ -23,13 +28,27 @@ provider:
2328
functions:
2429
hello:
2530
handler: handler.hello
31+
```
32+
33+
#### ** Gemfile **
34+
35+
```ruby
36+
source 'https://rubygems.org'
37+
gem 'pg'
2638
```
2739

28-
*Gemfile*
40+
#### ** handler.rb **
2941

3042
```ruby
31-
source 'https://rubygems.org'
32-
gem 'pg'
33-
gem 'nokogiri'
43+
require 'pg'
44+
45+
def hello(event:, context:)
46+
{ statusCode: 200, body: {
47+
"pg_version": PG.library_version
48+
}
49+
}
50+
end
51+
3452
```
3553

54+
<!-- tabs:end -->

0 commit comments

Comments
 (0)