Skip to content

Commit

Permalink
reorganized elm source, fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
jfcloutier committed Feb 11, 2016
1 parent ebb7680 commit 6148bf4
Show file tree
Hide file tree
Showing 113 changed files with 16,758 additions and 16 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*.old
*.elmi
*.elmo
*.attempt
# Generate on crash by the VM
erl_crash.dump

Expand Down
4 changes: 2 additions & 2 deletions brunch-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ exports.config = {
// Dependencies and current project directories to watch
watched: ["deps/phoenix/web/static",
"deps/phoenix_html/web/static",
"web/static", "test/static", "web/elm"],
"web/static", "test/static", "web/elm", "web/elm/src"],

// Where to compile files to
public: "priv/static"
Expand All @@ -50,7 +50,7 @@ exports.config = {
plugins: {
elmBrunch: {
elmFolder: 'web/elm',
mainModules: ['RobotDashboard.elm'],
mainModules: ['src/RobotDashboard.elm'],
outputFolder: '../static/vendor'
},
babel: {
Expand Down
4 changes: 2 additions & 2 deletions config/dev.exs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ use Mix.Config
# watchers to your application. For example, we use it
# with brunch.io to recompile .js and .css sources.
config :ev3, Ev3.Endpoint,
url: [host: "192.168.1.105"],
url: [host: "192.168.1.100"],
http: [port: 4000],
debug_errors: true,
code_reloader: true,
cache_static_lookup: false,
watchers: []
# watchers: [node: ["node_modules/brunch/bin/brunch", "watch", "--stdin"]]
# watchers: [node: ["node_modules/brunch/bin/brunch", "watch", "--stdin"]]

# Watch static and templates for browser reloading.
config :ev3, Ev3.Endpoint,
Expand Down
16 changes: 11 additions & 5 deletions lib/ev3/mind/actuation/actuator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,10 @@ defmodule Ev3.Actuator do
&(MotorSpec.matches?(motor_spec, &1)))
if motor == nil do
Logger.warn("Motor not found matching #{inspect motor_spec} in #{inspect all_motors}")
end
Map.put(acc, motor_spec.name, update_props(motor, motor_spec.props))
acc
else
Map.put(acc, motor_spec.name, update_props(motor, motor_spec.props))
end
end)
found
end
Expand All @@ -98,8 +100,10 @@ defmodule Ev3.Actuator do
&(LEDSpec.matches?(led_spec, &1)))
if led == nil do
Logger.warn("LED not found matching #{inspect led_spec} in #{inspect all_leds}")
end
Map.put(acc, led_spec.name, update_props(led, led_spec.props))
acc
else
Map.put(acc, led_spec.name, update_props(led, led_spec.props))
end
end)
found
end
Expand All @@ -114,8 +118,10 @@ defmodule Ev3.Actuator do
&(SoundSpec.matches?(sound_spec, &1)))
if sound_player == nil do
Logger.warn("Sound player not found matching #{inspect sound_spec} in #{inspect all_sound_players}")
acc
else
Map.put(acc, sound_spec.name, update_props(sound_player, sound_spec.props))
end
Map.put(acc, sound_spec.name, update_props(sound_player, sound_spec.props))
end)
found
end
Expand Down
2 changes: 1 addition & 1 deletion lib/ev3/mind/perception/perception.ex
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ defmodule Ev3.Perception do
end
end

@doc "Where's the bacon?"
@doc "Where's the b(e)acon?"
def scent() do
fn
(%Percept{about: {:beacon_distance, 1}, value: value}, _memories) ->
Expand Down
5 changes: 5 additions & 0 deletions lib/ev3/utils.ex
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ defmodule Ev3.Utils do
((mega * 1_000_000) + secs) * 1000 + div(micro, 1000)
end

@doc "Supported time units"
def units() do
[:msecs, :secs, :mins, :hours]
end

@doc "Convert a duration to msecs"
def convert_to_msecs(nil), do: nil
def convert_to_msecs({count, unit}) do
Expand Down
4 changes: 2 additions & 2 deletions web/elm/elm-package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"repository": "https://github.com/user/project.git",
"license": "BSD3",
"source-directories": [
"."
".", "src"
],
"exposed-modules": [],
"dependencies": {
Expand All @@ -16,4 +16,4 @@
"lukewestby/elm-string-interpolate": "1.0.0 <= v < 2.0.0"
},
"elm-version": "0.16.0 <= v < 0.17.0"
}
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ view address model =
, table [classList [("table", True), ("table-bordered", True)]]
[
tbody []
(List.map (viewPercept address model.percepts) (Dict.keys model.percepts |> List.sort))
(List.map
(viewPercept address model.percepts)
(Dict.keys model.percepts |> List.sort))
]
]

5 changes: 2 additions & 3 deletions web/elm/RobotConfig.elm → web/elm/src/RobotConfig.elm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ module RobotConfig where

hostname: String
hostname =
-- "localhost"
"192.168.1.105"
-- "192.168.1.147"
-- "localhost"
"192.168.1.100"
-- Also update /mix.exs and /config/dev.exs
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
14 changes: 14 additions & 0 deletions web/elm/src/elm-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"version": "1.0.0",
"summary": "helpful summary of your project, less than 80 characters",
"repository": "https://github.com/user/project.git",
"license": "BSD3",
"source-directories": [
"."
],
"exposed-modules": [],
"dependencies": {
"elm-lang/core": "3.0.0 <= v < 4.0.0"
},
"elm-version": "0.16.0 <= v < 0.17.0"
}
Binary file not shown.
3 changes: 3 additions & 0 deletions web/elm/src/elm-stuff/exact-dependencies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"elm-lang/core": "3.0.0"
}
156 changes: 156 additions & 0 deletions web/elm/src/elm-stuff/packages/elm-lang/core/3.0.0/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
{
"parser": "babel-eslint", // https://github.com/babel/babel-eslint
"plugins": [],
"env": { // http://eslint.org/docs/user-guide/configuring.html#specifying-environments
"browser": true, // browser global variables
"node": true // Node.js global variables and Node.js-specific rules
},
"ecmaFeatures": {
"arrowFunctions": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": false,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": false,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"spread": true,
"superInFunctions": true,
"templateStrings": true,
},
"rules": {
/**
* Strict mode
*/
// babel inserts "use strict"; for us
"strict": [2, "never"], // http://eslint.org/docs/rules/strict

/**
* Variables
*/
"no-shadow": 2, // http://eslint.org/docs/rules/no-shadow
"no-shadow-restricted-names": 2, // http://eslint.org/docs/rules/no-shadow-restricted-names
"no-unused-vars": [2, { // http://eslint.org/docs/rules/no-unused-vars
"vars": "local",
"args": "after-used"
}],
"no-use-before-define": 2, // http://eslint.org/docs/rules/no-use-before-define

/**
* Possible errors
*/
"no-cond-assign": [2, "always"], // http://eslint.org/docs/rules/no-cond-assign
"no-console": 1, // http://eslint.org/docs/rules/no-console
"no-debugger": 1, // http://eslint.org/docs/rules/no-debugger
"no-alert": 1, // http://eslint.org/docs/rules/no-alert
"no-constant-condition": 1, // http://eslint.org/docs/rules/no-constant-condition
"no-dupe-keys": 2, // http://eslint.org/docs/rules/no-dupe-keys
"no-duplicate-case": 2, // http://eslint.org/docs/rules/no-duplicate-case
"no-empty": 2, // http://eslint.org/docs/rules/no-empty
"no-ex-assign": 2, // http://eslint.org/docs/rules/no-ex-assign
"no-extra-boolean-cast": 0, // http://eslint.org/docs/rules/no-extra-boolean-cast
"no-extra-semi": 2, // http://eslint.org/docs/rules/no-extra-semi
"no-func-assign": 2, // http://eslint.org/docs/rules/no-func-assign
"no-inner-declarations": 2, // http://eslint.org/docs/rules/no-inner-declarations
"no-invalid-regexp": 2, // http://eslint.org/docs/rules/no-invalid-regexp
"no-irregular-whitespace": 2, // http://eslint.org/docs/rules/no-irregular-whitespace
"no-obj-calls": 2, // http://eslint.org/docs/rules/no-obj-calls
"no-sparse-arrays": 2, // http://eslint.org/docs/rules/no-sparse-arrays
"no-unreachable": 2, // http://eslint.org/docs/rules/no-unreachable
"use-isnan": 2, // http://eslint.org/docs/rules/use-isnan
"block-scoped-var": 2, // http://eslint.org/docs/rules/block-scoped-var

/**
* Best practices
*/
"consistent-return": 2, // http://eslint.org/docs/rules/consistent-return
"curly": [2, "multi-line"], // http://eslint.org/docs/rules/curly
"default-case": 2, // http://eslint.org/docs/rules/default-case
"dot-notation": [2, { // http://eslint.org/docs/rules/dot-notation
"allowKeywords": true
}],
"eqeqeq": 2, // http://eslint.org/docs/rules/eqeqeq
"max-len": [2, 100, 4],
"guard-for-in": 2, // http://eslint.org/docs/rules/guard-for-in
"no-caller": 2, // http://eslint.org/docs/rules/no-caller
"no-else-return": 2, // http://eslint.org/docs/rules/no-else-return
"no-eq-null": 2, // http://eslint.org/docs/rules/no-eq-null
"no-eval": 2, // http://eslint.org/docs/rules/no-eval
"no-extend-native": 2, // http://eslint.org/docs/rules/no-extend-native
"no-extra-bind": 2, // http://eslint.org/docs/rules/no-extra-bind
"no-fallthrough": 2, // http://eslint.org/docs/rules/no-fallthrough
"no-floating-decimal": 2, // http://eslint.org/docs/rules/no-floating-decimal
"no-implied-eval": 2, // http://eslint.org/docs/rules/no-implied-eval
"no-lone-blocks": 2, // http://eslint.org/docs/rules/no-lone-blocks
"no-loop-func": 2, // http://eslint.org/docs/rules/no-loop-func
"no-multi-str": 2, // http://eslint.org/docs/rules/no-multi-str
"no-native-reassign": 2, // http://eslint.org/docs/rules/no-native-reassign
"no-new": 2, // http://eslint.org/docs/rules/no-new
"no-new-func": 2, // http://eslint.org/docs/rules/no-new-func
"no-new-wrappers": 2, // http://eslint.org/docs/rules/no-new-wrappers
"no-octal": 2, // http://eslint.org/docs/rules/no-octal
"no-octal-escape": 2, // http://eslint.org/docs/rules/no-octal-escape
"no-param-reassign": 2, // http://eslint.org/docs/rules/no-param-reassign
"no-proto": 2, // http://eslint.org/docs/rules/no-proto
"no-redeclare": 2, // http://eslint.org/docs/rules/no-redeclare
"no-return-assign": 2, // http://eslint.org/docs/rules/no-return-assign
"no-script-url": 2, // http://eslint.org/docs/rules/no-script-url
"no-self-compare": 2, // http://eslint.org/docs/rules/no-self-compare
"no-sequences": 2, // http://eslint.org/docs/rules/no-sequences
"no-throw-literal": 2, // http://eslint.org/docs/rules/no-throw-literal
"no-with": 2, // http://eslint.org/docs/rules/no-with
"radix": 2, // http://eslint.org/docs/rules/radix
"wrap-iife": [2, "any"], // http://eslint.org/docs/rules/wrap-iife
"yoda": 2, // http://eslint.org/docs/rules/yoda

/**
* Style
*/
"indent": [2, "tab"], // http://eslint.org/docs/rules/indent
"quotes": [
2, "single", "avoid-escape" // http://eslint.org/docs/rules/quotes
],
"camelcase": [2, { // http://eslint.org/docs/rules/camelcase
"properties": "never"
}],
"comma-spacing": [2, { // http://eslint.org/docs/rules/comma-spacing
"before": false,
"after": true
}],
"comma-style": [2, "last"], // http://eslint.org/docs/rules/comma-style
"eol-last": 2, // http://eslint.org/docs/rules/eol-last
"func-names": 1, // http://eslint.org/docs/rules/func-names
"key-spacing": [2, { // http://eslint.org/docs/rules/key-spacing
"beforeColon": false,
"afterColon": true
}],
"no-multiple-empty-lines": [2, { // http://eslint.org/docs/rules/no-multiple-empty-lines
"max": 2
}],
"no-nested-ternary": 2, // http://eslint.org/docs/rules/no-nested-ternary
"no-new-object": 2, // http://eslint.org/docs/rules/no-new-object
"no-spaced-func": 2, // http://eslint.org/docs/rules/no-spaced-func
"no-trailing-spaces": 2, // http://eslint.org/docs/rules/no-trailing-spaces
"no-extra-parens": [2, "functions"], // http://eslint.org/docs/rules/no-extra-parens
"no-underscore-dangle": 0, // http://eslint.org/docs/rules/no-underscore-dangle
"padded-blocks": [2, "never"], // http://eslint.org/docs/rules/padded-blocks
"semi": [2, "always"], // http://eslint.org/docs/rules/semi
"semi-spacing": [2, { // http://eslint.org/docs/rules/semi-spacing
"before": false,
"after": true
}],
"space-after-keywords": 2, // http://eslint.org/docs/rules/space-after-keywords
"space-before-blocks": 2, // http://eslint.org/docs/rules/space-before-blocks
"space-before-function-paren": [2, "never"], // http://eslint.org/docs/rules/space-before-function-paren
"space-infix-ops": 2, // http://eslint.org/docs/rules/space-infix-ops
"space-return-throw-case": 2, // http://eslint.org/docs/rules/space-return-throw-case
"spaced-comment": [2, "always", {// http://eslint.org/docs/rules/spaced-comment
"exceptions": ["-", "+"],
"markers": ["=", "!"] // space here to support sprockets directives
}]
}
}
2 changes: 2 additions & 0 deletions web/elm/src/elm-stuff/packages/elm-lang/core/3.0.0/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
elm-stuff
tests/test.js
26 changes: 26 additions & 0 deletions web/elm/src/elm-stuff/packages/elm-lang/core/3.0.0/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
language: haskell
install:
- cabal sandbox init
-
- git clone https://github.com/elm-lang/elm-compiler.git
- cd elm-compiler
- cabal sandbox init --sandbox ..
- cabal install
- cd ..
-
- git clone https://github.com/elm-lang/elm-package.git
- cd elm-package
- cabal sandbox init --sandbox ..
- cabal install
- cd ..
-
- git clone https://github.com/elm-lang/elm-make.git
- cd elm-make
- cabal sandbox init --sandbox ..
- cabal install
- cd ..

before_script:
- export PATH=$PWD/bin:$PATH
script:
- tests/run-test.sh
41 changes: 41 additions & 0 deletions web/elm/src/elm-stuff/packages/elm-lang/core/3.0.0/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Contributing to the core libraries

Thanks helping with the development of Elm! This document describes the basic
standards for opening pull requests and making the review process as smooth as
possible.

## Ground rules

* Always make pull requests minimal. If it can be split up, it should be split up.
* Use style consistent with the file you are modifying.
* Use descriptive titles for PRs
* Provide all the necessary context for evaluation in the PR.
If there are relevant issues or examples or discussions, add them.
If things can be summarized, summarize them. The easiest PRs are ones
that already address the reviewers questions and concerns.

## Documentation Fixes

If you want to fix docs, just open a PR. This is super helpful!

## Bug Fixes

If you find an issue or see one you want to work on, go for it!

The best strategy is often to dive in. Asking for directions usually
does not work. If someone knew the specifics and knew how how to fix
it, it is likely they would have already sent the PR themselves!

Also, be sure you are testing.

## Adding New Functions

We are fairly conservative about adding new functions to core libraries.
If you want to augment the `List` or `Array` library, we recommend creating
small packages called `list-extras` or `array-extras` that have all the
features you want.

Long term, we will set up a process to review `*-extras` packages to move
stuff into core. By going through packages, it will be much easier to assess
whether a function is pleasant and useful in practice before committing to it
in the core libraries.
Loading

0 comments on commit 6148bf4

Please sign in to comment.