mabbre 0.0.3 → 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 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