bucket_client 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.gitlab-ci.yml +70 -0
  4. data/.idea/bucket_client.iml +105 -0
  5. data/.idea/encodings.xml +4 -0
  6. data/.idea/misc.xml +7 -0
  7. data/.idea/modules.xml +8 -0
  8. data/.idea/runConfigurations/Integration_Test.xml +37 -0
  9. data/.idea/runConfigurations/Unit_Test.xml +37 -0
  10. data/.rspec +3 -0
  11. data/CODE_OF_CONDUCT.md +74 -0
  12. data/Gemfile +6 -0
  13. data/Gemfile.lock +114 -0
  14. data/LICENSE.txt +21 -0
  15. data/README.md +870 -0
  16. data/Rakefile +6 -0
  17. data/bin/console +14 -0
  18. data/bin/setup +8 -0
  19. data/bucket_client.gemspec +46 -0
  20. data/integration/aws_blob_spec.rb +134 -0
  21. data/integration/aws_bucket_spec.rb +145 -0
  22. data/integration/azure_blob_spec.rb +132 -0
  23. data/integration/azure_bucket_spec.rb +132 -0
  24. data/integration/dev_blob_spec.rb +131 -0
  25. data/integration/dev_bucket_spec.rb +140 -0
  26. data/integration/do_blob_spec.rb +134 -0
  27. data/integration/do_bucket_spec.rb +144 -0
  28. data/integration/gcp_blob_spec.rb +132 -0
  29. data/integration/gcp_bucket_spec.rb +132 -0
  30. data/integration/img.jpg +0 -0
  31. data/lib/bucket_client.rb +66 -0
  32. data/lib/bucket_client/aws/aws_bucket.rb +85 -0
  33. data/lib/bucket_client/aws/aws_client.rb +195 -0
  34. data/lib/bucket_client/aws/aws_http_client.rb +32 -0
  35. data/lib/bucket_client/aws/aws_policy_factory.rb +26 -0
  36. data/lib/bucket_client/aws4_request_signer.rb +133 -0
  37. data/lib/bucket_client/azure/azure_bucket.rb +83 -0
  38. data/lib/bucket_client/azure/azure_client.rb +197 -0
  39. data/lib/bucket_client/bucket.rb +388 -0
  40. data/lib/bucket_client/bucket_operation_exception.rb +8 -0
  41. data/lib/bucket_client/client.rb +408 -0
  42. data/lib/bucket_client/dev/local_bucket.rb +84 -0
  43. data/lib/bucket_client/dev/local_client.rb +148 -0
  44. data/lib/bucket_client/digital_ocean/digital_ocean_acl_factory.rb +39 -0
  45. data/lib/bucket_client/digital_ocean/digital_ocean_bucket.rb +81 -0
  46. data/lib/bucket_client/digital_ocean/digital_ocean_client.rb +275 -0
  47. data/lib/bucket_client/digital_ocean/digital_ocean_http_client.rb +31 -0
  48. data/lib/bucket_client/gcp/gcp_bucket.rb +79 -0
  49. data/lib/bucket_client/gcp/gcp_client.rb +171 -0
  50. data/lib/bucket_client/operation_result.rb +33 -0
  51. data/lib/bucket_client/version.rb +3 -0
  52. metadata +246 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e018169c238f8d504ca0480670b75434610458284f549580a7d67907b1179d76
4
+ data.tar.gz: 4f69c60ea4e204d18829925f39ead05c4fa779c259a1c087431e587b0e0c2fab
5
+ SHA512:
6
+ metadata.gz: b7dce6cbe41c0824fd75d901969aead751b77d679363bf06add96ed409c5f63dab24737ba3530e7c177fdc0642425271df4ff07cf5a41eb937fe69877d772b09
7
+ data.tar.gz: 0f2a37166dfa26d5a069d6ce20343fb945632039ac0dabb02905792c47263205e6ed40a55dc80dc4edfa92fc277e2cb4ded5fcfe346befdd9034407ce60c01dd
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .idea/*
10
+ !.idea/runConfigurations
11
+ !.idea/*.iml
12
+ !.idea/*.xml
13
+ .idea/workspace.xml
14
+ .idea/vcs.xml
15
+ # rspec failure tracking
16
+ .rspec_status
17
+ *.gem
18
+ .env
19
+ install.sh
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,70 @@
1
+ stages:
2
+ - test
3
+ - build
4
+ - publish
5
+
6
+ Integration Test:
7
+ tags:
8
+ - kirinnee
9
+ stage: test
10
+ script:
11
+ - touch .env
12
+ - echo AWS_ID=$AWS_ID >> ./.env
13
+ - echo AWS_SECRET=$AWS_SECRET >> ./.env
14
+ - echo AWS_REGION=$AWS_REGION >> ./.env
15
+ - echo DO_ID=$DO_ID >> ./.env
16
+ - echo DO_SECRET=$DO_SECRET >> ./.env
17
+ - echo DO_REGION=$DO_REGION >> ./.env
18
+ - echo AZURE_ACC_ID=$AZURE_ACC_ID >> ./.env
19
+ - echo AZURE_KEY=$AZURE_KEY >> ./.env
20
+ - echo GOOGLE_ID=$GOOGLE_ID >> ./.env
21
+ - echo GOOGLE_KEY=$GOOGLE_KEY >> ./.env
22
+ - bundle install
23
+ - bundle exec rspec ./integration
24
+ after_script:
25
+ - shred -vfu ./.env
26
+ Unit Test:
27
+ tags:
28
+ - kirinnee
29
+ stage: test
30
+ script:
31
+ - touch .env
32
+ - echo AWS_ID=$AWS_ID >> ./.env
33
+ - echo AWS_SECRET=$AWS_SECRET >> ./.env
34
+ - echo AWS_REGION=$AWS_REGION >> ./.env
35
+ - echo DO_ID=$DO_ID >> ./.env
36
+ - echo DO_SECRET=$DO_SECRET >> ./.env
37
+ - echo DO_REGION=$DO_REGION >> ./.env
38
+ - echo AZURE_ACC_ID=$AZURE_ACC_ID >> ./.env
39
+ - echo AZURE_KEY=$AZURE_KEY >> ./.env
40
+ - echo GOOGLE_ID=$GOOGLE_ID >> ./.env
41
+ - echo GOOGLE_KEY=$GOOGLE_KEY >> ./.env
42
+ - bundle install
43
+ - bundle exec rspec
44
+ after_script:
45
+ - shred -vfu ./.env
46
+ Build:
47
+ tags:
48
+ - ruby
49
+ - kirinnee
50
+ stage: build
51
+ script: gem build $GEM_NAME
52
+ artifacts:
53
+ paths:
54
+ - ./*.gem
55
+ Publish:
56
+ tags:
57
+ - ruby
58
+ - kirinnee
59
+ stage: publish
60
+ script:
61
+ - mkdir ~/.gem
62
+ - "echo \":rubygems_api_key: $API_KEY\" > ~/.gem/credentials"
63
+ - chmod 0600 ~/.gem/credentials
64
+ - gem push $GEM_NAME-*.gem
65
+ after_script:
66
+ - shred -vfu ~/.gem/credentials
67
+ only:
68
+ - /v[0-9\.]*/
69
+ except:
70
+ - branches
@@ -0,0 +1,105 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared>
5
+ <configuration default="false" name="Unit Test" type="RSpecRunConfigurationType" factoryName="RSpec" singleton="false">
6
+ <module name="bucket_client" />
7
+ <predefined_log_file enabled="true" id="RUBY_RSPEC" />
8
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
9
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
10
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
11
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
12
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
13
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
14
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
15
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
16
+ <EXTENSION ID="net.ashald.envfile">
17
+ <option name="IS_ENABLED" value="false" />
18
+ <option name="IS_SUBST" value="false" />
19
+ <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
20
+ <option name="IS_IGNORE_MISSING_FILES" value="false" />
21
+ <ENTRIES>
22
+ <ENTRY IS_ENABLED="true" PARSER="runconfig" />
23
+ </ENTRIES>
24
+ </EXTENSION>
25
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/spec" />
26
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
27
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
28
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
29
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
30
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
31
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
32
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
33
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
34
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
35
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
36
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
37
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
38
+ <method v="2" />
39
+ </configuration>
40
+ <configuration default="false" name="Integration Test" type="RSpecRunConfigurationType" factoryName="RSpec">
41
+ <module name="bucket_client" />
42
+ <predefined_log_file enabled="true" id="RUBY_RSPEC" />
43
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
44
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
45
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
46
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
47
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
48
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
49
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
50
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
51
+ <EXTENSION ID="net.ashald.envfile">
52
+ <option name="IS_ENABLED" value="false" />
53
+ <option name="IS_SUBST" value="false" />
54
+ <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
55
+ <option name="IS_IGNORE_MISSING_FILES" value="false" />
56
+ <ENTRIES>
57
+ <ENTRY IS_ENABLED="true" PARSER="runconfig" />
58
+ </ENTRIES>
59
+ </EXTENSION>
60
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/integration" />
61
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
62
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
63
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
64
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
65
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
66
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
67
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
68
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
69
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
70
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
71
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
72
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
73
+ <method v="2" />
74
+ </configuration>
75
+ </shared>
76
+ </component>
77
+ <component name="NewModuleRootManager">
78
+ <content url="file://$MODULE_DIR$" />
79
+ <orderEntry type="inheritedJdk" />
80
+ <orderEntry type="sourceFolder" forTests="false" />
81
+ <orderEntry type="library" scope="PROVIDED" name="addressable (v2.6.0, ruby-2.6.0-p0) [gem]" level="application" />
82
+ <orderEntry type="library" scope="PROVIDED" name="azure-core (v0.1.15, ruby-2.6.0-p0) [gem]" level="application" />
83
+ <orderEntry type="library" scope="PROVIDED" name="azure-storage-blob (v1.1.0, ruby-2.6.0-p0) [gem]" level="application" />
84
+ <orderEntry type="library" scope="PROVIDED" name="azure-storage-common (v1.1.0, ruby-2.6.0-p0) [gem]" level="application" />
85
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.17.2, ruby-2.6.0-p0) [gem]" level="application" />
86
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, ruby-2.6.0-p0) [gem]" level="application" />
87
+ <orderEntry type="library" scope="PROVIDED" name="dotenv (v2.7.1, ruby-2.6.0-p0) [gem]" level="application" />
88
+ <orderEntry type="library" scope="PROVIDED" name="faraday (v0.15.4, ruby-2.6.0-p0) [gem]" level="application" />
89
+ <orderEntry type="library" scope="PROVIDED" name="faraday_middleware (v0.13.1, ruby-2.6.0-p0) [gem]" level="application" />
90
+ <orderEntry type="library" scope="PROVIDED" name="google-cloud-storage (v1.17.0, ruby-2.6.0-p0) [gem]" level="application" />
91
+ <orderEntry type="library" scope="PROVIDED" name="kirin_http (v0.1.1, ruby-2.6.0-p0) [gem]" level="application" />
92
+ <orderEntry type="library" scope="PROVIDED" name="mimemagic (v0.3.3, ruby-2.6.0-p0) [gem]" level="application" />
93
+ <orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.4.0, ruby-2.6.0-p0) [gem]" level="application" />
94
+ <orderEntry type="library" scope="PROVIDED" name="multipart-post (v2.0.0, ruby-2.6.0-p0) [gem]" level="application" />
95
+ <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.10.1, ruby-2.6.0-p0) [gem]" level="application" />
96
+ <orderEntry type="library" scope="PROVIDED" name="ox (v2.10.0, ruby-2.6.0-p0) [gem]" level="application" />
97
+ <orderEntry type="library" scope="PROVIDED" name="public_suffix (v3.0.3, ruby-2.6.0-p0) [gem]" level="application" />
98
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, ruby-2.6.0-p0) [gem]" level="application" />
99
+ <orderEntry type="library" scope="PROVIDED" name="rspec (v3.8.0, ruby-2.6.0-p0) [gem]" level="application" />
100
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.8.0, ruby-2.6.0-p0) [gem]" level="application" />
101
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.8.2, ruby-2.6.0-p0) [gem]" level="application" />
102
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.8.0, ruby-2.6.0-p0) [gem]" level="application" />
103
+ <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.8.0, ruby-2.6.0-p0) [gem]" level="application" />
104
+ </component>
105
+ </module>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
+ </project>
data/.idea/misc.xml ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptSettings">
4
+ <option name="languageLevel" value="ES6" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.6.0-p0" project-jdk-type="RUBY_SDK" />
7
+ </project>
data/.idea/modules.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/bucket_client.iml" filepath="$PROJECT_DIR$/.idea/bucket_client.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,37 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Integration Test" type="RSpecRunConfigurationType" factoryName="RSpec">
3
+ <module name="bucket_client" />
4
+ <predefined_log_file enabled="true" id="RUBY_RSPEC" />
5
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
6
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
7
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
8
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
9
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
10
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
11
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
12
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
13
+ <EXTENSION ID="net.ashald.envfile">
14
+ <option name="IS_ENABLED" value="false" />
15
+ <option name="IS_SUBST" value="false" />
16
+ <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
17
+ <option name="IS_IGNORE_MISSING_FILES" value="false" />
18
+ <ENTRIES>
19
+ <ENTRY IS_ENABLED="true" PARSER="runconfig" />
20
+ </ENTRIES>
21
+ </EXTENSION>
22
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/integration" />
23
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
24
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
25
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
26
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
27
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
28
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
29
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
30
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
31
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
32
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
33
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
34
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
35
+ <method v="2" />
36
+ </configuration>
37
+ </component>
@@ -0,0 +1,37 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Unit Test" type="RSpecRunConfigurationType" factoryName="RSpec" singleton="false">
3
+ <module name="bucket_client" />
4
+ <predefined_log_file enabled="true" id="RUBY_RSPEC" />
5
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
6
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
7
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
8
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
9
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
10
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
11
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
12
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
13
+ <EXTENSION ID="net.ashald.envfile">
14
+ <option name="IS_ENABLED" value="false" />
15
+ <option name="IS_SUBST" value="false" />
16
+ <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
17
+ <option name="IS_IGNORE_MISSING_FILES" value="false" />
18
+ <ENTRIES>
19
+ <ENTRY IS_ENABLED="true" PARSER="runconfig" />
20
+ </ENTRIES>
21
+ </EXTENSION>
22
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/spec" />
23
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
24
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
25
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
26
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
27
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
28
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
29
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
30
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
31
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
32
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
33
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
34
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
35
+ <method v="2" />
36
+ </configuration>
37
+ </component>
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at kirinnee97@gmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}"}
4
+
5
+ # Specify your gem's dependencies in bucket_client.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,114 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ bucket_client (0.1.0)
5
+ addressable (~> 2.5)
6
+ azure-storage-blob
7
+ google-cloud-storage (~> 1.17)
8
+ kirin_http
9
+ mimemagic
10
+ ox
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ addressable (2.6.0)
16
+ public_suffix (>= 2.0.2, < 4.0)
17
+ azure-core (0.1.15)
18
+ faraday (~> 0.9)
19
+ faraday_middleware (~> 0.10)
20
+ nokogiri (~> 1.6)
21
+ azure-storage-blob (1.1.0)
22
+ azure-core (~> 0.1.13)
23
+ azure-storage-common (~> 1.0)
24
+ nokogiri (~> 1.6, >= 1.6.8)
25
+ azure-storage-common (1.1.0)
26
+ azure-core (~> 0.1.13)
27
+ nokogiri (~> 1.6, >= 1.6.8)
28
+ declarative (0.0.10)
29
+ declarative-option (0.1.0)
30
+ diff-lcs (1.3)
31
+ digest-crc (0.4.1)
32
+ dotenv (2.7.1)
33
+ faraday (0.15.4)
34
+ multipart-post (>= 1.2, < 3)
35
+ faraday_middleware (0.13.1)
36
+ faraday (>= 0.7.4, < 1.0)
37
+ google-api-client (0.28.4)
38
+ addressable (~> 2.5, >= 2.5.1)
39
+ googleauth (>= 0.5, < 0.10.0)
40
+ httpclient (>= 2.8.1, < 3.0)
41
+ mime-types (~> 3.0)
42
+ representable (~> 3.0)
43
+ retriable (>= 2.0, < 4.0)
44
+ signet (~> 0.10)
45
+ google-cloud-core (1.3.0)
46
+ google-cloud-env (~> 1.0)
47
+ google-cloud-env (1.0.5)
48
+ faraday (~> 0.11)
49
+ google-cloud-storage (1.17.0)
50
+ digest-crc (~> 0.4)
51
+ google-api-client (~> 0.26)
52
+ google-cloud-core (~> 1.2)
53
+ googleauth (>= 0.6.2, < 0.10.0)
54
+ googleauth (0.8.0)
55
+ faraday (~> 0.12)
56
+ jwt (>= 1.4, < 3.0)
57
+ memoist (~> 0.16)
58
+ multi_json (~> 1.11)
59
+ os (>= 0.9, < 2.0)
60
+ signet (~> 0.7)
61
+ httpclient (2.8.3)
62
+ jwt (2.1.0)
63
+ kirin_http (0.1.1)
64
+ memoist (0.16.0)
65
+ mime-types (3.2.2)
66
+ mime-types-data (~> 3.2015)
67
+ mime-types-data (3.2018.0812)
68
+ mimemagic (0.3.3)
69
+ mini_portile2 (2.4.0)
70
+ multi_json (1.13.1)
71
+ multipart-post (2.0.0)
72
+ nokogiri (1.10.1-x64-mingw32)
73
+ mini_portile2 (~> 2.4.0)
74
+ os (1.0.0)
75
+ ox (2.10.0)
76
+ public_suffix (3.0.3)
77
+ rake (10.5.0)
78
+ representable (3.0.4)
79
+ declarative (< 0.1.0)
80
+ declarative-option (< 0.2.0)
81
+ uber (< 0.2.0)
82
+ retriable (3.1.2)
83
+ rspec (3.8.0)
84
+ rspec-core (~> 3.8.0)
85
+ rspec-expectations (~> 3.8.0)
86
+ rspec-mocks (~> 3.8.0)
87
+ rspec-core (3.8.0)
88
+ rspec-support (~> 3.8.0)
89
+ rspec-expectations (3.8.2)
90
+ diff-lcs (>= 1.2.0, < 2.0)
91
+ rspec-support (~> 3.8.0)
92
+ rspec-mocks (3.8.0)
93
+ diff-lcs (>= 1.2.0, < 2.0)
94
+ rspec-support (~> 3.8.0)
95
+ rspec-support (3.8.0)
96
+ signet (0.11.0)
97
+ addressable (~> 2.3)
98
+ faraday (~> 0.9)
99
+ jwt (>= 1.5, < 3.0)
100
+ multi_json (~> 1.10)
101
+ uber (0.1.0)
102
+
103
+ PLATFORMS
104
+ x64-mingw32
105
+
106
+ DEPENDENCIES
107
+ bucket_client!
108
+ bundler (~> 1.17)
109
+ dotenv
110
+ rake (~> 10.0)
111
+ rspec (~> 3.0)
112
+
113
+ BUNDLED WITH
114
+ 1.17.2