teleinfo 0.0.2
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 +7 -0
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/Guardfile +40 -0
- data/LICENSE.txt +22 -0
- data/README.md +58 -0
- data/Rakefile +7 -0
- data/bin/guard +16 -0
- data/bin/teleinfo +23 -0
- data/lib/teleinfo.rb +71 -0
- data/lib/teleinfo/frame.rb +58 -0
- data/lib/teleinfo/version.rb +3 -0
- data/spec/frame_spec.rb +47 -0
- data/spec/raw/teleinfo_HCHP_anon +1302 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/teleinfo_spec.rb +45 -0
- data/teleinfo.gemspec +25 -0
- metadata +125 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Teleinfo::Parser do
|
4
|
+
RAW_TELEINFO_FILE = File.expand_path(File.dirname(__FILE__)) + '/raw/teleinfo_HCHP_anon'
|
5
|
+
let(:raw_file) do
|
6
|
+
File.new(RAW_TELEINFO_FILE.to_s)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'has a version number' do
|
10
|
+
expect(Teleinfo::VERSION).not_to be nil
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'On initialization' do
|
14
|
+
it 'should initialize with a File' do
|
15
|
+
expect{Teleinfo::Parser.new(raw_file)}.not_to raise_error
|
16
|
+
expect{Teleinfo::Parser.new(nil)}.to raise_error
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'On parsing a stream' do
|
21
|
+
before do
|
22
|
+
@parser = Teleinfo::Parser.new(raw_file)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should return TeleinFo::Frame instances' do
|
26
|
+
@parser.read_all
|
27
|
+
expect(@parser.frames.all? { |f| f.is_a?(Teleinfo::Frame) }).to be true
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should be able to tell how many frame are present' do
|
31
|
+
expect(@parser.read_all).to eq(60)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should keep in cache every frame read' do
|
35
|
+
frame = @parser.next
|
36
|
+
@parser.read_all
|
37
|
+
expect(@parser.frames[0]) == frame # striclty the same object
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should give the "next" frame' do
|
41
|
+
frame = @parser.next
|
42
|
+
expect(frame).to be_a(Teleinfo::Frame)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/teleinfo.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'teleinfo/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "teleinfo"
|
8
|
+
spec.version = Teleinfo::VERSION
|
9
|
+
spec.authors = ["Thomas Lecavelier"]
|
10
|
+
spec.email = ["thomas@followanalytics.com"]
|
11
|
+
spec.summary = %q{Parse data from french electric meter Téléinfo (from EDF).}
|
12
|
+
spec.description = %q{Parse data from french electric meter Téléinfo (from EDF). Deal with file or STDIN (anything responding to #readline, so NOT Pathname.)}
|
13
|
+
spec.homepage = "https://github.com/ook/teleinfo"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = ['teleinfo']
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "rubocop", '~> 0.28'
|
24
|
+
spec.add_development_dependency "guard-rspec", '~> 4.3'
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: teleinfo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Thomas Lecavelier
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.28'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.28'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.3'
|
69
|
+
description: 'Parse data from french electric meter Téléinfo (from EDF). Deal with
|
70
|
+
file or STDIN (anything responding to #readline, so NOT Pathname.)'
|
71
|
+
email:
|
72
|
+
- thomas@followanalytics.com
|
73
|
+
executables:
|
74
|
+
- teleinfo
|
75
|
+
extensions: []
|
76
|
+
extra_rdoc_files: []
|
77
|
+
files:
|
78
|
+
- ".gitignore"
|
79
|
+
- ".rspec"
|
80
|
+
- ".ruby-version"
|
81
|
+
- ".travis.yml"
|
82
|
+
- Gemfile
|
83
|
+
- Guardfile
|
84
|
+
- LICENSE.txt
|
85
|
+
- README.md
|
86
|
+
- Rakefile
|
87
|
+
- bin/guard
|
88
|
+
- bin/teleinfo
|
89
|
+
- lib/teleinfo.rb
|
90
|
+
- lib/teleinfo/frame.rb
|
91
|
+
- lib/teleinfo/version.rb
|
92
|
+
- spec/frame_spec.rb
|
93
|
+
- spec/raw/teleinfo_HCHP_anon
|
94
|
+
- spec/spec_helper.rb
|
95
|
+
- spec/teleinfo_spec.rb
|
96
|
+
- teleinfo.gemspec
|
97
|
+
homepage: https://github.com/ook/teleinfo
|
98
|
+
licenses:
|
99
|
+
- MIT
|
100
|
+
metadata: {}
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.2.2
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: Parse data from french electric meter Téléinfo (from EDF).
|
121
|
+
test_files:
|
122
|
+
- spec/frame_spec.rb
|
123
|
+
- spec/raw/teleinfo_HCHP_anon
|
124
|
+
- spec/spec_helper.rb
|
125
|
+
- spec/teleinfo_spec.rb
|