emoji_differ 0.1.0.beta → 0.1.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: 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