trinamo 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +111 -7
- data/lib/trinamo/converter.rb +54 -0
- data/lib/trinamo/converter/base_converter.rb +13 -0
- data/lib/trinamo/converter/dynamodb_converter.rb +33 -0
- data/lib/trinamo/converter/hdfs_converter.rb +19 -0
- data/lib/trinamo/converter/s3_converter.rb +27 -0
- data/lib/trinamo/version.rb +1 -1
- data/trinamo.gemspec +1 -1
- metadata +9 -9
- data/.idea/encodings.xml +0 -6
- data/.idea/misc.xml +0 -14
- data/.idea/modules.xml +0 -8
- data/.idea/trinamo.iml +0 -52
- data/CODE_OF_CONDUCT.md +0 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aaf548285a2c17c8ef8913b70e42058c5dd7d1d2
|
4
|
+
data.tar.gz: 223310522802f3482caa2b46556c068a4f1cd9a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ef96ddbe9510141e62835a003e9cbfa03ea518e59fd348ac257bd48b578ef1a0f7e77b6947d50f4cb77e0cd79b40b51e00fc6690fcf2d351cf2bc99ff6412af
|
7
|
+
data.tar.gz: 58e45dcfe9dd86704894282028a5a6f5666f758f0d76052cd52e3e628acfa73c7d90fd55909e51b7941727452a7391b70d78dcf6c2b9b0be7145926d12a02f9c
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
# Trinamo
|
2
2
|
|
3
|
-
|
3
|
+
Trinamo generates DDL for Hive from YAML
|
4
|
+
to mount tables of DynamoDB, S3 and local HDFS.
|
4
5
|
|
5
|
-
|
6
|
+
```
|
7
|
+
Notice:
|
8
|
+
This is experimental stuff! Do not use in production.
|
9
|
+
```
|
6
10
|
|
7
11
|
## Installation
|
8
12
|
|
@@ -22,17 +26,117 @@ Or install it yourself as:
|
|
22
26
|
|
23
27
|
## Usage
|
24
28
|
|
25
|
-
|
29
|
+
### Create a DDL template
|
30
|
+
|
31
|
+
* RUN:
|
32
|
+
```ruby
|
33
|
+
Trinamo::Converter.generate_template(out_file_path = 'ddl.yml')
|
34
|
+
```
|
35
|
+
|
36
|
+
* OUTPUT:
|
37
|
+
```yaml
|
38
|
+
dynamo_read_percent: 0.75
|
39
|
+
tables:
|
40
|
+
- name: comments
|
41
|
+
s3_location: s3://path/to/s3/table/location
|
42
|
+
s3_partition:
|
43
|
+
- name: date
|
44
|
+
type: string
|
45
|
+
hash_key:
|
46
|
+
- name: user_id
|
47
|
+
type: bigint
|
48
|
+
range_key:
|
49
|
+
- name: comment_id
|
50
|
+
type: bigint
|
51
|
+
attributes:
|
52
|
+
- name: title
|
53
|
+
type: string
|
54
|
+
- name: content
|
55
|
+
type: string
|
56
|
+
- name: rate
|
57
|
+
type: double
|
58
|
+
- name: authors
|
59
|
+
hash_key:
|
60
|
+
- name: author_id
|
61
|
+
type: bigint
|
62
|
+
attributes:
|
63
|
+
- name: name
|
64
|
+
type: string
|
65
|
+
```
|
66
|
+
|
67
|
+
### Create a mapper for DynamoDB
|
68
|
+
|
69
|
+
* RUN:
|
70
|
+
```ruby
|
71
|
+
Trinamo::Converter.load('ddl.yml', :dynamodb).convert
|
72
|
+
```
|
73
|
+
|
74
|
+
* OUTPUT:
|
75
|
+
```hql
|
76
|
+
SET dynamodb.throughput.read.percent = 0.75;
|
77
|
+
SET hive.exec.compress.output=true;
|
78
|
+
SET io.seqfile.compression.type=BLOCK;
|
79
|
+
SET mapred.output.compression.codec = com.hadoop.compression.lzo.LzoCodec;
|
80
|
+
|
81
|
+
-- comments_ddb
|
82
|
+
CREATE EXTERNAL TABLE comments_ddb (
|
83
|
+
user_id BIGINT,comment_id BIGINT,title STRING,content STRING,rate DOUBLE
|
84
|
+
)
|
85
|
+
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
|
86
|
+
TBLPROPERTIES (
|
87
|
+
'dynamodb.table.name' = 'comments',
|
88
|
+
'dynamodb.column.mapping' = 'user_id:user_id,comment_id:comment_id,title:title,content:content,rate:rate'
|
89
|
+
);
|
90
|
+
|
91
|
+
-- authors_ddb
|
92
|
+
CREATE EXTERNAL TABLE authors_ddb (
|
93
|
+
author_id BIGINT,name STRING
|
94
|
+
)
|
95
|
+
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
|
96
|
+
TBLPROPERTIES (
|
97
|
+
'dynamodb.table.name' = 'authors',
|
98
|
+
'dynamodb.column.mapping' = 'author_id:author_id,name:name'
|
99
|
+
);
|
100
|
+
```
|
101
|
+
|
102
|
+
### Create a mapper for S3
|
103
|
+
* RUN:
|
104
|
+
```ruby
|
105
|
+
Trinamo::Converter.load('ddl.yml', :s3).convert
|
106
|
+
```
|
26
107
|
|
27
|
-
|
108
|
+
* OUTPUT:
|
109
|
+
```hql
|
110
|
+
-- comments_s3
|
111
|
+
CREATE EXTERNAL TABLE comments_s3 (
|
112
|
+
user_id BIGINT,comment_id BIGINT,title STRING,content STRING,rate DOUBLE
|
113
|
+
) PARTITIONED BY (date STRING)
|
114
|
+
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
|
115
|
+
LOCATION 's3://path/to/s3/table/location';
|
116
|
+
```
|
28
117
|
|
29
|
-
|
118
|
+
### Create a mapper for HDFS local
|
119
|
+
* RUN:
|
120
|
+
```ruby
|
121
|
+
Trinamo::Converter.load('ddl.yml', :hdfs).convert
|
122
|
+
```
|
30
123
|
|
31
|
-
|
124
|
+
* OUTPUT:
|
125
|
+
```hql
|
126
|
+
-- comments_hdfs
|
127
|
+
CREATE TABLE comments_hdfs (
|
128
|
+
user_id BIGINT,comment_id BIGINT,title STRING,content STRING,rate DOUBLE
|
129
|
+
);
|
130
|
+
|
131
|
+
-- authors_hdfs
|
132
|
+
CREATE TABLE authors_hdfs (
|
133
|
+
author_id BIGINT,name STRING
|
134
|
+
);
|
135
|
+
```
|
32
136
|
|
33
137
|
## Contributing
|
34
138
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
139
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/cignoir/trinamo.
|
36
140
|
|
37
141
|
|
38
142
|
## License
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'unindent'
|
2
|
+
require_relative './converter/dynamodb_converter'
|
3
|
+
require_relative './converter/hdfs_converter'
|
4
|
+
require_relative './converter/s3_converter'
|
5
|
+
|
6
|
+
module Trinamo
|
7
|
+
class Converter
|
8
|
+
class << self
|
9
|
+
def load(ddl_yaml_path, format)
|
10
|
+
case format
|
11
|
+
when :hdfs then HdfsConverter.new(ddl_yaml_path)
|
12
|
+
when :s3 then S3Converter.new(ddl_yaml_path)
|
13
|
+
when :dynamodb then DynamodbConverter.new(ddl_yaml_path)
|
14
|
+
else raise "[ERROR] Unknown format: #{format}" unless [:dynamodb, :hdfs, :s3].include(format)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def generate_template(out_file_path = nil)
|
19
|
+
template = <<-TEMPLATE.unindent
|
20
|
+
dynamo_read_percent: 0.75
|
21
|
+
tables:
|
22
|
+
- name: comments
|
23
|
+
s3_location: s3://path/to/s3/table/location
|
24
|
+
s3_partition:
|
25
|
+
- name: date
|
26
|
+
type: string
|
27
|
+
hash_key:
|
28
|
+
- name: user_id
|
29
|
+
type: bigint
|
30
|
+
range_key:
|
31
|
+
- name: comment_id
|
32
|
+
type: bigint
|
33
|
+
attributes:
|
34
|
+
- name: title
|
35
|
+
type: string
|
36
|
+
- name: content
|
37
|
+
type: string
|
38
|
+
- name: rate
|
39
|
+
type: double
|
40
|
+
- name: authors
|
41
|
+
hash_key:
|
42
|
+
- name: author_id
|
43
|
+
type: bigint
|
44
|
+
attributes:
|
45
|
+
- name: name
|
46
|
+
type: string
|
47
|
+
TEMPLATE
|
48
|
+
|
49
|
+
File.binwrite(out_file_path, template) if out_file_path
|
50
|
+
template
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'active_support/core_ext/hash'
|
3
|
+
|
4
|
+
module Trinamo
|
5
|
+
class BaseConverter
|
6
|
+
attr_accessor :ddl_yaml_path, :ddl
|
7
|
+
|
8
|
+
def initialize(ddl_yaml_path)
|
9
|
+
@ddl_yaml_path = ddl_yaml_path
|
10
|
+
@ddl = YAML.load_file(ddl_yaml_path).deep_symbolize_keys
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative './base_converter'
|
2
|
+
|
3
|
+
module Trinamo
|
4
|
+
class DynamodbConverter < BaseConverter
|
5
|
+
def convert
|
6
|
+
read_percent = @ddl[:dynamo_read_percent] ? @ddl[:dynamo_read_percent] : 0.5
|
7
|
+
|
8
|
+
ddl_header = <<-DDL.unindent
|
9
|
+
SET dynamodb.throughput.read.percent = #{read_percent};
|
10
|
+
SET hive.exec.compress.output=true;
|
11
|
+
SET io.seqfile.compression.type=BLOCK;
|
12
|
+
SET mapred.output.compression.codec = com.hadoop.compression.lzo.LzoCodec;
|
13
|
+
DDL
|
14
|
+
|
15
|
+
ddl_body = @ddl[:tables].map do |h|
|
16
|
+
fields = ([h[:hash_key]] + [h[:range_key]] + [h[:attributes]]).flatten.compact
|
17
|
+
<<-DDL.unindent
|
18
|
+
-- #{h[:name]}_ddb
|
19
|
+
CREATE EXTERNAL TABLE #{h[:name]}_ddb (
|
20
|
+
#{fields.map { |attr| "#{attr[:name]} #{attr[:type].upcase}" }.join(',')}
|
21
|
+
)
|
22
|
+
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
|
23
|
+
TBLPROPERTIES (
|
24
|
+
'dynamodb.table.name' = '#{h[:name]}',
|
25
|
+
'dynamodb.column.mapping' = '#{fields.map { |attr| "#{attr[:name]}:#{attr[:name]}" }.join(',') }'
|
26
|
+
);
|
27
|
+
DDL
|
28
|
+
end
|
29
|
+
|
30
|
+
([ddl_header] + ddl_body).join("\n")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative './base_converter'
|
2
|
+
|
3
|
+
module Trinamo
|
4
|
+
class HdfsConverter < BaseConverter
|
5
|
+
def convert
|
6
|
+
ddl_body = @ddl[:tables].map do |h|
|
7
|
+
fields = ([h[:hash_key]] + [h[:range_key]] + [h[:attributes]]).flatten.compact
|
8
|
+
<<-DDL.unindent
|
9
|
+
-- #{h[:name]}_hdfs
|
10
|
+
CREATE TABLE #{h[:name]}_hdfs (
|
11
|
+
#{fields.map { |attr| "#{attr[:name]} #{attr[:type].upcase}" }.join(',')}
|
12
|
+
);
|
13
|
+
DDL
|
14
|
+
end
|
15
|
+
|
16
|
+
ddl_body.join("\n")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative './base_converter'
|
2
|
+
|
3
|
+
module Trinamo
|
4
|
+
class S3Converter < BaseConverter
|
5
|
+
def convert
|
6
|
+
ddl_body = @ddl[:tables].map do |h|
|
7
|
+
if h[:s3_location]
|
8
|
+
fields = ([h[:hash_key]] + [h[:range_key]] + [h[:attributes]]).flatten.compact
|
9
|
+
partitioned_by = h[:s3_partition] ? "PARTITIONED BY (#{h[:s3_partition].map { |attr| "#{attr[:name]} #{attr[:type].upcase}" }.join(',')})" : ''
|
10
|
+
<<-DDL.unindent
|
11
|
+
-- #{h[:name]}_s3
|
12
|
+
CREATE EXTERNAL TABLE #{h[:name]}_s3 (
|
13
|
+
#{fields.map { |attr| "#{attr[:name]} #{attr[:type].upcase}" }.join(',')}
|
14
|
+
) #{partitioned_by}
|
15
|
+
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n'
|
16
|
+
LOCATION '#{h[:s3_location]}';
|
17
|
+
DDL
|
18
|
+
else
|
19
|
+
STDERR.puts "[ERROR] The location of #{h[:name]}_s3 is not found"
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
ddl_body.compact.join("\n")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/trinamo/version.rb
CHANGED
data/trinamo.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["cignoir"]
|
10
10
|
spec.email = ["cignoir@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
12
|
+
spec.summary = %q{DDL Generator for Hive from YAML}
|
13
13
|
spec.description = %q{}
|
14
14
|
spec.homepage = "https://github.com/cignoir/trinamo"
|
15
15
|
spec.license = "MIT"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trinamo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cignoir
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -88,14 +88,8 @@ extensions: []
|
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
90
|
- ".gitignore"
|
91
|
-
- ".idea/encodings.xml"
|
92
|
-
- ".idea/misc.xml"
|
93
|
-
- ".idea/modules.xml"
|
94
|
-
- ".idea/trinamo.iml"
|
95
|
-
- ".idea/workspace.xml"
|
96
91
|
- ".rspec"
|
97
92
|
- ".travis.yml"
|
98
|
-
- CODE_OF_CONDUCT.md
|
99
93
|
- Gemfile
|
100
94
|
- LICENSE.txt
|
101
95
|
- README.md
|
@@ -103,6 +97,11 @@ files:
|
|
103
97
|
- bin/console
|
104
98
|
- bin/setup
|
105
99
|
- lib/trinamo.rb
|
100
|
+
- lib/trinamo/converter.rb
|
101
|
+
- lib/trinamo/converter/base_converter.rb
|
102
|
+
- lib/trinamo/converter/dynamodb_converter.rb
|
103
|
+
- lib/trinamo/converter/hdfs_converter.rb
|
104
|
+
- lib/trinamo/converter/s3_converter.rb
|
106
105
|
- lib/trinamo/hive_type.rb
|
107
106
|
- lib/trinamo/version.rb
|
108
107
|
- trinamo.gemspec
|
@@ -129,5 +128,6 @@ rubyforge_project:
|
|
129
128
|
rubygems_version: 2.4.5.1
|
130
129
|
signing_key:
|
131
130
|
specification_version: 4
|
132
|
-
summary:
|
131
|
+
summary: DDL Generator for Hive from YAML
|
133
132
|
test_files: []
|
133
|
+
has_rdoc:
|
data/.idea/encodings.xml
DELETED
data/.idea/misc.xml
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
4
|
-
<OptionsSetting value="true" id="Add" />
|
5
|
-
<OptionsSetting value="true" id="Remove" />
|
6
|
-
<OptionsSetting value="true" id="Checkout" />
|
7
|
-
<OptionsSetting value="true" id="Update" />
|
8
|
-
<OptionsSetting value="true" id="Status" />
|
9
|
-
<OptionsSetting value="true" id="Edit" />
|
10
|
-
<ConfirmationsSetting value="0" id="Add" />
|
11
|
-
<ConfirmationsSetting value="0" id="Remove" />
|
12
|
-
</component>
|
13
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.1.5-p273" project-jdk-type="RUBY_SDK" />
|
14
|
-
</project>
|
data/.idea/modules.xml
DELETED
data/.idea/trinamo.iml
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
3
|
-
<component name="FacetManager">
|
4
|
-
<facet type="gem" name="New Gem">
|
5
|
-
<configuration>
|
6
|
-
<option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
|
7
|
-
<option name="GEM_APP_TEST_PATH" value="$MODULE_DIR$/test" />
|
8
|
-
<option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
|
9
|
-
</configuration>
|
10
|
-
</facet>
|
11
|
-
</component>
|
12
|
-
<component name="ModuleRunConfigurationManager">
|
13
|
-
<configuration default="false" name="test.rb" type="RubyRunConfigurationType" factoryName="Ruby">
|
14
|
-
<module name="trinamo" />
|
15
|
-
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
16
|
-
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
|
17
|
-
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
18
|
-
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
19
|
-
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
20
|
-
<envs />
|
21
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
22
|
-
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
23
|
-
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov" />
|
24
|
-
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/test.rb" />
|
25
|
-
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
26
|
-
<method />
|
27
|
-
</configuration>
|
28
|
-
</component>
|
29
|
-
<component name="NewModuleRootManager">
|
30
|
-
<content url="file://$MODULE_DIR$">
|
31
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
32
|
-
<excludeFolder url="file://$MODULE_DIR$/.bundle" />
|
33
|
-
<excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
|
34
|
-
</content>
|
35
|
-
<orderEntry type="jdk" jdkName="ruby-2.2.4-p230" jdkType="RUBY_SDK" />
|
36
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
37
|
-
<orderEntry type="library" scope="PROVIDED" name="activesupport (v4.2.6, ruby-2.2.4-p230) [gem]" level="application" />
|
38
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, ruby-2.2.4-p230) [gem]" level="application" />
|
39
|
-
<orderEntry type="library" scope="PROVIDED" name="i18n (v0.7.0, ruby-2.2.4-p230) [gem]" level="application" />
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="json (v1.8.3, ruby-2.2.4-p230) [gem]" level="application" />
|
41
|
-
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.9.0, ruby-2.2.4-p230) [gem]" level="application" />
|
42
|
-
<orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, ruby-2.2.4-p230) [gem]" level="application" />
|
43
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.4.0, ruby-2.2.4-p230) [gem]" level="application" />
|
44
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.4.4, ruby-2.2.4-p230) [gem]" level="application" />
|
45
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.4.0, ruby-2.2.4-p230) [gem]" level="application" />
|
46
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.4.1, ruby-2.2.4-p230) [gem]" level="application" />
|
47
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.4.1, ruby-2.2.4-p230) [gem]" level="application" />
|
48
|
-
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.5, ruby-2.2.4-p230) [gem]" level="application" />
|
49
|
-
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.2, ruby-2.2.4-p230) [gem]" level="application" />
|
50
|
-
<orderEntry type="library" scope="PROVIDED" name="unindent (v1.0, ruby-2.2.4-p230) [gem]" level="application" />
|
51
|
-
</component>
|
52
|
-
</module>
|
data/CODE_OF_CONDUCT.md
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# Contributor Code of Conduct
|
2
|
-
|
3
|
-
As contributors and maintainers of this project, and in the interest of
|
4
|
-
fostering an open and welcoming community, we pledge to respect all people who
|
5
|
-
contribute through reporting issues, posting feature requests, updating
|
6
|
-
documentation, submitting pull requests or patches, and other activities.
|
7
|
-
|
8
|
-
We are committed to making participation in this project a harassment-free
|
9
|
-
experience for everyone, regardless of level of experience, gender, gender
|
10
|
-
identity and expression, sexual orientation, disability, personal appearance,
|
11
|
-
body size, race, ethnicity, age, religion, or nationality.
|
12
|
-
|
13
|
-
Examples of unacceptable behavior by participants include:
|
14
|
-
|
15
|
-
* The use of sexualized language or imagery
|
16
|
-
* Personal attacks
|
17
|
-
* Trolling or insulting/derogatory comments
|
18
|
-
* Public or private harassment
|
19
|
-
* Publishing other's private information, such as physical or electronic
|
20
|
-
addresses, without explicit permission
|
21
|
-
* Other unethical or unprofessional conduct
|
22
|
-
|
23
|
-
Project maintainers have the right and responsibility to remove, edit, or
|
24
|
-
reject comments, commits, code, wiki edits, issues, and other contributions
|
25
|
-
that are not aligned to this Code of Conduct, or to ban temporarily or
|
26
|
-
permanently any contributor for other behaviors that they deem inappropriate,
|
27
|
-
threatening, offensive, or harmful.
|
28
|
-
|
29
|
-
By adopting this Code of Conduct, project maintainers commit themselves to
|
30
|
-
fairly and consistently applying these principles to every aspect of managing
|
31
|
-
this project. Project maintainers who do not follow or enforce the Code of
|
32
|
-
Conduct may be permanently removed from the project team.
|
33
|
-
|
34
|
-
This code of conduct applies both within project spaces and in public spaces
|
35
|
-
when an individual is representing the project or its community.
|
36
|
-
|
37
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
38
|
-
reported by contacting a project maintainer at cignoir@gmail.com. All
|
39
|
-
complaints will be reviewed and investigated and will result in a response that
|
40
|
-
is deemed necessary and appropriate to the circumstances. Maintainers are
|
41
|
-
obligated to maintain confidentiality with regard to the reporter of an
|
42
|
-
incident.
|
43
|
-
|
44
|
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
45
|
-
version 1.3.0, available at
|
46
|
-
[http://contributor-covenant.org/version/1/3/0/][version]
|
47
|
-
|
48
|
-
[homepage]: http://contributor-covenant.org
|
49
|
-
[version]: http://contributor-covenant.org/version/1/3/0/
|