maybe_monad 0.0.1 → 0.1.1

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: f764aebbaae44b81e26bd18cfe2e697f048aee4d
4
+ data.tar.gz: 4015da28b157817efabeb2140517a1eec0b1a7ad
5
+ SHA512:
6
+ metadata.gz: 8fb900691fce3ee764dadbd8e4da8b60df0414dedae99ae97f9f0b4a41080fed94e3b4d190372f4e86bdfb27956b895736accda2b96c83ab6cd79eb406e30b33
7
+ data.tar.gz: 5b3d3b75119dbaf5b3464c151624fad7b706de43423e5dd46b84857f77a8b34e7916cca4764fea3f34aa5f216c9e8b865d4b51e4144a936aca4e0fdcb870b2e2
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rspec_status ADDED
@@ -0,0 +1,9 @@
1
+ example_id | status | run_time |
2
+ --------------------------------- | ------ | --------------- |
3
+ ./spec/maybe_monad_spec.rb[1:1:1] | passed | 0.00036 seconds |
4
+ ./spec/maybe_monad_spec.rb[1:2:1] | passed | 0.00008 seconds |
5
+ ./spec/maybe_monad_spec.rb[1:3:1] | passed | 0.00007 seconds |
6
+ ./spec/maybe_monad_spec.rb[1:4:1] | passed | 0.00007 seconds |
7
+ ./spec/maybe_monad_spec.rb[1:5:1] | passed | 0.00007 seconds |
8
+ ./spec/maybe_monad_spec.rb[1:5:2] | passed | 0.00006 seconds |
9
+ ./spec/maybe_monad_spec.rb[1:6:1] | passed | 0.00007 seconds |
data/Rakefile CHANGED
@@ -1,9 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
2
3
 
3
- require 'rake/testtask'
4
+ RSpec::Core::RakeTask.new(:spec)
4
5
 
5
- Rake::TestTask.new do |t|
6
- t.libs.push "lib"
7
- t.test_files = FileList['spec/spec_*.rb']
8
- t.verbose = true
9
- end
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "xxx"
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(__FILE__)
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
@@ -1,3 +1,3 @@
1
1
  module MaybeMonad
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/maybe_monad.rb CHANGED
@@ -22,12 +22,8 @@ module MaybeMonad
22
22
  @just
23
23
  end
24
24
 
25
- def method_missing(name, *args)
26
- # default, nil don't respond to any method
27
- @just.nil? ? Monad.new(nil) : Monad.new(@just.__send__(name, *args))
28
-
29
- ## extra, nil respond to methods that can respond
30
- #@just.respond_to?(name) ? Monad.new(@just.__send__(name, *args)) : Monad.new(nil)
25
+ def method_missing(name, *args, &block)
26
+ @just.respond_to?(name) ? Monad.new(@just.__send__(name, *args, &block)) : Monad.new(nil)
31
27
  end
32
28
 
33
29
  end
data/maybe_monad.gemspec CHANGED
@@ -18,6 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
21
+ spec.add_development_dependency "bundler"
22
+ spec.add_development_dependency "rspec"
23
23
  end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe MaybeMonad::Monad do
4
+
5
+ before do
6
+ end
7
+
8
+ describe "test soup is nil" do
9
+ it 'must return ""' do
10
+ expect(nil.maybe.to_s.just).to eq ""
11
+ end
12
+ end
13
+
14
+ describe "test actual soup call undef method" do
15
+ it "must return nil" do
16
+ expect("a".maybe.aaa.just).to eq nil
17
+ end
18
+ end
19
+
20
+ describe "test actual soup" do
21
+ it "must return 2" do
22
+ expect(2.maybe.to_s.just).to eq "2"
23
+ end
24
+ end
25
+
26
+ describe "test method with parameters" do
27
+ it "must return false" do
28
+ expect("a".maybe.respond_to?("aaa").to_s.just).to eq "false"
29
+ end
30
+ end
31
+
32
+ describe "test method #[]" do
33
+ it "must return 2" do
34
+ expect([1, 2, 3].maybe[1].to_s.just).to eq "2"
35
+ end
36
+
37
+ it "must return nil" do
38
+ expect([1, 2, 3].maybe[4].to_s.just).to eq ""
39
+ end
40
+ end
41
+
42
+ describe "test block" do
43
+ it "must return 2" do
44
+ expect(([1].maybe.map { |x| x + 1 })[0].just).to eq 2
45
+ end
46
+ end
47
+ end
48
+
@@ -0,0 +1,12 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'maybe_monad'
4
+
5
+ RSpec.configure do |config|
6
+ # Enable flags like --only-failures and --next-failure
7
+ config.example_status_persistence_file_path = ".rspec_status"
8
+
9
+ config.expect_with :rspec do |c|
10
+ c.syntax = :expect
11
+ end
12
+ end
metadata CHANGED
@@ -1,89 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maybe_monad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - liangjingyang
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-04 00:00:00.000000000 Z
11
+ date: 2017-07-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: '1.3'
19
+ version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '1.3'
26
+ version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rake
28
+ name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: another maybe monad library
47
42
  email:
48
43
  - simple.continue@gmail.com
49
- executables: []
44
+ executables:
45
+ - console
46
+ - setup
50
47
  extensions: []
51
48
  extra_rdoc_files: []
52
49
  files:
53
- - .gitignore
50
+ - ".gitignore"
51
+ - ".rspec"
52
+ - ".rspec_status"
54
53
  - Gemfile
55
54
  - LICENSE.txt
56
55
  - README.md
57
56
  - Rakefile
57
+ - bin/console
58
+ - bin/setup
58
59
  - lib/maybe_monad.rb
59
60
  - lib/maybe_monad/version.rb
60
61
  - maybe_monad.gemspec
61
62
  - maybe_monad.png
62
- - spec/spec_maybe_monad.rb
63
+ - spec/maybe_monad_spec.rb
64
+ - spec/spec_helper.rb
63
65
  homepage: ''
64
66
  licenses:
65
67
  - MIT
68
+ metadata: {}
66
69
  post_install_message:
67
70
  rdoc_options: []
68
71
  require_paths:
69
72
  - lib
70
73
  required_ruby_version: !ruby/object:Gem::Requirement
71
- none: false
72
74
  requirements:
73
- - - ! '>='
75
+ - - ">="
74
76
  - !ruby/object:Gem::Version
75
77
  version: '0'
76
78
  required_rubygems_version: !ruby/object:Gem::Requirement
77
- none: false
78
79
  requirements:
79
- - - ! '>='
80
+ - - ">="
80
81
  - !ruby/object:Gem::Version
81
82
  version: '0'
82
83
  requirements: []
83
84
  rubyforge_project:
84
- rubygems_version: 1.8.23
85
+ rubygems_version: 2.5.2
85
86
  signing_key:
86
- specification_version: 3
87
+ specification_version: 4
87
88
  summary: another maybe monad library
88
89
  test_files:
89
- - spec/spec_maybe_monad.rb
90
+ - spec/maybe_monad_spec.rb
91
+ - spec/spec_helper.rb
@@ -1,49 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'maybe_monad'
3
-
4
- describe MaybeMonad::Monad do
5
-
6
- before do
7
- end
8
-
9
- # default, nil don't respond to any method
10
- describe "test soup is nil" do
11
- it "must return nil" do
12
- nil.maybe.to_s.just.must_equal nil
13
- end
14
- end
15
-
16
- ## extra, nil respond to methods that can respond
17
- #describe "test soup is nil" do
18
- #it 'must return ""' do
19
- #nil.maybe.to_s.just.must_equal ""
20
- #end
21
- #end
22
-
23
- ## extra, just return nil if actual soup call undef method
24
- #describe "test actual soup call undef method" do
25
- #it "must return nil" do
26
- #"a".maybe.aaa.just.must_equal nil
27
- #end
28
- #end
29
-
30
- describe "test actual soup" do
31
- it "must return 2" do
32
- 2.maybe.to_s.just.must_equal "2"
33
- end
34
- end
35
-
36
- describe "test method with parameters" do
37
- it "must return false" do
38
- "a".maybe.respond_to?("aaa").to_s.just.must_equal "false"
39
- end
40
- end
41
-
42
- describe "test method #[]" do
43
- it "must return 2" do
44
- [1, 2, 3].maybe[1].to_s.just.must_equal "2"
45
- end
46
- end
47
-
48
- end
49
-