ruby-import 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37b3cf22591b27dc72a2c43117b18136275bdcc9666736a27b8a75ec93c9f5b1
4
- data.tar.gz: 8e5122d4e52296360422cf7bb405e97099a5e75074aaf21961bb1cf5a19600ef
3
+ metadata.gz: 7f0d212fc1fdb3752b9ddd376b4f4172ba75f47e766e66c738541ddb4d4be45c
4
+ data.tar.gz: ff788b269370f7124f411580dbfe1f588b153a7610daef84a5b6df2fdf5eebbe
5
5
  SHA512:
6
- metadata.gz: 4fc60a97c362a142c1d30cb33c240d24adc2b9523a6bbbfbd413e9bfb852d96b00b683bacc1c837fe3271ae1290fe58a189f316b6cf025996b6ec0a5a61000c7
7
- data.tar.gz: b8ef6728ed848a9eb79a490cf5744da4af353543f2a4b1ee729d502205ab37d0baa9c52e10f0688127cf88fbe75310b8f6e592352d86222fc881472c6eb49b0b
6
+ metadata.gz: d57ff18047ada81892b0258be65e42012a3a759d84831eecb2e68006bc452b59bd2d292abda432420c3885a85b492cfd1f18987ab2b4c1b8c8ecb93cc1be36d7
7
+ data.tar.gz: 47be1e79e1707a3f6f91b83e04c610a1abf57c180eac6231a5e5888f0f9c089f1aea654c45054f0412ec73557e111361cca47a625ffbcbc359ad7c5c5b1f5fb1
data/.gitignore CHANGED
@@ -1,61 +1,20 @@
1
1
  .DS_Store
2
2
  .travis/id_rsa
3
- yarn-error.log
4
3
  .vscode
5
4
  .envrc
6
5
  .powenv
7
- .byebug_history
8
- config/chewy.yml
9
- npm-debug.log
10
- .smartgf*
11
6
  node_modules/
12
7
  *.pid
13
8
  *.bak
14
9
  *.swp
15
10
  *.swo
16
11
  *.todo
17
- .buildpath
18
- .project
19
12
  .bundle
20
- profiles/*
21
- .yardoc
22
13
  log/*
23
- /tags
24
14
  tmp/
25
- .sass-cache/
26
- gems.tags
27
15
  coverage
28
- spec/reports
29
- .pt
30
- gems.tags
31
- public/uploads/
32
- db/*.sqlite3
16
+ tags
33
17
  gems.tags
34
- .sass-cache/
35
- config/secrets.yml
36
- .bash_history
37
- .bashrc
38
- .irb-history
39
- .mysql_history
40
- .ssh/
41
- .vim/
42
- .viminfo
43
- .vimrc
44
18
  .idea
45
- .rvmrc
46
19
  *~
47
- config/application.local.yml
48
- solr/data
49
- solr/pids
50
- sunspot-solr.pid
51
- vendor/assets/components
52
- ansible/librarian_roles/*
53
- ansible/tmp/*
54
- /db/www*.sql
55
- /db/*.bz2
56
- vendor/bundle
57
-
58
- /certificates/*
59
- !/certificates/.gitkeep
60
- *.sql.gz
61
- *.sql
20
+ *.gem
@@ -6,7 +6,7 @@ Metrics/LineLength:
6
6
 
7
7
  Style/Copyright:
8
8
  Notice: 'Copyright (\(c\) )?2[0-9]{3} .+'
9
- AutocorrectNotice: "# Copyright (c) 2018 Danil Pismenny <danil@brandymint.ru>\n"
9
+ AutocorrectNotice: "# Copyright (c) 2019 Danil Pismenny <danil@brandymint.ru>\n"
10
10
  Description: 'Include a copyright notice in each file before any code.'
11
11
  Enabled: true
12
12
  VersionAdded: '0.30'
@@ -7,6 +7,7 @@ GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.4.0)
10
+ byebug (11.0.1)
10
11
  coderay (1.1.2)
11
12
  ffi (1.11.1)
12
13
  formatador (0.2.5)
@@ -47,6 +48,9 @@ GEM
47
48
  pry (0.12.2)
48
49
  coderay (~> 1.1.0)
49
50
  method_source (~> 0.9.0)
51
+ pry-byebug (3.7.0)
52
+ byebug (~> 11.0)
53
+ pry (~> 0.10)
50
54
  rainbow (3.0.0)
51
55
  rake (10.5.0)
52
56
  rb-fsevent (0.10.3)
@@ -75,6 +79,8 @@ DEPENDENCIES
75
79
  guard-minitest (~> 2.4)
76
80
  guard-rubocop (~> 1.3)
77
81
  minitest (~> 5.0)
82
+ pry (~> 0.12.2)
83
+ pry-byebug (~> 3.7.0)
78
84
  rake (~> 10.0)
79
85
  rubocop (~> 0.74.0)
80
86
  ruby-import!
data/README.md CHANGED
@@ -22,13 +22,52 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
+
26
+ ### Import from file
27
+
28
+ You have defined module-package called `./utils.rb` somewhere in `$LOAD_PATH`:
29
+
30
+ ```ruby
31
+ module ModuleNameDoesNotMetter
32
+ def some_imported_method
33
+ return 123
34
+ end
35
+ end
36
+ ```
37
+
38
+ In you application you have to import and use in-module defined methods:
39
+
25
40
  ```ruby
26
41
 
27
- # Import file found in $LOAD_PATH and return a bunch of defined methods
42
+ # Import find module and return a bunch of defined methods
28
43
  Utils = import 'utils'
29
44
 
30
45
  # Invoke imported method
31
46
  Utils.some_imported_method()
47
+ # returns 123
48
+ ```
49
+
50
+ ### Import from module
51
+
52
+ This variant is good to use in autoload support frameworks like Ruby On Rails.
53
+
54
+ ```ruby
55
+ module SomeUtils
56
+ def some_imported_method
57
+ return 123
58
+ end
59
+ end
60
+ ```
61
+
62
+ In you application you have to import and use in-module defined methods:
63
+
64
+ ```ruby
65
+ # Import find module and return a bunch of defined methods
66
+ Utils = import SomeUtils
67
+
68
+ # Invoke imported method
69
+ Utils.some_imported_method()
70
+ # returns 123
32
71
  ```
33
72
 
34
73
  ## Development
@@ -12,11 +12,17 @@ module RubyImport
12
12
  @@imported_files = {}
13
13
 
14
14
  def import(file)
15
- file += '.rb' unless file.end_with? '.rb'
16
- file = prepare_file file
17
- defined_module = @@imported_files[file]
18
- @@imported_files[file] = defined_module = require_module file unless defined_module
19
- Class.new { include const_get defined_module }.new
15
+ if file.is_a? Module
16
+ defined_module = file
17
+ else
18
+ file += '.rb' unless file.end_with? '.rb'
19
+ file = prepare_file file
20
+ defined_module = @@imported_files[file]
21
+ @@imported_files[file] = defined_module = require_module file unless defined_module
22
+
23
+ defined_module = Object.const_get defined_module
24
+ end
25
+ Class.new { include defined_module }.new.freeze
20
26
  end
21
27
 
22
28
  private
@@ -3,5 +3,5 @@
3
3
  # frozen_string_literal: true
4
4
 
5
5
  module RubyImport
6
- VERSION = '0.1.0'
6
+ VERSION = '0.2.0'
7
7
  end
@@ -36,6 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'guard-minitest', '~> 2.4'
37
37
  spec.add_development_dependency 'guard-rubocop', '~> 1.3'
38
38
  spec.add_development_dependency 'minitest', '~> 5.0'
39
+ spec.add_development_dependency 'pry', '~> 0.12.2'
40
+ spec.add_development_dependency 'pry-byebug', '~> 3.7.0'
39
41
  spec.add_development_dependency 'rake', '~> 10.0'
40
42
  spec.add_development_dependency 'rubocop', '~> 0.74.0'
41
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danil Pismenny
@@ -94,6 +94,34 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '5.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.12.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.12.2
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-byebug
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 3.7.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 3.7.0
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rake
99
127
  requirement: !ruby/object:Gem::Requirement