m_and_m 0.0.4 → 0.0.5

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: 33449224abc2ad6dc3066445f6d5bf41936d5cb1
4
+ data.tar.gz: c61c0f4f29f487b0da890f194adf387948c9b42e
5
+ SHA512:
6
+ metadata.gz: 0533d96b03ff4ec8c520571c0f520a36ca7183dcad5253d4091eaee78acf3c08adc7fcd6d4657a45329c092b8648c2d2a39c65f5233fc668bb633c49f99743b6
7
+ data.tar.gz: 0e3b88112939c18bbb680567d98fbb4aafdc954004cecf7d32c13228589ccc9829cfefae5c4a0c57c27d281006b318e99a361ec43ae210f42d5229e72996edb2
data/bin/m_and_m CHANGED
@@ -4,6 +4,6 @@ require 'rubygems'
4
4
 
5
5
  $:.unshift File.dirname(__FILE__)+'/../lib'
6
6
 
7
- require 'm_and_m'
7
+ require 'm_and_m/cli'
8
8
 
9
- MAndM.execute *ARGV
9
+ MAndM::Cli.new.execute *ARGV
@@ -0,0 +1,28 @@
1
+ require 'rainbow'
2
+ require 'm_and_m'
3
+ require 'm_and_m/server'
4
+ require 'm_and_m/preferences'
5
+
6
+ class MAndM::Cli
7
+ attr_reader :preferences
8
+
9
+ def initialize
10
+ @preferences = MAndM::Preferences.new '.m_and_m'
11
+ end
12
+
13
+ def execute
14
+ url = preferences.ask :url, 'What is the server url'
15
+ token = preferences.ask :token, 'What is the authentication token'
16
+ MAndM::Server.new(url, preferences).messages.each do |message|
17
+ puts "#{c :yellow, time(message["at"])} #{c :magenta, message["from"]} said #{c :green, message["message"]}"
18
+ end
19
+ end
20
+
21
+ def time at
22
+ Time.at(at).strftime("%d/%b %H:%M:%S")
23
+ end
24
+
25
+ def c colour, text
26
+ text.to_s.foreground colour
27
+ end
28
+ end
@@ -0,0 +1,33 @@
1
+ class MAndM::Preferences
2
+ attr_reader :preferences_path, :hash
3
+
4
+ def initialize name
5
+ @preferences_path = File.join File.expand_path('~'), name
6
+ if File.exists? preferences_path
7
+ @hash = YAML.load_file preferences_path
8
+ else
9
+ @hash = {}
10
+ end
11
+ end
12
+
13
+ def ask key, prompt
14
+ unless hash[key]
15
+ print "#{prompt} ? "
16
+ self[key] = gets.chomp
17
+ end
18
+ self[key]
19
+ end
20
+
21
+ def [] key
22
+ hash[key]
23
+ end
24
+
25
+ def []= key, value
26
+ hash[key] = value
27
+ persist
28
+ end
29
+
30
+ def persist
31
+ File.open(preferences_path, 'w') {|f| f.puts hash.to_yaml}
32
+ end
33
+ end
@@ -1,16 +1,25 @@
1
1
  require 'httparty'
2
2
 
3
- module MAndM
4
- end
3
+ MAndM::Server = Struct.new :base_url, :preferences
5
4
 
6
5
  class MAndM::Server
7
- attr_reader :base_url
6
+ def last_message_id
7
+ preferences[:last_message_id]
8
+ end
9
+
10
+ def token
11
+ preferences[:token]
12
+ end
13
+
14
+ def authenticated_base_url
15
+ "#{base_url}?uuid=#{token}"
16
+ end
8
17
 
9
- def initialize base_url=nil
10
- @base_url = base_url || ENV['M_AND_M_URL']
18
+ def message_url
19
+ last_message_id ? "#{authenticated_base_url}&id=#{last_message_id}" : authenticated_base_url
11
20
  end
12
21
 
13
22
  def messages
14
- HTTParty.get base_url
23
+ HTTParty.get message_url
15
24
  end
16
25
  end
@@ -1,3 +1,3 @@
1
1
  module MAndM
2
- VERSION = "0.0.4"
2
+ VERSION = '0.0.5'
3
3
  end
data/lib/m_and_m.rb CHANGED
@@ -1,19 +1,2 @@
1
- require 'rainbow'
2
- require 'm_and_m/version'
3
- require 'm_and_m/server'
4
-
5
1
  module MAndM
6
- def self.execute
7
- Server.new.messages.each do |message|
8
- puts "#{c :yellow, time(message["at"])} #{c :magenta, message["from"]} said #{c :green, message["message"]}"
9
- end
10
- end
11
-
12
- def self.time at
13
- Time.at(at).strftime("%d/%b %H:%M:%S")
14
- end
15
-
16
- def self.c colour, text
17
- text.to_s.foreground colour
18
- end
19
- end
2
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m_and_m
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.0.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lionel Randall
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-27 00:00:00.000000000 Z
11
+ date: 2013-06-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: httparty
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
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
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rainbow
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
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
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bundler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,17 +55,15 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description:
@@ -91,38 +82,33 @@ files:
91
82
  - Rakefile
92
83
  - bin/m_and_m
93
84
  - lib/m_and_m.rb
85
+ - lib/m_and_m/cli.rb
86
+ - lib/m_and_m/preferences.rb
94
87
  - lib/m_and_m/server.rb
95
88
  - lib/m_and_m/version.rb
96
89
  - m_and_m.gemspec
97
90
  homepage: ''
98
91
  licenses:
99
92
  - MIT
93
+ metadata: {}
100
94
  post_install_message:
101
95
  rdoc_options: []
102
96
  require_paths:
103
97
  - lib
104
98
  required_ruby_version: !ruby/object:Gem::Requirement
105
- none: false
106
99
  requirements:
107
- - - ! '>='
100
+ - - '>='
108
101
  - !ruby/object:Gem::Version
109
102
  version: '0'
110
- segments:
111
- - 0
112
- hash: -4209308286874667398
113
103
  required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
104
  requirements:
116
- - - ! '>='
105
+ - - '>='
117
106
  - !ruby/object:Gem::Version
118
107
  version: '0'
119
- segments:
120
- - 0
121
- hash: -4209308286874667398
122
108
  requirements: []
123
109
  rubyforge_project:
124
- rubygems_version: 1.8.23
110
+ rubygems_version: 2.0.3
125
111
  signing_key:
126
- specification_version: 3
112
+ specification_version: 4
127
113
  summary: Command line gem for M & M
128
114
  test_files: []