slender 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c4b3e4d2a804b67182e33486f0d38ba2e50c0a56c47fb9c04159062962532bd0
4
+ data.tar.gz: 336a2214fe3e3e95a19078b23dbbfa459999262b6fdbfb13acc177448bf337c4
5
+ SHA512:
6
+ metadata.gz: 288f04f933be54a3a17f2ddd7ddeb284a0c39a530abc3afe8becf677071c7494251f4d2b32c6a97dad24d59108d8c10d428a69660fe70f656bb17fa65b32a34e
7
+ data.tar.gz: ae19552a5202d9a368dd51ace4dbd4391aba9e80f09858512a1af97de64bccf0f77e01788001b0be3aaf70f2de337143bd1b9fa75b48016bb51fc8a64f76db76
@@ -0,0 +1,53 @@
1
+ version: 2.1
2
+ orbs:
3
+ ruby-orbs: sue445/ruby-orbs@1.4.3
4
+
5
+ executors:
6
+ ruby:
7
+ docker:
8
+ - image: circleci/ruby:2.7.4
9
+
10
+ jobs:
11
+ rspec:
12
+ executor:
13
+ name: ruby
14
+ steps:
15
+ - checkout
16
+ - ruby-orbs/bundle-install:
17
+ restore_bundled_with: false
18
+ cache_key_prefix: v2-bundle
19
+ - run: bundle exec rspec
20
+ release:
21
+ executor:
22
+ name: ruby
23
+ steps:
24
+ - checkout
25
+ - run:
26
+ name: setup rubygems key
27
+ command: |
28
+ git config user.email "ogontaro@gmail.com"
29
+ git config user.name "ogontaro"
30
+ mkdir ~/.gem
31
+ cat .circleci/gem_credentials | sed -e "s/__RUBYGEMS_API_KEY__/${RUBYGEMS_API_KEY}/" > ~/.gem/credentials
32
+ chmod 0600 ~/.gem/credentials
33
+ - ruby-orbs/bundle-install:
34
+ restore_bundled_with: false
35
+ cache_key_prefix: v2-bundle
36
+ - run: bundle exec rake build
37
+ - run: bundle exec rake release
38
+
39
+ workflows:
40
+ build_and_push:
41
+ jobs:
42
+ - rspec:
43
+ filters:
44
+ tags:
45
+ only: /^v.*/
46
+ - release:
47
+ requires:
48
+ - rspec
49
+ filters:
50
+ tags:
51
+ only: /^v.*/
52
+ branches:
53
+ ignore: /.*/
@@ -0,0 +1,3 @@
1
+ ---
2
+ :rubygems_api_key: __RUBYGEMS_API_KEY__
3
+ :status: :ok
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ coverage
2
+ pkg
3
+ tmp
4
+ ruby/
5
+ log/
6
+ .bundle
7
+ *.gem
8
+ gemfiles/*.lock
9
+ Gemfile.lock
10
+ .coveralls.yml
11
+ .ruby-version
12
+ .ruby-gemset
13
+ .idea
14
+ *.rdb
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rspec_status ADDED
@@ -0,0 +1,7 @@
1
+ example_id | status | run_time |
2
+ -------------------------------------------- | ------ | --------------- |
3
+ ./spec/core_extensions/array_spec.rb[1:1:1] | passed | 0.85255 seconds |
4
+ ./spec/core_extensions/hash_spec.rb[1:1:1] | passed | 1.62 seconds |
5
+ ./spec/core_extensions/object_spec.rb[1:1:1] | passed | 0.00012 seconds |
6
+ ./spec/core_extensions/string_spec.rb[1:1:1] | passed | 0.1151 seconds |
7
+ ./spec/slender_spec.rb[1:1:1] | passed | 0.00021 seconds |
data/Dockerfile ADDED
@@ -0,0 +1,18 @@
1
+ FROM ruby:2.7.4-slim
2
+
3
+ ENV LANG="C.UTF-8" \
4
+ TZ="Asia/Tokyo"
5
+ RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
6
+
7
+ RUN apt-get update && \
8
+ apt-get install -y --no-install-recommends build-essential git && \
9
+ apt-get clean && \
10
+ rm -r /var/lib/apt/lists/*
11
+
12
+ ENV APP_HOME /app
13
+ WORKDIR ${APP_HOME}
14
+
15
+ COPY Gemfile* ./
16
+ COPY *.gemspec ./
17
+ COPY ./lib/slender/version.rb ./lib/slender/version.rb
18
+ RUN bundle install --jobs 4
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in slender.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
8
+ gem "faker"
9
+
data/Gemfile.lock ADDED
@@ -0,0 +1,40 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ slender (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ concurrent-ruby (1.1.9)
10
+ diff-lcs (1.4.4)
11
+ faker (2.18.0)
12
+ i18n (>= 1.6, < 2)
13
+ i18n (1.8.10)
14
+ concurrent-ruby (~> 1.0)
15
+ rake (12.3.3)
16
+ rspec (3.10.0)
17
+ rspec-core (~> 3.10.0)
18
+ rspec-expectations (~> 3.10.0)
19
+ rspec-mocks (~> 3.10.0)
20
+ rspec-core (3.10.1)
21
+ rspec-support (~> 3.10.0)
22
+ rspec-expectations (3.10.1)
23
+ diff-lcs (>= 1.2.0, < 2.0)
24
+ rspec-support (~> 3.10.0)
25
+ rspec-mocks (3.10.2)
26
+ diff-lcs (>= 1.2.0, < 2.0)
27
+ rspec-support (~> 3.10.0)
28
+ rspec-support (3.10.2)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ faker
35
+ rake (~> 12.0)
36
+ rspec (~> 3.0)
37
+ slender!
38
+
39
+ BUNDLED WITH
40
+ 2.1.4
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # Slender
2
+
3
+ A library for shortening very long strings.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'slender'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle install
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install slender
20
+
21
+ ## Usage
22
+
23
+ ```ruby
24
+ Slender.configure do |config|
25
+ # default length is 500
26
+ config.max_string_length = 5
27
+ end
28
+
29
+ >> "too_long_string".slim_down
30
+ => "too_l"
31
+
32
+ >> 100000.slim_down
33
+ => 100000
34
+
35
+ >> nil.slim_down
36
+ => nil
37
+
38
+ >> ["too_long_string", "a", 100000,["too_long_string",200000]].slim_down
39
+ => ["too_l", "a", 100000, ["too_l", 200000]]
40
+
41
+ >> { too_long_string: "too_long_string", in: { too_long_string: "too_long_string" } }.slim_down
42
+ => { too_long_string: "too_l", in: { too_long_string: "too_l" } }
43
+ ```
44
+
45
+ ## Contributing
46
+
47
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ogontaro/slender-ruby.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "slender"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,10 @@
1
+ version: "3.7"
2
+
3
+ services:
4
+ ruby:
5
+ build:
6
+ dockerfile: ./Dockerfile
7
+ context: ./
8
+ container_name: slender-ruby_ruby
9
+ volumes:
10
+ - ./:/app/:cached
data/lib/slender.rb ADDED
@@ -0,0 +1,7 @@
1
+ require "slender/version"
2
+ require "slender/configration"
3
+ require "slender/core_extensions"
4
+
5
+ module Slender
6
+ extend Configuration
7
+ end
@@ -0,0 +1,14 @@
1
+ module Slender
2
+ module Configuration
3
+ attr_accessor :max_string_length
4
+ def configure
5
+ yield self
6
+ end
7
+ def reset
8
+ self.max_string_length = 500
9
+ end
10
+ def self.extended(base)
11
+ base.reset
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ require "slender/core_extensions/array"
2
+ require "slender/core_extensions/hash"
3
+ require "slender/core_extensions/object"
4
+ require "slender/core_extensions/string"
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Array
4
+ def slim_down
5
+ map(&:slim_down)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hash
4
+ def slim_down
5
+ map { |k, v| [k, v.slim_down] }.to_h
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Object
4
+ def slim_down
5
+ self
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class String
4
+ def slim_down
5
+ self[0, Slender.max_string_length]
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module Slender
2
+ VERSION = "0.1.0"
3
+ end
data/slender.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ require_relative 'lib/slender/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "slender"
5
+ spec.version = Slender::VERSION
6
+ spec.authors = ["ogontaro"]
7
+ spec.email = ["ogontaro@gmail.com"]
8
+
9
+ spec.summary = %q{Reduce string weight}
10
+ spec.description = %q{Reduce string weight}
11
+ spec.homepage = "https://github.com/ogontaro/slender-ruby"
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ spec.metadata["homepage_uri"] = spec.homepage
15
+ spec.metadata["source_code_uri"] = spec.homepage
16
+
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ end
22
+ spec.bindir = "exe"
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ["lib"]
25
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slender
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - ogontaro
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-08-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Reduce string weight
14
+ email:
15
+ - ogontaro@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".circleci/config.yml"
21
+ - ".circleci/gem_credentials"
22
+ - ".gitignore"
23
+ - ".rspec"
24
+ - ".rspec_status"
25
+ - Dockerfile
26
+ - Gemfile
27
+ - Gemfile.lock
28
+ - README.md
29
+ - Rakefile
30
+ - bin/console
31
+ - bin/setup
32
+ - docker-compose.yml
33
+ - lib/slender.rb
34
+ - lib/slender/configration.rb
35
+ - lib/slender/core_extensions.rb
36
+ - lib/slender/core_extensions/array.rb
37
+ - lib/slender/core_extensions/hash.rb
38
+ - lib/slender/core_extensions/object.rb
39
+ - lib/slender/core_extensions/string.rb
40
+ - lib/slender/version.rb
41
+ - slender.gemspec
42
+ homepage: https://github.com/ogontaro/slender-ruby
43
+ licenses: []
44
+ metadata:
45
+ homepage_uri: https://github.com/ogontaro/slender-ruby
46
+ source_code_uri: https://github.com/ogontaro/slender-ruby
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 2.3.0
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubygems_version: 3.1.6
63
+ signing_key:
64
+ specification_version: 4
65
+ summary: Reduce string weight
66
+ test_files: []