inshape 1.0.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
+ SHA1:
3
+ metadata.gz: 44bd8bae3fab8c2d74bf65ea9fc9dd05ef271157
4
+ data.tar.gz: 45a67c32b52485203dcdf743d12e197a06494077
5
+ SHA512:
6
+ metadata.gz: 2fbc55419da7553f70b295fcf3207ef405e129a1d44f44ff45218c35e1a0e0dee7b5cc90810084ec891e4b4f94d0849ad0de503d73c42f01711c6ee822eb6ffb
7
+ data.tar.gz: f9a41bbb36e9213373bc3a90d28aee4621d4583e1990c1bdd18543e960d19636977605b2f50d369e6730c62f793a012e47cc222b5b0c6e7e2903a08e98ff466b
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in inshape.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # InShape
2
+
3
+ Computes and evaluates memory usage under JRuby.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'inshape'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install inshape
20
+
21
+ ## Usage
22
+
23
+ ```
24
+ drtom@nx-18122:~/…ing/ROR/inshape$ bundle exec pry
25
+ [1] pry(main)> require 'InShape'
26
+ => true
27
+ [2] pry(main)> InShape::Memory.status
28
+ => #<OpenStruct is_ok=true, content={"memory"=>{"Max"=>"445 MB", "Allocated"=>"445 MB", "Used"=>"129 MB", "Usage"=>0.29, "OK?"=>true}}>
29
+ ```
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "inshape"
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
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
data/inshape.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'inshape/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "inshape"
8
+ spec.version = InShape::VERSION
9
+ spec.authors = ["Thomas Schank"]
10
+ spec.email = ["DrTom@schank.ch"]
11
+
12
+ spec.summary = %q{Computes and evaluates memory usage under JRuby.}
13
+ spec.description = %q{Computes and evaluates memory usage under JRuby.}
14
+ spec.homepage = 'https://github.com/DrTom/inshape_ruby'
15
+
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency "actionview", ">= 4.0", "< 5.0"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.11"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "pry"
27
+
28
+
29
+ end
data/lib/inshape.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'action_view'
2
+ require 'active_support/all'
3
+ require 'inshape/version'
4
+ require 'ostruct'
5
+
6
+ module InShape
7
+ module Memory
8
+ extend ActionView::Helpers::NumberHelper
9
+
10
+ class << self
11
+
12
+ attr_accessor :max_usage
13
+ attr_accessor :min_free
14
+
15
+ def status
16
+ if RUBY_ENGINE == 'jruby'
17
+
18
+ java.lang.System.gc
19
+ rt = java.lang.Runtime.getRuntime
20
+ max = rt.maxMemory
21
+ allocated = rt.maxMemory
22
+ free = rt.freeMemory
23
+ used = (allocated - free)
24
+ usage = (used / max.to_f)
25
+ is_ok = usage < max_usage && free >= min_free
26
+
27
+ OpenStruct.new is_ok: is_ok, content: {
28
+ memory: { Max: number_to_human_size(max),
29
+ Allocated: number_to_human_size(allocated),
30
+ Used: number_to_human_size(used),
31
+ Usage: usage.round(2),
32
+ OK?: is_ok } }.with_indifferent_access.as_json
33
+ else
34
+
35
+ OpenStruct.new is_ok: true, content: {}
36
+
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ InShape::Memory.max_usage = 0.95
44
+ InShape::Memory.min_free = 10.megabytes
@@ -0,0 +1,3 @@
1
+ module InShape
2
+ VERSION = "1.0.0"
3
+ end
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: inshape
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Thomas Schank
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-01-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actionview
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.11'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.11'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '10.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '10.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: pry
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ description: Computes and evaluates memory usage under JRuby.
76
+ email:
77
+ - DrTom@schank.ch
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - ".gitignore"
83
+ - Gemfile
84
+ - README.md
85
+ - Rakefile
86
+ - bin/console
87
+ - bin/setup
88
+ - inshape.gemspec
89
+ - lib/inshape.rb
90
+ - lib/inshape/version.rb
91
+ homepage: https://github.com/DrTom/inshape_ruby
92
+ licenses: []
93
+ metadata: {}
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 2.4.5.1
111
+ signing_key:
112
+ specification_version: 4
113
+ summary: Computes and evaluates memory usage under JRuby.
114
+ test_files: []
115
+ has_rdoc: