mabbre 0.0.3 → 1.0.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
  SHA1:
3
- metadata.gz: a58c6dd24da9bfdfcc38d82da5f798234d5d1f20
4
- data.tar.gz: c1e62a40ee79e7da093e4af793f75345e7c2d22f
3
+ metadata.gz: ae00b5dd2871079afc8e1a0eb53e6d7a1cef2aad
4
+ data.tar.gz: b8958e850430143ea3f149ecf3e3cb8c5f531be7
5
5
  SHA512:
6
- metadata.gz: 91bc2e028cec9b1434853992caf1b8145d8ed1496b8e06e72f336658bd70be861040a511313de7b2050102d94ea4817f03e16f618b37addd323c976716be8a39
7
- data.tar.gz: e46ae6f381e36a408c9cb4726af88efb3169f0cc18ed53d925f52ba4b98883ff204cc9da03bfe32ae16f8087d0c4a7a35e69450a2ef36d5ae5a770fcc08a94d4
6
+ metadata.gz: d8d56b416f0efb13dc17f23a24fd445ea8d1ec4e1246c7bcc45e1843759d31c142f3014003557e6ab30d048e89deac75b22cd96bb683b3f803aa7813090b393a
7
+ data.tar.gz: 687a332f3a2373173901649cb3730f010dc544fea0f51db69c2efb973f0387bc14d24791992b49d27e5a902eec82d1549d9522da1da5aaab75a1c1ba949eeae5
data/.rubocop.yml CHANGED
@@ -3,7 +3,7 @@ Metrics/LineLength:
3
3
  Style/AndOr:
4
4
  EnforcedStyle: conditionals
5
5
  Style/HashSyntax:
6
- EnforcedStyle: hash_rockets
6
+ EnforcedStyle: ruby19
7
7
  Style/SpaceInsideBlockBraces:
8
8
  SpaceBeforeBlockParameters: false
9
9
  Style/StringLiterals:
data/.travis.yml CHANGED
@@ -5,10 +5,8 @@ rvm:
5
5
  - 2.0
6
6
  - 1.9.3
7
7
  - 1.9.2
8
- - 1.8.7
9
8
  - jruby-head
10
9
  - jruby-1.7
11
- - jruby-1.6
12
10
  - rbx
13
11
  bundler_args: "--without development"
14
12
  addons:
data/Gemfile CHANGED
@@ -3,16 +3,16 @@ gemspec
3
3
 
4
4
  group :development do
5
5
  gem "byebug", "~> 3.5.1"
6
- gem "guard-rspec", "~> 4.3.1"
6
+ gem "guard-rspec", "~> 4.5.0"
7
7
  gem "guard-rubocop", "~> 1.2.0"
8
- gem "libnotify", "~> 0.8.4"
8
+ gem "libnotify", "~> 0.9.0"
9
9
  gem "pry", "~> 0.10.1"
10
- gem "rubocop", "~> 0.27.1"
10
+ gem "rubocop", "~> 0.28.0"
11
11
  end
12
12
 
13
13
  group :development, :test do
14
- gem "codeclimate-test-reporter", "~> 0.4.1"
15
- gem "rake", "~> 10.4.0"
14
+ gem "codeclimate-test-reporter", "~> 0.4.3"
15
+ gem "rake", "~> 10.4.2"
16
16
  gem "rspec", "~> 3.1.0"
17
17
  gem "simplecov", "~> 0.9.1"
18
18
  end
data/Guardfile CHANGED
@@ -1,12 +1,12 @@
1
- guard :rspec, :cmd => "rspec -fd" do
2
- watch(/^spec\/.+_spec\.rb$/)
3
- watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
4
- watch("spec/spec_helper.rb") { "spec" }
5
- end
6
-
7
- guard :rubocop do
1
+ guard :rubocop, all_on_start: false do
8
2
  watch(/^.+\.rb$/)
9
3
  watch(/^(?:.+\/)?\.rubocop\.yml$/) {|m| File.dirname(m[0]) }
10
4
  watch(/^(?:.+\/)?.+\.gemspec$/)
11
5
  watch(/^(?:.+\/)?(?:Gem|Rake)file$/)
12
6
  end
7
+
8
+ guard :rspec, cmd: "bundle exec rspec -fd" do
9
+ watch(/^spec\/.+_spec\.rb$/)
10
+ watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
11
+ watch("spec/spec_helper.rb") { "spec" }
12
+ end
data/Rakefile CHANGED
@@ -7,4 +7,4 @@ end
7
7
 
8
8
  RSpec::Core::RakeTask.new(:spec)
9
9
 
10
- task :default => :coverage
10
+ task default: :coverage
@@ -13,7 +13,7 @@ module MAbbre
13
13
  def method_missing(name, *args)
14
14
  matched = nil
15
15
 
16
- if self.class.tracked_methods(MAbbre).one? {|m| matched = m if m.to_s =~ /\A#{name}/ }
16
+ if self.class.tracked_methods(MAbbre).one? {|m| matched = m if m =~ /\A#{name}/ }
17
17
  send(matched, *args)
18
18
  else
19
19
  super
@@ -29,7 +29,7 @@ module MAbbre
29
29
  #
30
30
  # Returns +true+ if this object responds to +name+, or whatever +super+ returns otherwise.
31
31
  def respond_to_missing?(name, include_all)
32
- self.class.tracked_methods(MAbbre).one? {|m| m.to_s =~ /\A#{name}/ } or super
32
+ self.class.tracked_methods(MAbbre).one? {|m| m =~ /\A#{name}/ } or super
33
33
  end
34
34
  end
35
35
  end
@@ -35,5 +35,5 @@
35
35
  module MAbbre
36
36
  ##
37
37
  # Current version of MAbbre.
38
- VERSION = "0.0.3"
38
+ VERSION = "1.0.0"
39
39
  end
data/lib/mabbre.rb CHANGED
@@ -1,3 +1,2 @@
1
- require "mabbre/compatibility"
2
1
  require "mabbre/mixin"
3
2
  require "mabbre/version"
data/mabbre.gemspec CHANGED
@@ -4,23 +4,21 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "mabbre/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "mabbre"
8
- spec.version = MAbbre::VERSION
9
- spec.authors = ["Gabriel de Oliveira"]
10
- spec.email = ["deoliveira.gab@gmail.com"]
11
- spec.summary = "Enable shortened method names on classes and modules."
12
- spec.description = <<-EOS.strip.gsub(/\n/, "").gsub(/\s{2,}/, " ")
13
- MAbbre allows a group of methods in a Class or a
14
- Module to be accessed using an abbreviated form.
15
- These methods can be defined anywhere within a
16
- hierarchy of inclusion and/or inheritance.
17
- EOS
18
- spec.homepage = "https://github.com/gdeoliveira/mabbre"
19
- spec.license = "MIT"
20
-
21
- spec.files = `git ls-files -z`.split("\x0")
22
- spec.test_files = spec.files.grep(/^(test|spec|features)\//)
7
+ spec.required_ruby_version = ">= 1.9"
8
+ spec.name = "mabbre"
9
+ spec.version = MAbbre::VERSION
10
+ spec.authors = ["Gabriel de Oliveira"]
11
+ spec.email = ["deoliveira.gab@gmail.com"]
12
+ spec.summary = "Enable shortened method names on classes and modules."
13
+ spec.description = <<-EOS
14
+ MAbbre allows a group of methods in a Class or a Module to be accessed using an abbreviated form. These methods can be
15
+ defined anywhere within a hierarchy of inclusion and/or inheritance.
16
+ EOS
17
+ spec.homepage = "https://github.com/gdeoliveira/mabbre"
18
+ spec.license = "MIT"
19
+ spec.files = `git ls-files -z`.split("\x0")
20
+ spec.test_files = spec.files.grep(/^(test|spec|features)\//)
23
21
  spec.require_paths = ["lib"]
24
-
25
- spec.add_dependency "mtrack", "~> 1.1"
22
+ spec.rdoc_options << "--title=MAbbre"
23
+ spec.add_dependency "mtrack", "~> 2.0"
26
24
  end
@@ -6,9 +6,9 @@ describe MAbbre::Mixin do
6
6
  describe "#allow_abbreviated" do
7
7
  it "is added after extending #{described_class}" do
8
8
  mod = ::Module.new
9
- expect(mod.private_methods.map(&:to_sym)).not_to include(:allow_abbreviated)
9
+ expect(mod.private_methods).not_to include(:allow_abbreviated)
10
10
  mod.module_eval { extend MAbbre::Mixin }
11
- expect(mod.private_methods.map(&:to_sym)).to include(:allow_abbreviated)
11
+ expect(mod.private_methods).to include(:allow_abbreviated)
12
12
  end
13
13
 
14
14
  context "block given" do
@@ -125,7 +125,7 @@ describe MAbbre::Mixin do
125
125
  subject { base_module }
126
126
 
127
127
  it "has custom extensions as ancestors" do
128
- expect(subject.singleton_methods.map(&:to_sym)).to include(:base_extension_meth, :sub_extension_meth)
128
+ expect(subject.singleton_methods).to include(:base_extension_meth, :sub_extension_meth)
129
129
  end
130
130
 
131
131
  it "tracks methods that can be abbreviated" do
data/tasks/console.rb CHANGED
@@ -14,19 +14,11 @@ task :console do
14
14
  end
15
15
  end
16
16
 
17
- if RUBY_VERSION >= "1.9"
18
- begin
19
- require "pry"
20
- rescue LoadError
21
- require "irb"
22
- end
23
- else
24
- require "irb"
25
- end
26
-
27
- if defined? Pry
17
+ begin
18
+ require "pry"
28
19
  Pry.start
29
- else
20
+ rescue LoadError
21
+ require "irb"
30
22
  ARGV.clear
31
23
  IRB.start
32
24
  end
data/tasks/coverage.rb CHANGED
@@ -1,9 +1,5 @@
1
1
  desc "Run tests and generate coverage report"
2
2
  task :coverage do
3
- if RUBY_VERSION >= "1.9"
4
- ENV["COVERAGE"] = "true"
5
- else
6
- warn "Ruby version 1.9+ is needed in order to generate coverage report."
7
- end
3
+ ENV["COVERAGE"] = "true"
8
4
  Rake::Task[:spec].invoke
9
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mabbre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel de Oliveira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-26 00:00:00.000000000 Z
11
+ date: 2014-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mtrack
@@ -16,17 +16,17 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
27
- description: MAbbre allows a group of methods in a Class or a Module to be accessed
28
- using an abbreviated form. These methods can be defined anywhere within a hierarchy
29
- of inclusion and/or inheritance.
26
+ version: '2.0'
27
+ description: |
28
+ MAbbre allows a group of methods in a Class or a Module to be accessed using an abbreviated form. These methods can be
29
+ defined anywhere within a hierarchy of inclusion and/or inheritance.
30
30
  email:
31
31
  - deoliveira.gab@gmail.com
32
32
  executables: []
@@ -43,16 +43,13 @@ files:
43
43
  - README.md
44
44
  - Rakefile
45
45
  - lib/mabbre.rb
46
- - lib/mabbre/compatibility.rb
47
46
  - lib/mabbre/extension.rb
48
47
  - lib/mabbre/interpreter.rb
49
48
  - lib/mabbre/mixin.rb
50
- - lib/mabbre/patch/object_mixin/respond_to_missing.rb
51
49
  - lib/mabbre/version.rb
52
50
  - mabbre.gemspec
53
51
  - spec/.rubocop.yml
54
52
  - spec/lib/mabbre/mixin_spec.rb
55
- - spec/lib/mabbre/patch/object_mixin/respond_to_missing_spec.rb
56
53
  - spec/lib/mabbre/version_spec.rb
57
54
  - spec/spec_helper.rb
58
55
  - tasks/console.rb
@@ -62,14 +59,15 @@ licenses:
62
59
  - MIT
63
60
  metadata: {}
64
61
  post_install_message:
65
- rdoc_options: []
62
+ rdoc_options:
63
+ - "--title=MAbbre"
66
64
  require_paths:
67
65
  - lib
68
66
  required_ruby_version: !ruby/object:Gem::Requirement
69
67
  requirements:
70
68
  - - ">="
71
69
  - !ruby/object:Gem::Version
72
- version: '0'
70
+ version: '1.9'
73
71
  required_rubygems_version: !ruby/object:Gem::Requirement
74
72
  requirements:
75
73
  - - ">="
@@ -77,13 +75,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
75
  version: '0'
78
76
  requirements: []
79
77
  rubyforge_project:
80
- rubygems_version: 2.4.4
78
+ rubygems_version: 2.4.5
81
79
  signing_key:
82
80
  specification_version: 4
83
81
  summary: Enable shortened method names on classes and modules.
84
82
  test_files:
85
83
  - spec/.rubocop.yml
86
84
  - spec/lib/mabbre/mixin_spec.rb
87
- - spec/lib/mabbre/patch/object_mixin/respond_to_missing_spec.rb
88
85
  - spec/lib/mabbre/version_spec.rb
89
86
  - spec/spec_helper.rb
@@ -1,49 +0,0 @@
1
- module MAbbre # rubocop:disable Style/Documentation
2
- ##
3
- # This is a temporary module that is run when loading MAbbre in order to add patches on some Ruby
4
- # versions/implementations. After the environment is patched it will be automatically removed.
5
- module Compatibility
6
- class << self
7
- private
8
-
9
- ##
10
- # call-seq:
11
- # init_self() => nil
12
- #
13
- # This method is automatically called by this module in order to apply all patches.
14
- #
15
- # Returns a +nil+ value.
16
- def init_self
17
- check_object
18
- nil
19
- end
20
-
21
- ##
22
- # call-seq:
23
- # check_object() => Object or nil
24
- #
25
- # Checks all available patches for the Object class and applies the ones that are needed.
26
- #
27
- # Returns Object if patches were applied or +nil+ otherwise.
28
- def check_object
29
- OBJECT_PATCHES.each {|patch, needed| require "#{PATH_TO_OBJECT_PATCHES}/#{patch}" if needed }
30
- Object.instance_eval { include Patch::ObjectMixin } if OBJECT_PATCHES.values.any?
31
- end
32
- end
33
-
34
- ##
35
- # Relative path to the directory where patch files for the Object class live.
36
- PATH_TO_OBJECT_PATCHES = "mabbre/patch/object_mixin".freeze
37
-
38
- ##
39
- # A hash of patch names for the Object class. Each patch name has a +true+ or +false+ value assigned that represents
40
- # if they need to be applied or not.
41
- OBJECT_PATCHES = {
42
- :respond_to_missing => !Object.private_instance_methods.map(&:to_sym).include?(:respond_to_missing?)
43
- }.freeze
44
-
45
- init_self
46
- end
47
-
48
- remove_const :Compatibility
49
- end
@@ -1,36 +0,0 @@
1
- module MAbbre
2
- ##
3
- # Contains all compatibility patches that may be added to the environment depending on the current Ruby
4
- # version/implementation. This module won't be defined in an environment were no patches were applied.
5
- module Patch
6
- ##
7
- # Contains all patches related to the Object class. The methods contained within will only be defined if they are
8
- # needed.
9
- module ObjectMixin
10
- ##
11
- # call-seq:
12
- # respond_to?(name, include_all = false) => true or false
13
- #
14
- # Passes +name+ and +include_all+ to +super+, and if +false+ is returned then #respond_to_missing? will be
15
- # called.
16
- #
17
- # Returns +true+ if this object responds to +name+, and +false+ otherwise.
18
- def respond_to?(name, include_all = false)
19
- super or respond_to_missing?(name, include_all)
20
- end
21
-
22
- private
23
-
24
- ##
25
- # call-seq:
26
- # respond_to_missing?(name, include_all) => false
27
- #
28
- # This is used as the base implementation of #respond_to_missing?.
29
- #
30
- # Returns +false+ irregardless of the value of +name+ and +include_all+.
31
- def respond_to_missing?(_name, _include_all)
32
- false
33
- end
34
- end
35
- end
36
- end
@@ -1,27 +0,0 @@
1
- require "spec_helper"
2
- require "mabbre/patch/object_mixin/respond_to_missing"
3
-
4
- describe MAbbre::Patch::ObjectMixin do
5
- subject do
6
- dc = described_class
7
- Class.new.instance_eval { include dc }.new
8
- end
9
-
10
- describe "#respond_to?" do
11
- it "calls #respond_to_missing? at least once" do
12
- expect(subject).to receive(:respond_to_missing?).with(:test_method, false).at_least(:once)
13
- subject.respond_to? :test_method
14
- end
15
-
16
- it "calls #respond_to_missing? at most twice" do
17
- expect(subject).to receive(:respond_to_missing?).with(:test_method, false).at_most(:twice)
18
- subject.respond_to? :test_method
19
- end
20
- end
21
-
22
- describe "#respond_to_missing?" do
23
- it "returns false" do
24
- expect(subject.send(:respond_to_missing?, :test_method, true)).to be(false)
25
- end
26
- end
27
- end