just_include 0.5.0 → 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 +4 -4
- data/Gemfile +1 -1
- data/README.md +4 -2
- data/just_include.gemspec +11 -12
- data/lib/just_include.rb +2 -2
- data/lib/just_include/just_include.rb +9 -5
- data/lib/just_include/version.rb +1 -1
- data/specs/just_include_spec.rb +57 -0
- data/specs/spec_helper.rb +5 -0
- metadata +22 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af16d57720d83ee0b395072959c952c8a5d8dd72
|
4
|
+
data.tar.gz: 69460cfa156ab923d8e9ea2bde6535ed25d25aae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfb037fd5da89d7c463feefccafc4b240cb4f9316eb17f48df85f14efd0b70ad29abab496fffd2bcd4c1286e9dfed237fb1e1cca95e7b1057f6c38696719ad4c
|
7
|
+
data.tar.gz: 1d589cb571d046765cf004c3d3730c91bc5a88a6fc3443147193eed51f5168c43695f5e93744b104a9a6a2e5aace2463bfed98b4c35cf01852d010fe44c0c456
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
JustInclude
|
2
2
|
=============
|
3
3
|
|
4
|
-
JustInclude
|
5
|
-
|
4
|
+
JustInclude changes the way you define methods in included modules. Now you write stuff in your module as you would ctrl+c ctrl+v from class. No more ClassMethods nor Instance Methods. See Usage section for better understanding.
|
5
|
+
You can include all kind of things you normally type inside a class. Such as:
|
6
6
|
- methods
|
7
7
|
- class methods
|
8
8
|
- callbacks
|
@@ -12,6 +12,8 @@ class_eval is better then normal method ClassMethods because you can include all
|
|
12
12
|
- extends / includes
|
13
13
|
etc...
|
14
14
|
|
15
|
+
JustInclude has zero external dependencies so can be used in pure ruby apps also, not only Rails.
|
16
|
+
|
15
17
|
|
16
18
|
Usecase
|
17
19
|
-------
|
data/just_include.gemspec
CHANGED
@@ -1,24 +1,23 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path(
|
3
|
-
require
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'just_include/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name =
|
6
|
+
s.name = 'just_include'
|
7
7
|
s.version = JustInclude::VERSION
|
8
|
-
s.authors = [
|
9
|
-
s.email = [
|
10
|
-
s.homepage =
|
8
|
+
s.authors = ['kubenstein']
|
9
|
+
s.email = ['kubenstein@gmail.com']
|
10
|
+
s.homepage = 'https://github.com/kubenstein/just_include'
|
11
11
|
s.summary = %q{Simplify including functionality from module to class}
|
12
12
|
s.description = %q{With JustInclude you can include all kind of things from module to class, such as: methods, class methods, callbacks, relation definitions, act_as_*, constans, extends/includes, etc...}
|
13
|
+
s.license = 'MIT'
|
13
14
|
|
14
|
-
s.rubyforge_project =
|
15
|
+
s.rubyforge_project = 'just_include'
|
15
16
|
|
16
17
|
s.files = `git ls-files`.split("\n")
|
17
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
-
s.require_paths = [
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
20
|
+
s.require_paths = ['lib']
|
20
21
|
|
21
|
-
|
22
|
-
# s.add_development_dependency "rspec"
|
23
|
-
# s.add_runtime_dependency "rest-client"
|
22
|
+
s.add_development_dependency 'rspec', '~> 3'
|
24
23
|
end
|
data/lib/just_include.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'just_include/version'
|
2
|
+
require 'just_include/just_include'
|
@@ -4,14 +4,18 @@
|
|
4
4
|
|
5
5
|
module JustInclude
|
6
6
|
|
7
|
-
def self.included(
|
8
|
-
|
9
|
-
base.extend(ClassMethods)
|
7
|
+
def self.included(included_module)
|
8
|
+
included_module.extend(IncludedModuleClassMethods)
|
10
9
|
end
|
11
10
|
|
12
|
-
module
|
11
|
+
module IncludedModuleClassMethods
|
13
12
|
def just_include(&block)
|
14
|
-
|
13
|
+
class << self; attr_accessor :block; end
|
14
|
+
self.block = block
|
15
|
+
end
|
16
|
+
|
17
|
+
def included(including_class)
|
18
|
+
including_class.class_eval(&self.block)
|
15
19
|
end
|
16
20
|
end
|
17
21
|
|
data/lib/just_include/version.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
require_relative './spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe JustInclude do
|
5
|
+
|
6
|
+
let(:empty_module) { Module.new }
|
7
|
+
let(:empty_class) { Class.new }
|
8
|
+
let(:functionality_module) do
|
9
|
+
|
10
|
+
|
11
|
+
module OtherModule
|
12
|
+
def class_method_from_other_module
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Module.new do
|
17
|
+
include JustInclude
|
18
|
+
just_include do
|
19
|
+
|
20
|
+
extend OtherModule
|
21
|
+
|
22
|
+
def self.class_method
|
23
|
+
end
|
24
|
+
|
25
|
+
def instance_method
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'allows class to include module using just_include DSL' do
|
34
|
+
expect(empty_module).not_to respond_to(:just_include)
|
35
|
+
empty_module.send :include, JustInclude
|
36
|
+
expect(empty_module).to respond_to(:just_include)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'adds class methods to class' do
|
40
|
+
expect(empty_class).not_to respond_to(:class_method)
|
41
|
+
empty_class.send :include, functionality_module
|
42
|
+
expect(empty_class).to respond_to(:class_method)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'adds instance methods to class' do
|
46
|
+
expect(empty_class.new).not_to respond_to(:instance_method)
|
47
|
+
empty_class.send :include, functionality_module
|
48
|
+
expect(empty_class.new).to respond_to(:instance_method)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'adds class methods to class from other module' do
|
52
|
+
expect(empty_class).not_to respond_to(:class_method_from_other_module)
|
53
|
+
empty_class.send :include, functionality_module
|
54
|
+
expect(empty_class).to respond_to(:class_method_from_other_module)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: just_include
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kubenstein
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2014-10-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3'
|
13
27
|
description: 'With JustInclude you can include all kind of things from module to class,
|
14
28
|
such as: methods, class methods, callbacks, relation definitions, act_as_*, constans,
|
15
29
|
extends/includes, etc...'
|
@@ -27,8 +41,11 @@ files:
|
|
27
41
|
- lib/just_include.rb
|
28
42
|
- lib/just_include/just_include.rb
|
29
43
|
- lib/just_include/version.rb
|
44
|
+
- specs/just_include_spec.rb
|
45
|
+
- specs/spec_helper.rb
|
30
46
|
homepage: https://github.com/kubenstein/just_include
|
31
|
-
licenses:
|
47
|
+
licenses:
|
48
|
+
- MIT
|
32
49
|
metadata: {}
|
33
50
|
post_install_message:
|
34
51
|
rdoc_options: []
|
@@ -46,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
63
|
version: '0'
|
47
64
|
requirements: []
|
48
65
|
rubyforge_project: just_include
|
49
|
-
rubygems_version: 2.
|
66
|
+
rubygems_version: 2.2.2
|
50
67
|
signing_key:
|
51
68
|
specification_version: 4
|
52
69
|
summary: Simplify including functionality from module to class
|