emoji-rspec 0.0.2 → 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.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +4 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +1 -1
  5. data/README.md +320 -4
  6. data/Rakefile +1 -1
  7. data/emoji-rspec.gemspec +2 -2
  8. data/examples/show_some_emoji.rb +23 -0
  9. data/lib/emoji-rspec.rb +1 -3
  10. data/lib/{emoji/rspec → emoji_test_love}/formatters.rb +0 -0
  11. data/lib/emoji_test_love/formatters/adventure_time_formatter.rb +53 -0
  12. data/lib/emoji_test_love/formatters/aggressive_thumbs_formatter.rb +19 -0
  13. data/lib/emoji_test_love/formatters/books_formatter.rb +19 -0
  14. data/lib/emoji_test_love/formatters/celebrate_formatter.rb +19 -0
  15. data/lib/emoji_test_love/formatters/drinking_game_formatter.rb +19 -0
  16. data/lib/emoji_test_love/formatters/drinking_game_tea_formatter.rb +19 -0
  17. data/lib/emoji_test_love/formatters/fruit_formatter.rb +19 -0
  18. data/lib/emoji_test_love/formatters/kanpai_formatter.rb +21 -0
  19. data/lib/emoji_test_love/formatters/life_hearts_formatter.rb +19 -0
  20. data/lib/emoji_test_love/formatters/lucky_formatter.rb +19 -0
  21. data/lib/emoji_test_love/formatters/omkase_formatter.rb +21 -0
  22. data/lib/emoji_test_love/formatters/smile_dip_formatter.rb +19 -0
  23. data/lib/emoji_test_love/formatters/smiley_faces_formatter.rb +19 -0
  24. data/lib/emoji_test_love/formatters/sunshine_formatter.rb +19 -0
  25. data/lib/emoji_test_love/formatters/thumbs_formatter.rb +19 -0
  26. data/lib/emoji_test_love/formatters/turtles_formatter.rb +19 -0
  27. data/lib/emoji_test_love/formatters/waddles_formatter.rb +19 -0
  28. data/lib/emoji_test_love/formatters/zen_smiles_formatter.rb +19 -0
  29. data/lib/emoji_test_love/rspec.rb +17 -0
  30. data/lib/emoji_test_love/rspec/rspec_formatters.rb +21 -0
  31. data/lib/emoji_test_love/rspec/rspec_integration.rb +75 -0
  32. data/lib/emoji_test_love/version.rb +3 -0
  33. data/spec/formatters/adventure_time_formatter_spec.rb +6 -0
  34. data/spec/formatters/aggressive_thumbs_formatter_spec.rb +6 -0
  35. data/spec/formatters/books_formatter_spec.rb +6 -0
  36. data/spec/formatters/celebrate_formatter_spec.rb +6 -0
  37. data/spec/formatters/drinking_game_formatter_spec.rb +6 -0
  38. data/spec/formatters/drinking_game_tea_formatter_spec.rb +6 -0
  39. data/spec/formatters/fruit_formatter_spec.rb +6 -0
  40. data/spec/formatters/kanpai_formatter_spec.rb +6 -0
  41. data/spec/formatters/life_hearts_formatter_spec.rb +6 -0
  42. data/spec/formatters/lucky_formatter_spec.rb +6 -0
  43. data/spec/formatters/omkase_formatter_spec.rb +6 -0
  44. data/spec/formatters/smile_dip_formatter_spec.rb +6 -0
  45. data/spec/formatters/smiley_faces_formatter_spec.rb +6 -0
  46. data/spec/formatters/sunshine_formatter_spec.rb +6 -0
  47. data/spec/formatters/thumbs_formatter_spec.rb +6 -0
  48. data/spec/formatters/turtles_formatter_spec.rb +6 -0
  49. data/spec/formatters/waddles_formatter_spec.rb +6 -0
  50. data/spec/formatters/zen_smiles_formatter_spec.rb +6 -0
  51. data/spec/generating_formatters_spec.rb +143 -0
  52. data/spec/spec_helper.rb +0 -0
  53. data/spec/support/shared_examples_for_formatters.rb +6 -0
  54. metadata +124 -92
  55. data/lib/emoji/helper.rb +0 -10
  56. data/lib/emoji/rspec/formatters/adventure_time_formatter.rb +0 -39
  57. data/lib/emoji/rspec/formatters/aggressive_thumbs_formatter.rb +0 -27
  58. data/lib/emoji/rspec/formatters/drinking_game_formatter.rb +0 -27
  59. data/lib/emoji/rspec/formatters/drinking_game_tea_formatter.rb +0 -27
  60. data/lib/emoji/rspec/formatters/life_hearts_formatter.rb +0 -27
  61. data/lib/emoji/rspec/formatters/smiles_formatter.rb +0 -27
  62. data/lib/emoji/rspec/formatters/thumbs_formatter.rb +0 -27
  63. data/lib/emoji/rspec/formatters/zen_smiles_formatter.rb +0 -27
  64. data/lib/emoji/rspec/integration.rb +0 -38
  65. data/lib/emoji/rspec/version.rb +0 -5
  66. data/spec/example_formatter_spec.rb +0 -40
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class AggressiveThumbs
3
+ def passed_display
4
+ "\u{1f44c} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f44a} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{270a} "
13
+ end
14
+
15
+ def names
16
+ ['aggressive_thumbs', 'aggressivethumbs']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Books
3
+ def passed_display
4
+ "\u{1f4d7} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f4d5} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f4d9} "
13
+ end
14
+
15
+ def names
16
+ ['books', 'reading_rainbow']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Celebrate
3
+ def passed_display
4
+ "\u{1f37b} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{2615} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f355} "
13
+ end
14
+
15
+ def names
16
+ ['celebrate', 'celebration', 'cheers']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class DrinkingGame
3
+ def passed_display
4
+ "\u{2615} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f378} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f37a} "
13
+ end
14
+
15
+ def names
16
+ ['drinking', 'drinking_game', 'drinkinggame']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class DrinkingGameTea
3
+ def passed_display
4
+ "\u{1f375} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f378} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f37a} "
13
+ end
14
+
15
+ def names
16
+ ['drinking_tea', 'drinking_game_tea', 'drinkingtea', 'drinkinggametea']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Fruit
3
+ def passed_display
4
+ "\u{1f34f} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f345} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f34b} "
13
+ end
14
+
15
+ def names
16
+ ['apples', 'fruit']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ module EmojiTestLove
4
+ class Kanpai
5
+ def passed_display
6
+ "\u{1f376} "
7
+ end
8
+
9
+ def failed_display
10
+ "\u{1f375} "
11
+ end
12
+
13
+ def pending_display
14
+ "\u{1f363} "
15
+ end
16
+
17
+ def names
18
+ ['kanpai', '乾杯']
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class LifeHearts
3
+ def passed_display
4
+ "\u{1f49a} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f494} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f49b} "
13
+ end
14
+
15
+ def names
16
+ ['hearts', 'life', 'life_hearts', 'lifehearts']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Lucky
3
+ def passed_display
4
+ "\u{1f340} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f344} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f330} "
13
+ end
14
+
15
+ def names
16
+ ['lucky']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ module EmojiTestLove
4
+ class Omkase
5
+ def passed_display
6
+ "\u{1f361} "
7
+ end
8
+
9
+ def failed_display
10
+ "\u{1f358} "
11
+ end
12
+
13
+ def pending_display
14
+ "\u{1f365} "
15
+ end
16
+
17
+ def names
18
+ ['omkase', 'お任せ']
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class SmileDip
3
+ def passed_display
4
+ "\u{1f36d} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f47b} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f42c} "
13
+ end
14
+
15
+ def names
16
+ ['smile_dip', 'smiledip', 'fundip', 'fun_dip', 'aoshima']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Smiles
3
+ def passed_display
4
+ "\u{1f60a} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f621} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f62c} "
13
+ end
14
+
15
+ def names
16
+ 'smiles'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Sunshine
3
+ def passed_display
4
+ "\u{2600} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{2614} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{2601} "
13
+ end
14
+
15
+ def names
16
+ ['sunshine', 'sunny']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Thumbs
3
+ def passed_display
4
+ "\u{1f44d} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f44e} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{270b} "
13
+ end
14
+
15
+ def names
16
+ 'thumbs'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Turtles
3
+ def passed_display
4
+ "\u{1f422} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f41e} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f40c} "
13
+ end
14
+
15
+ def names
16
+ ['turtles', 'all_the_way_down', 'turtles_all_the_way_down']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class Waddles
3
+ def passed_display
4
+ "\u{1f437} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f41b} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f331} "
13
+ end
14
+
15
+ def names
16
+ ['waddles']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module EmojiTestLove
2
+ class ZenSmiles
3
+ def passed_display
4
+ "\u{1f610} "
5
+ end
6
+
7
+ def failed_display
8
+ "\u{1f61e} "
9
+ end
10
+
11
+ def pending_display
12
+ "\u{1f614} "
13
+ end
14
+
15
+ def names
16
+ ['zen', 'zen_smiles', 'zensmiles']
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ require 'rspec/core/configuration'
2
+ require_relative 'rspec/rspec_integration'
3
+ require_relative 'rspec/rspec_formatters'
4
+
5
+ class RSpec::Core::Configuration
6
+
7
+ alias_method :built_in_formatter_without_emoji, :built_in_formatter
8
+
9
+ def built_in_formatter(key)
10
+ key = key.to_s.downcase
11
+ formatter = ::EmojiTestLove::RSpecIntegration
12
+ .known_formatters
13
+ .detect{ |klass| klass.names.map(&:downcase).include? key }
14
+ formatter || built_in_formatter_without_emoji(key)
15
+ end
16
+
17
+ end
@@ -0,0 +1,21 @@
1
+ require 'emoji_test_love/formatters'
2
+ require 'emoji_test_love/rspec/rspec_integration'
3
+
4
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::AdventureTime.new, "AdventureTime")
5
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::AggressiveThumbs.new, "AggressiveThumbs")
6
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Books.new, "Books")
7
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Celebrate.new, "Celebrate")
8
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::DrinkingGame.new, "DrinkingGame")
9
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::DrinkingGameTea.new, "DrinkingGameTea")
10
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Fruit.new, "Fruit")
11
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Kanpai.new, "Kanpai")
12
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::LifeHearts.new, "LifeHearts")
13
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Lucky.new, "Lucky")
14
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Omkase.new, "Omkase")
15
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::SmileDip.new, "SmileDip")
16
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Smiles.new, "SmileyFaces")
17
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Sunshine.new, "Sunshine")
18
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Thumbs.new, "Thumbs")
19
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Turtles.new, "Turtles")
20
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::Waddles.new, "Waddles")
21
+ EmojiTestLove::RSpecFormatter(EmojiTestLove::ZenSmiles.new, "ZenSmiles")
@@ -0,0 +1,75 @@
1
+ require 'rspec/core/formatters/base_text_formatter'
2
+
3
+ module EmojiTestLove
4
+
5
+ class RSpecIntegration < ::RSpec::Core::Formatters::BaseTextFormatter
6
+ class << self
7
+ attr_reader :display_provider, :known_formatters
8
+
9
+ def display_provider=(provider)
10
+ @display_provider = provider
11
+ end
12
+
13
+ def inherited(subclass)
14
+ @known_formatters ||= []
15
+ @known_formatters << subclass
16
+ end
17
+
18
+ def names
19
+ Array(display_provider.names) << name
20
+ end
21
+ end
22
+
23
+ def display_provider
24
+ self.class.display_provider
25
+ end
26
+
27
+ def print(display)
28
+ output.print display
29
+ end
30
+
31
+ def example_passed(example)
32
+ super(example)
33
+ self.print success_color display_provider.passed_display
34
+ end
35
+
36
+ def example_failed(example)
37
+ super(example)
38
+ self.print failure_color display_provider.failed_display
39
+ end
40
+
41
+ def example_pending(example)
42
+ super(example)
43
+ self.print pending_color display_provider.pending_display
44
+ end
45
+ end
46
+
47
+ def self.RSpecFormatter(display_provider, formatter_name = display_provider.class.name)
48
+ base = new_formatter display_provider
49
+ formatter_name, namespaces = *split_by_namespace(formatter_name)
50
+ scope = ensure_namespace_exists namespaces
51
+ formatter_class_name = "%sFormatter"%formatter_name
52
+
53
+ scope.const_set(formatter_class_name, base)
54
+ end
55
+
56
+ private
57
+
58
+ def self.split_by_namespace(formatter_name)
59
+ namespaces = formatter_name.split('::')
60
+ [namespaces.pop, namespaces]
61
+ end
62
+
63
+ def self.new_formatter(delegator)
64
+ Class.new(RSpecIntegration).tap{ |base| base.display_provider = delegator }
65
+ end
66
+
67
+ def self.ensure_namespace_exists(namespaces)
68
+ namespaces.inject(self) do |scope, name|
69
+ scope.const_set(name, Module.new) unless scope.const_defined?(name, false)
70
+
71
+ scope.const_get(name, false)
72
+ end
73
+ end
74
+
75
+ end