emoji_differ 0.1.0.beta → 0.1.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: 7b31b878e80391ad4307cb311e12f4a528f28970
4
- data.tar.gz: bdb2d22d20fdfdfe506abaf9bac7ef4f28afe889
3
+ metadata.gz: 3248184166906a4068426e8f16ea21abc226ede3
4
+ data.tar.gz: 91fed0a6920d836ae43f43b4afa26a821b1a4f79
5
5
  SHA512:
6
- metadata.gz: 60ba91374af393b9b69e6b60969fa8619b75f34f528183fb85d766916272041d2bc7440631b68c46b72c6218ad53a0b35124fce87f1276e1f2e9806f0a327a10
7
- data.tar.gz: e79a98f8b2d8c79e25969e576c9cc27130426a0588ca0c0c0963e07d0758be8db7d8fb58718ea64472a563956e94fd5e6be9e1046595cce542ae7f807ab46c70
6
+ metadata.gz: '0979c10bc27b37e81aa175f6f0247b3fb73c218da9019e806cc95c47b3a0dad39326a0bf27516f4b5e77bcb6dbc62888ca1cdc2bf5dce7a616b46b26e1be0bfb'
7
+ data.tar.gz: dbf755fa2d6073a30714d2c212b20b906ada57edac1ecadb53724880cc716c740bbedbdaa4ee847181aac982bad88c91ebc6e2c2daa4131bf8a6d850fa506d21
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  .rspec_status
12
12
 
13
13
  *.gem
14
+ .slack_token
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- emoji_differ (0.1.0.beta)
4
+ emoji_differ (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/exe/emoji_differ ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'emoji_differ'
4
+
5
+ cmd = ARGV.shift
6
+ case
7
+ when (cmd == 'update')
8
+ EmojiDiffer.clear
9
+ EmojiDiffer.save
10
+ when (cmd == 'clear')
11
+ EmojiDiffer.clear
12
+ when (cmd == 'show')
13
+ subcommand = ARGV.shift
14
+ puts case
15
+ when (subcommand == 'old')
16
+ EmojiDiffer.load
17
+ when (subcommand == 'deleted')
18
+ EmojiDiffer.deleted
19
+ when (subcommand == 'current')
20
+ EmojiDiffer.current
21
+ when (subcommand == 'new')
22
+ EmojiDiffer.new_emoji
23
+ else
24
+ 'Try emoji_differ show TYPE where type is one of old, deleted, current, new'
25
+ end
26
+ else
27
+ puts 'Try emoji_differ COMMAND where command is one of show, update, or clear'
28
+ end
@@ -1,7 +1,13 @@
1
1
  module EmojiDiffer
2
2
  class Emoji < Struct.new(:name, :picture_link, :timestamp)
3
+ include Comparable
4
+
3
5
  def to_s
4
6
  ":#{name}:"
5
7
  end
8
+
9
+ def <=>(other)
10
+ name <=> other.name
11
+ end
6
12
  end
7
13
  end
@@ -5,33 +5,48 @@ module EmojiDiffer
5
5
  class List
6
6
  include Enumerable
7
7
 
8
- def initialize(json)
9
- @parsed = parse(json)
10
- @emojis = transform
8
+ def initialize(emoji=nil)
9
+ @emojis = emoji
10
+ end
11
+
12
+ def self.from_json(json)
13
+ new.parse(json)
11
14
  end
12
15
 
13
16
  def to_s
14
- @emojis.to_s
17
+ collection = emojis.map(&:to_s).join(" ")
18
+ "#{collection}\n Total: #{length}"
15
19
  end
16
20
 
17
21
  def each
18
- @emojis.each do |emoji|
22
+ emojis.each do |emoji|
19
23
  yield emoji
20
24
  end
21
25
  end
22
26
 
27
+ def -(other)
28
+ other_names = other.emojis.to_a.map(&:name)
29
+ self.class.new(emojis.reject {|emoji| other_names.include?(emoji.name) })
30
+ end
31
+
23
32
  def length
24
- @emojis.length
33
+ emojis.length
25
34
  end
26
35
 
27
36
  def to_json
28
37
  JSON.generate(parsed) #cheeky eh
29
38
  end
30
39
 
40
+ def emojis
41
+ @emojis ||= transform
42
+ end
43
+
44
+ def parse(json)
45
+ @parsed = JSON.parse(json)
46
+ self
47
+ end
48
+
31
49
  private
32
- def parse(json)
33
- JSON.parse(json)
34
- end
35
50
 
36
51
  attr_reader :parsed
37
52
 
@@ -22,7 +22,7 @@ module EmojiDiffer
22
22
  end
23
23
 
24
24
  def emoji
25
- EmojiDiffer::List.new(raw_response.body)
25
+ EmojiDiffer::List.from_json(raw_response.body)
26
26
  end
27
27
  end
28
28
  end
@@ -1,3 +1,3 @@
1
1
  module EmojiDiffer
2
- VERSION = "0.1.0.beta"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/emoji_differ.rb CHANGED
@@ -4,6 +4,7 @@ require 'emoji_differ/config'
4
4
 
5
5
  module EmojiDiffer
6
6
  class Error < StandardError; end
7
+
7
8
  def self.config
8
9
  @config ||= EmojiDiffer::Config.new
9
10
  if block_given?
@@ -17,8 +18,16 @@ module EmojiDiffer
17
18
  @current ||= EmojiDiffer::SlackApi.new(config.token).emoji
18
19
  end
19
20
 
21
+ def self.cached
22
+ load
23
+ end
24
+
25
+ def self.deleted
26
+ load - current
27
+ end
28
+
20
29
  def self.new_emoji
21
- current.reject {|x| load.map(&:name).include?(x.name) }.map(&:to_s).join(" ")
30
+ current - load
22
31
  end
23
32
 
24
33
  def self.save
@@ -41,7 +50,7 @@ module EmojiDiffer
41
50
  while !f.eof? && (chunk = read_nb_chunk(f))
42
51
  contents += chunk
43
52
  end
44
- EmojiDiffer::List.new(contents)
53
+ EmojiDiffer::List.from_json(contents)
45
54
  end
46
55
  end
47
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emoji_differ
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin George
@@ -72,7 +72,8 @@ description: This gem uses the Slack API to provide you a diff of the emojis ava
72
72
  email:
73
73
  - justin.george@instacart.com
74
74
  - lev.kokotov@gmail.com
75
- executables: []
75
+ executables:
76
+ - emoji_differ
76
77
  extensions: []
77
78
  extra_rdoc_files: []
78
79
  files:
@@ -88,6 +89,7 @@ files:
88
89
  - bin/console
89
90
  - bin/setup
90
91
  - emoji_differ.gemspec
92
+ - exe/emoji_differ
91
93
  - lib/emoji_differ.rb
92
94
  - lib/emoji_differ/config.rb
93
95
  - lib/emoji_differ/emoji.rb
@@ -113,9 +115,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
115
  version: '0'
114
116
  required_rubygems_version: !ruby/object:Gem::Requirement
115
117
  requirements:
116
- - - ">"
118
+ - - ">="
117
119
  - !ruby/object:Gem::Version
118
- version: 1.3.1
120
+ version: '0'
119
121
  requirements: []
120
122
  rubyforge_project:
121
123
  rubygems_version: 2.5.2.3