Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
758 commits
Select commit Hold shift + click to select a range
203cb89
fix(cisco dna spaces): activation response object format
stakach Feb 5, 2021
ebc4465
fix(cisco dna spaces): start streams once keys obtained
stakach Feb 5, 2021
589bb65
chore(shard.lock): bump versions
stakach Feb 5, 2021
f8fba63
feat(mulesoft/bookings): query the current MONTH instead of DAY, as i…
w-le Feb 7, 2021
20fe9c6
fix(cisco dna spaces): api_key use before setting
stakach Feb 8, 2021
4fa3d00
chore(shards.lock): bump versions
stakach Feb 8, 2021
52f0934
feat(cisco dna spaces): add monitoring api calls
stakach Feb 9, 2021
d4c52e2
feat: add whispir sms messaging service driver
stakach Feb 10, 2021
60fb7f6
feat: add support for mapping groups based on a name prefix
stakach Feb 10, 2021
85d46f3
chore(cisco dna spaces): crystal tool format
stakach Feb 10, 2021
9d2b2ef
chore(cisco dna spaces): allow status updates to be pushed manuallly
stakach Feb 10, 2021
6b0d4e2
fix(cisco dna spaces): status updates not exposed to public interface
stakach Feb 10, 2021
97fe007
fix(floorsense desks): parsing wrong model for floors request
stakach Feb 15, 2021
929fc0b
chore: update to latest version of action controller
stakach Feb 16, 2021
896ef4a
fix(mulesoft/bookings): clear schedule when changing polling period
w-le Feb 16, 2021
d7215d3
feat(cisco meraki): add user agent string for reporting
stakach Feb 16, 2021
b8c1b67
feat(location services): add mac address mapping webhook
stakach Feb 21, 2021
37a6feb
fix(place location service): check webhook input
stakach Feb 21, 2021
86dac26
feat(place staff api): add guest details and zones query
stakach Feb 23, 2021
ccaac99
Sharp display (#99)
pkheav Feb 23, 2021
b67a5d7
Lg lcd (#61)
pkheav Feb 23, 2021
5d26af6
Epson projector (#62)
dukenguyenxyz Feb 23, 2021
e5f200b
Panasonic display (#85)
pkheav Feb 23, 2021
7f3919a
Nec projector (#92)
pkheav Feb 23, 2021
788a0c4
feat(mdc): set targets to nil once stable (#74)
pkheav Feb 23, 2021
ce7ee7c
Fixes for place/bookings.cr for o365 (#67)
pkheav Feb 23, 2021
783a719
Global cache (#76)
pkheav Feb 23, 2021
3a346f3
QSC Audio DSP External Control (#96)
pkheav Feb 23, 2021
4bab761
Qsc audio dsp (#98)
pkheav Feb 23, 2021
49a4a9f
chore(mulesoft/bookings/spec): new response format
w-le Feb 24, 2021
a91829d
feat(mulesoft/bookings): shorten query window from current month to 2…
w-le Feb 24, 2021
66008be
fix(cisco dna spaces): monitoring API should use PUT
stakach Feb 25, 2021
f274715
feat(mulesoft/timetable): add unit of study code
w-le Feb 25, 2021
08eadf2
Merge branch 'master' of github.com:PlaceOS/drivers
w-le Feb 25, 2021
967cf94
fix(mulesoft/bookings): unitCode may be Null
w-le Feb 25, 2021
2677fd8
fix(mulesoft/bookings): use event.recurring_master_id instead of unit…
w-le Feb 25, 2021
bf705fd
feat(mulesoft/bookings): event.title is now UnitName not activityName
w-le Feb 26, 2021
e8b5a32
fix(mulesoft/bookings): model var assignemtn
w-le Feb 26, 2021
4de8beb
fic(mulesoft/bookings): event.title may be Null
w-le Feb 26, 2021
136d1e4
feat(floorsense): don't return unoccupied desk data
stakach Mar 1, 2021
be748ab
feat(vergesense): only return data where people at the location
stakach Mar 1, 2021
83ad218
feat(place desk bookings): include the booking type
stakach Mar 1, 2021
da3dcfa
feat(xy sense loc service): don't return desk unless occupied
stakach Mar 1, 2021
722b0a3
feat(place area management): move level_id to be a tag
stakach Mar 10, 2021
5de29c5
feat(floorsense): add booking requests
stakach Mar 10, 2021
8ec31dd
fix(floorsense models): user doesn't need to have an email
stakach Mar 10, 2021
ce7cfb8
fix(meraki dashboard): no longer treat times as relative
stakach Mar 10, 2021
1137dc5
feat(floorsense): add support for booking information
stakach Mar 15, 2021
3c0cb56
chore: crystal tool format fixes
stakach Mar 15, 2021
81862d9
Freespace driver (#119)
stakach Mar 17, 2021
66152e6
fix(floorsense desk): at_location expects an array
stakach Mar 17, 2021
0dff84c
chore(docs writing a driver): add pre_processor, cross system comms
stakach Mar 17, 2021
f87c586
feat(cisco meraki): return the nearest WAP if there are no observations
stakach Mar 19, 2021
134cad8
chore(freespace sensors): crystal tool format
stakach Mar 19, 2021
da81899
fix(cisco meraki): devices might not be assigned to a floor
stakach Mar 20, 2021
ed12661
feat(cisco meraki): sync_floorplan_sizes to return floor plan info
stakach Mar 20, 2021
cf5b2e2
feat(cisco meraki): add helpers for inspecting state
stakach Mar 23, 2021
4ba2e50
feat(placeos/staff-api): add update_guest()
w-le Mar 23, 2021
6a0f678
fix(cisco meraki): add spec for calculating wap locations
stakach Mar 23, 2021
b162a06
chore(shard.lock): bump versions
stakach Mar 25, 2021
f8e4bb8
chore(shards): bump driver version
stakach Mar 25, 2021
dfaea19
chore(shard.lock): bump driver version
stakach Mar 25, 2021
4a6b976
fix(placeos/staff-api): api endpoint of update guest
w-le Mar 25, 2021
4b240ec
Exterity avedia player (#109)
tob1k Mar 28, 2021
8edc2f3
Denon AV Receiver driver integration (#113)
polonski Mar 28, 2021
1d4a8f4
Biamp drivers (#110)
websymphony Mar 28, 2021
5e57c60
chore: crystal tool format
stakach Mar 28, 2021
d15d388
feat(biamp): used named commands to speed execution
stakach Mar 28, 2021
b4ff5b9
chore(spec-runner): update build to latest (#127)
MrYuion Mar 29, 2021
a360461
fix(cisco meraki): access points y location needs inverting
stakach Mar 29, 2021
a76c834
Revert "fix(cisco meraki): access points y location needs inverting"
stakach Mar 29, 2021
f4691f4
bump to crystal 1.0.0 (#125)
stakach Mar 30, 2021
2db8ff5
feat(mulesoft/bookings): reduce query window to +/- 1d not 1w
w-le Mar 30, 2021
0611a32
fix: LG and NEC driver compilation
stakach Apr 7, 2021
22d1071
feat: Lenel OpenAccess (#24)
kimburgess Apr 7, 2021
17c4cb2
chore(shard.lock): revert shard.lock to pre-v1 state (#133)
stakach Apr 7, 2021
e9c52b2
fix: revert shards to pre-v1
stakach Apr 7, 2021
804d056
feat(floorsense): add booking sync capabilities
stakach Apr 8, 2021
8c1ad81
fix(floorsense booking sync): don't raise if floor not found
stakach Apr 8, 2021
7a58967
build(docker-compose): remove the container_name key for redis (#134)
Apr 8, 2021
506e523
feat(floorsense desks): add user and rfid operations
stakach Apr 9, 2021
35a04f1
feat(floorsense): add support for user syncing
stakach Apr 9, 2021
9e66487
feat(floorsense): add a method for finding the user-id of a CSN
stakach Apr 9, 2021
a232f4e
fix(floorsense desks): expected event log ordering
stakach Apr 9, 2021
06509a8
fix(floorsense desks): sort by time, then id
stakach Apr 9, 2021
a3083fb
fix(floorsense desk): add support for event logs after param
stakach Apr 9, 2021
b34ea56
fix(floorsense sync): improved event log query
stakach Apr 9, 2021
ab0f551
Sony projector (#136)
pkheav Apr 9, 2021
0317441
chore(floorsense sync): add some additional debugging
stakach Apr 9, 2021
2a80a22
fix(floorsense sync): staff api query needs to be sending unix timest…
stakach Apr 9, 2021
65d0bab
fix(floorsense sync): compile error
stakach Apr 9, 2021
382a8e3
Sony LCD (#128)
tassja Apr 9, 2021
8438504
fix(floorsense sync): handle error where user wasn't in placeos
stakach Apr 9, 2021
633d8e4
fix(floorsense bookings sync): id 0 padding on correct side
stakach Apr 11, 2021
e21300d
fix(floorsense desk): booking requires cid
stakach Apr 11, 2021
b26fe9b
fix(floorsense sync): add a mutex around sync operations
stakach Apr 12, 2021
e6bf69a
feat(place staff api): add delete booking to staff API
stakach Apr 12, 2021
c2cea07
fix(place staff api): get booking was using post instead of get
stakach Apr 12, 2021
56b850e
fix(floorsense sync): ignore bookings that are not adhoc
stakach Apr 12, 2021
7040449
fix(floorsense sync): ignore bookings that are not adhoc
stakach Apr 12, 2021
3067ec1
fix(floorsense desks): set desk expiry time to ending time
stakach Apr 12, 2021
7dd7567
fix(place staff api): use patch for booking update
stakach Apr 12, 2021
26e83d3
fix(floorsense booking sync): book for now if start time in the past
stakach Apr 12, 2021
6408136
fix(floorsense sync): fix booking matching during sync
stakach Apr 12, 2021
94cd019
fix(floorsense sync): release bookings that are not in PlaceOS
stakach Apr 12, 2021
7b4010e
fix(floorsense sync): don't sync bookings to foor that ended in the past
stakach Apr 12, 2021
b4327c4
fix(floorsense sync): check ending slightly in the future
stakach Apr 12, 2021
43c3bda
feat(floorsense desks): check for errors in rfid create response
stakach Apr 12, 2021
596632a
fix(floorsense models): return true where there is no response data
stakach Apr 12, 2021
fec08d7
fix: extend NEC Display audio inputs (#137)
Apr 12, 2021
979e43e
feat(floorsense sync): ensure card numbers are always up to date
stakach Apr 13, 2021
2dc0b92
fix(floorsense sync): ensure bookings are started in floorsense
stakach Apr 13, 2021
e1fe4c6
fix(sony/projector): fix bug in rendering bytes (#138)
Apr 13, 2021
71831f0
fix(user group mapping): preference login_name over email
stakach Apr 14, 2021
0d66a75
feat(docs emails): guide to writing a driver that sends emails
stakach Apr 15, 2021
731ef0f
feat(meraki dashboard): split into a service and a logic
stakach Apr 15, 2021
6824aef
chore(shard.lock): bump calendar and office365 (#145)
w-le Apr 21, 2021
7a1ea99
fix(place/calendar): Dont add Teams link to every Event by default
w-le Apr 21, 2021
9e9671e
fix(place/calendar): o365 event timezones
w-le Apr 21, 2021
73ecc97
Revert "feat(mulesoft/bookings): reduce query window to +/- 1d not 1w"
w-le Apr 21, 2021
001bb60
feat(sony projector): add pj talk protocol (#141)
stakach Apr 23, 2021
a525b15
chore(floorsense): add booking sync overview
stakach Apr 23, 2021
df003db
build: bump to placeos-driver 5.0.8 (#135)
Apr 26, 2021
b0494e9
feat: add generic MQTT driver (#148)
stakach Apr 26, 2021
3471a0a
chore(place mqtt): add some additional logging
stakach Apr 26, 2021
dd337eb
feat(place mqtt): add ping to keep session alive
stakach Apr 26, 2021
5804389
chore(place mqt): log when a ping is being sent
stakach Apr 26, 2021
449a12c
chore(shard.lock): bump driver version
stakach Apr 26, 2021
fef0104
chore(shard.lock): bump driver version
stakach Apr 26, 2021
c8ee924
feat(mulesoft/bookings): polling interval is cron not minutes
w-le Apr 27, 2021
1525d25
ci(github/style): update style action
Apr 28, 2021
fb6e8d5
feat(place/calendar): support event.location
w-le Apr 28, 2021
b9d198a
fix(meraki locations): skip and warn about invalid locations
stakach Apr 28, 2021
fb28c54
fix(meraki locations): check for invalid locations
stakach Apr 28, 2021
84abf68
style: define base ameba config and fix lints across drivers (#149)
Apr 29, 2021
8fd3b82
fix(lenel): build regression (#152)
kimburgess Apr 30, 2021
7ca473b
feat(global_cache): conform to electrical relay interface (#154)
May 3, 2021
4bd0df0
feat: add echo360 driver (#155)
stakach May 3, 2021
95f2957
fix(echo360): incorrect path generation in macro
stakach May 3, 2021
76d69c6
feat(echo360): add some debugging output
stakach May 3, 2021
8fa1804
fix(echo360): next can be an empty string
stakach May 3, 2021
7ebfec6
feat(smtp): add setting to ignore cert validation (#161)
pkheav May 18, 2021
577f559
ci: move to github (#153)
May 21, 2021
2eb296c
feat(mulesoft): add Calendar exporter
w-le May 21, 2021
1456e06
fix: clear schedules on connect (#170)
stakach May 24, 2021
0d817df
lint(mulesoft): fix ameba lints (#171)
May 24, 2021
1db24d1
chore(shard.lock): bump driver and tasker versions
stakach May 26, 2021
db5556c
chore(shard.lock): bump versions
stakach May 26, 2021
4728a90
feat(cisco dna spaces): add BLE RSSI update message support
stakach May 27, 2021
74b961a
Cisco ise (#122)
pkheav May 27, 2021
ce2eaf4
chore(ise): run crystal tool format (#174)
pkheav May 27, 2021
33bfadb
feat(cisco dna spaces): add support for IoT telemetry
stakach May 28, 2021
e7bed28
feat(place calendar): enable proxy configuration from backoffice
stakach May 28, 2021
a27c702
feat(cisco dna spaces): updates to IoT telemetry payload
stakach May 31, 2021
86ad3e2
feat(placeos staff api): add checked in filter to bookings query
stakach May 31, 2021
a1417c5
chore(place staff-api): fix checked_in param
stakach Jun 2, 2021
24b1083
feat(floorsense desks): add websocket version
stakach Jun 3, 2021
3712e89
feat(floorsense sync): update for use with websocket
stakach Jun 3, 2021
72e9e0c
fix(floorsense desk websocket): add additional debugging
stakach Jun 3, 2021
1cc8676
chore(shard.yml): bump placeos driver version
stakach Jun 4, 2021
fb8e420
feat(floorsense): implement booking confirmation
stakach Jun 6, 2021
0247f67
chore(shards.lock): bump driver version
stakach Jun 6, 2021
91e42ec
fix(docker-compose): mount www folder
stakach Jun 6, 2021
2555bbb
chore(shard.lock): bump driver version
stakach Jun 7, 2021
eee59db
chore(shard.lock): bump connect proxy version
stakach Jun 7, 2021
2615e0b
chore(floorsense docs): include latest updates
stakach Jun 8, 2021
1fba71d
feat(AWS SNS): add SNS SMS service
stakach Jun 8, 2021
771c13b
fix(placeos/area_management): use duplication_factor in area counts. …
w-le Jun 8, 2021
129f1b2
fix(aws sns sms): sign request
stakach Jun 8, 2021
36d2f92
fix(mulesoft/bookings): query_bookings is private
w-le Jun 8, 2021
2cac41f
chore(shard.lock): bump driver version
stakach Jun 8, 2021
c284645
chore(shard.lock): bump drivers version
stakach Jun 9, 2021
b978e00
feat(placeos staff-api): add additional queries
stakach Jun 9, 2021
cc07d18
core(shard.lock): bump versions
stakach Jun 9, 2021
9d914f7
feat(spec-runner): seperate driver spec runner (#179)
tassja Jun 11, 2021
872a61c
chore(shard.lock): bump versions
stakach Jun 15, 2021
9516895
chore(shard.lock): bump version of placeos-driver to 5.3.12
w-le Jun 16, 2021
297d6b0
fix(nexia): re-implement driver (#183)
kimburgess Jun 16, 2021
2ae6281
chore(shard.lock): bump driver version
stakach Jun 17, 2021
de9ae0b
feat: implement harness script to interface with the spec runner (#181)
Jun 17, 2021
ddb5772
chore(palce calendar): update to allow for longer wait times
stakach Jun 22, 2021
b07e7b0
chore(shard.lock): bump versions
stakach Jun 22, 2021
22d435b
feat(place/visitor_mailer): add host mailbox to QR data (#187)
w-le Jun 24, 2021
29890fd
Gallagher rest api (#156)
stakach Jun 28, 2021
81036fa
fix: broken require (#182)
kimburgess Jun 28, 2021
c603354
style: fix ameba lints
caspiano Jun 28, 2021
d2ff55e
chore(shard.lock): bump driver (#188)
Jun 29, 2021
2766864
fix(palce staff-api): ensure host header set on authentication
stakach Jun 30, 2021
45d6429
Extron (#142)
kimburgess Jul 1, 2021
5b642a5
test: parallel spec runner (#194)
Jul 1, 2021
02e5bba
docs(harness): better messages (#195)
Jul 1, 2021
10c7d35
chore(shard.lock): bump driver version
stakach Jul 2, 2021
8253745
feat(lenel): refactor to use built in before_request callback
tassja Jul 6, 2021
d46be13
chore(shard.lock): bump version
stakach Jul 7, 2021
fed0577
feat(build.cr): move to drivers folder
stakach Jul 7, 2021
ba49ab6
chore: add a sym link to src folder
stakach Jul 7, 2021
ec517fe
feat: migrate to standalone drivers
stakach Jul 7, 2021
196c340
chore(spec): mark mock classes
stakach Jul 7, 2021
e189544
chore(docs): don't include mocks in crystal docs gen
stakach Jul 7, 2021
665ac44
feat: migrate specs to using `require "placeos-driver/spec"`
stakach Jul 7, 2021
fd08948
fix(cisco meraki): drivers compilation failure
stakach Jul 8, 2021
ca4f2d7
feat(lenel/openaccess): add more funcs; make badge response fields op…
w-le Jul 9, 2021
d44e1f9
feat(meraki locations): add min variance override
stakach Jul 9, 2021
1936d43
feat(cisco meraki): add regex filter on OS when searching
stakach Jul 9, 2021
32c8a16
feat(lenel open access): apply recommended changes
stakach Jul 9, 2021
11cc9b2
chore(shard.lock): bump place calendar version
stakach Jul 9, 2021
a126eae
fix(meraki/locations): also override minimum variance when new data i…
w-le Jul 9, 2021
803329a
chore(shard.lock): bump driver version
stakach Jul 9, 2021
13aecfe
ci: fix exit code of `report` (#204)
Jul 12, 2021
b7b0aab
fix(officernd): refactor request functions (#203)
tassja Jul 13, 2021
f6af1f3
feat(gallagher): fix version comparison
stakach Jul 13, 2021
be8f297
feat(gallagher): log outgoing requests to help with debugging
stakach Jul 13, 2021
0fac857
feat(place staff api): add systems and building details queries
stakach Jul 15, 2021
bd142cb
feat(place bookings): add locatable interface
stakach Jul 15, 2021
fa3bdf6
feat(place location services): add bookings discovery
stakach Jul 16, 2021
85f45e4
chore(shard.lock): bump driver version
stakach Jul 16, 2021
91918ab
feat(place location service): simplify map-reduce
stakach Jul 16, 2021
375e487
feat(location services): add methods for querying sensor data
stakach Jul 19, 2021
ea2cf98
ci: disable fail fast (#206)
Jul 19, 2021
f421baf
chore(shard.lock): bump driver version
stakach Jul 19, 2021
3f43876
feat(place staff api): add metadata writing helper
stakach Jul 19, 2021
e6f40cf
feat(place area management): add support for sensor summaries
stakach Jul 20, 2021
5883b47
fix(place area management): sensor details may not exist for a level
stakach Jul 20, 2021
4f45e78
feat(steinel hpd2): implement sensor interface
stakach Jul 21, 2021
29f9c8d
fix(place area management): location might not exist
stakach Jul 21, 2021
1e776e3
fix(palce staff api): write_metadata description is required
stakach Jul 21, 2021
6d586fd
feat(sensors): update to latest sensor interface
stakach Jul 21, 2021
b8864d8
fix(steinel hpd2): sensor search matching types
stakach Jul 21, 2021
723a208
feat(xovis sensor): implement sensor interface
stakach Jul 21, 2021
32730f7
fix(xovis sensor): allow queries to be configurable
stakach Jul 22, 2021
034d71b
fix(place area management): fix incorrect sensor metadata key
stakach Jul 22, 2021
4f8c68d
fix(area management): sensors are stored on each levels zone
stakach Jul 22, 2021
be4eedd
fix(place area management): ensure sensor level is configured
stakach Jul 22, 2021
84a8727
fix(vergesense): Type of Space.People.coordinates (#207)
w-le Jul 22, 2021
088c425
fix(place area management): fix sensor status
stakach Jul 22, 2021
70d48d3
Vergesense: space_ref_id can be null (#208)
w-le Jul 22, 2021
563348d
feat(place area management): unify metadata collection
stakach Jul 22, 2021
81e1a77
fix(place area management): ensure level data is synced
stakach Jul 22, 2021
282cb9d
fix(place area management): generate area summaries if only sensors
stakach Jul 22, 2021
2b62475
feat(floorsense): add support for locker operations
stakach Jul 27, 2021
9fcdeea
feat(floorsense): simplify locker control
stakach Jul 27, 2021
daed11a
feat(xy sense location service): allow for manual sync
stakach Jul 28, 2021
14b148a
fix(xy sense location services): space names can be null
stakach Jul 28, 2021
2b342e4
fix(staff-api): query events must GET not PATCH
w-le Aug 2, 2021
890ccb7
fix(gallagher): some card type fields are not required
stakach Aug 2, 2021
8fd51e6
chore(place area management): fix ameba warning
stakach Aug 2, 2021
7ed1122
feat(ashrae bacnet): initial work on generic BACnet driver
stakach Aug 2, 2021
64da275
feat(microsoft findme): add additional logging output
stakach Aug 3, 2021
7d3d4f3
Svsi (#166)
pkheav Aug 3, 2021
25e6640
Merge branch 'master' into planar-video-wall
caspiano Aug 3, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .ameba.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Excluded:
- repositories/**/*.cr

# NOTE: These should all be reviewed on an individual basis to see if their
# complexity can be reasonably reduced.
Metrics/CyclomaticComplexity:
Description: Disallows methods with a cyclomatic complexity higher than `MaxComplexity`
MaxComplexity: 10
Excluded:
- drivers/helvar/net.cr
- drivers/mulesoft/booking_api.cr
- drivers/samsung/displays/mdc_protocol.cr
- drivers/cisco/dna_spaces.cr
- drivers/cisco/meraki/dashboard.cr
- drivers/cisco/switch/snooping_catalyst.cr
- drivers/gantner/relaxx/protocol_json.cr
- drivers/place/bookings.cr
- drivers/place/area_management.cr
- drivers/place/smtp.cr
- drivers/hitachi/projector/cp_tw_series_basic.cr
- drivers/panasonic/projector/nt_control.cr
- drivers/lumens/dc193.cr
Enabled: false
Severity: Convention

Lint/UselessAssign:
Description: Disallows useless variable assignments
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Warning

Style/VerboseBlock:
Description: Identifies usage of collapsible single expression blocks.
ExcludeCallsWithBlock: false
ExcludeMultipleLineBlocks: true
ExcludeOperators: false
ExcludePrefixOperators: false
ExcludeSetters: true
Enabled: false
Severity: Convention

Style/VariableNames:
Description: Enforces variable names to be in underscored case
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Convention

# NOTE: These appear to be triggered by assignment in case expressions, could be an ameba bug
Lint/ShadowingOuterLocalVar:
Description: Disallows the usage of the same name as outer local variables for block
or proc arguments.
Excluded:
- drivers/cisco/switch/snooping_catalyst.cr
Enabled: true
Severity: Warning
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Bug report
about: Create a report to help us improve
title: 'Bug: A concise description of the behaviour'
labels: bug
assignees: ''

---

**Describe the bug**

A clear and concise description of what the bug is.

**To Reproduce**

Steps to reproduce the behaviour or a minimal code snippet that demonstrates the behaviour.

**Expected behaviour**

A clear and concise description of what you expected to happen.

**Screenshots or a paste of terminal output**

If applicable, add screenshots to help explain your problem.

**Versions (please complete the following information):**

- Output of `$ crystal version`
- Driver version [e.g. 3.x]

**Additional context**

Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Driver Migration
about: Migrate existing Ruby Engine Driver to Crystal
title: 'Driver Migration: Migrate existing Ruby driver'
labels: driver
assignees: ''

---

**Driver to be Migrated**

Information about the driver to be migrated.

**Link to Existing Driver**

Link to existing Driver on Ruby Drivers Repo.

**Additional context**

Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Driver Request
about: Request a new driver to be created
title: 'Driver Request: Information required to create a new driver'
labels: driver
assignees: ''

---

**Driver Type**

Logic/Device/SSH/Websocket

**Manufacturer**

Manufacturer of device, software or service

**Model/Service**

Model or Service

**Link to or Attach Device API or Protocol**

If applicable, add screenshots to help explain your problem.

**Describe any desired functionality**

- Control all aspects of device

**Additional context**

Add any other context about the driver request here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'RFC: Concise description of desired feature'
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**

A clear and concise description of any alternative solutions or features you've considered.

**Additional context**

Add any other context or screenshots about the feature request here.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: "0 6 * * 1"

jobs:
style:
name: "Style"
runs-on: ubuntu-latest
container: crystallang/crystal
steps:
- uses: actions/checkout@v2
- name: Format
run: crystal tool format --check
- name: Lint
uses: crystal-ameba/github-action@v0.2.12
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

subset-report:
name: "Subset Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- 1.0.0
include:
- stable: false
crystal: nightly
steps:
- id: changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- uses: actions/checkout@v2
- name: Cache shards
uses: actions/cache@v2
with:
path: lib
key: ${{ hashFiles('shard.lock') }}
- name: Driver Report
# Skip subset report if dependencies have changed
if: ${{ !contains(steps.changes.outputs.files, 'shard.yml') && !contains(steps.changes.outputs.files, 'shard.lock') }}
run: ./harness report ${{ steps.changes.outputs.files }}
env:
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log

full-report:
name: "Full Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
needs: subset-report
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- 1.0.0
include:
- stable: false
crystal: nightly
steps:
- uses: actions/checkout@v2
- name: Cache shards
uses: actions/cache@v2
with:
path: lib
key: ${{ hashFiles('shard.lock') }}
- name: Driver Report
run: ./harness report
env:
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log
12 changes: 9 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
doc
lib
*.dwarf
*.rdb
.DS_Store
.crystal
.shards
app
*.dwarf
bin
doc
docs
lib
.logs
repositories/*
File renamed without changes.
1 change: 0 additions & 1 deletion .travis.yml

This file was deleted.

16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "gdb",
"request": "launch",
"target": "./bin/test-harness",
"cwd": "${workspaceRoot}",
"preLaunchTask": "Compile",
"setupCommands": [
{ "text": "-gdb-set follow-fork-mode child" }
]
}
]
}
10 changes: 10 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"command": "shards build --debug drivers",
"type": "shell"
}
]
}
63 changes: 37 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,52 @@
# Spider-Gazelle Application Template
# PlaceOS Drivers

[![Build Status](https://travis-ci.org/spider-gazelle/spider-gazelle.svg?branch=master)](https://travis-ci.org/spider-gazelle/spider-gazelle)
[![CI](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml/badge.svg)](https://github.com/PlaceOS/drivers/actions/workflows/ci.yml)

Clone this repository to start building your own spider-gazelle based application
Manage and test [PlaceOS](https://place.technology) drivers.

## Documentation
## Development

* [Action Controller](https://github.com/spider-gazelle/action-controller) base class for building [Controllers](http://guides.rubyonrails.org/action_controller_overview.html)
* [Active Model](https://github.com/spider-gazelle/active-model) base class for building [ORMs](https://en.wikipedia.org/wiki/Object-relational_mapping)
* [Habitat](https://github.com/luckyframework/habitat) configuration and settings for Crystal projects
* [router.cr](https://github.com/tbrand/router.cr) base request handling
* [Radix](https://github.com/luislavena/radix) Radix Tree implementation for request routing
* [HTTP::Server](https://crystal-lang.org/api/latest/HTTP/Server.html) built-in Crystal Lang HTTP server
* Request
* Response
* Cookies
* Headers
* Params etc
### `harness`

`harness` is a helper for easing development of PlaceOS Drivers.

Spider-Gazelle builds on the amazing performance of **router.cr** [here](https://github.com/tbrand/which_is_the_fastest).:rocket:
```
Usage: ./harness [-h|--help] [command]

Helper script for interfacing with the PlaceOS Driver spec runner

## Testing
Command:
report check all drivers' compilation status
up starts the harness
down stops the harness
format formats driver code
help display this message
```

`crystal spec`
To spin up the test harness, clone the repository and run...

* to run in development mode `crystal ./src/app.cr`
```shell-session
$ ./harness up
```

## Compiling
Point a browser to [localhost:8085](http://localhost:8085), and you're good to go.

`crystal build ./src/app.cr`
When the environment is not in use, remember to run...

### Deploying
```shell-session
$ ./harness down
```

Once compiled you are left with a binary `./app`
Before committing, please run...

* for help `./app --help`
* viewing routes `./app --routes`
* run on a different port or host `./app -h 0.0.0.0 -p 80`
```shell-session
$ ./harness format
```

## Contributing

1. [Fork it](https://github.com/PlaceOS/drivers/fork)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
Loading