Skip to content

Instantly share code, notes, and snippets.

@RubenSandwich
Last active January 18, 2017 16:44
Show Gist options
  • Save RubenSandwich/a8da66cfc87bfb982a1f1d30f129e255 to your computer and use it in GitHub Desktop.
Save RubenSandwich/a8da66cfc87bfb982a1f1d30f129e255 to your computer and use it in GitHub Desktop.

Revisions

  1. RubenSandwich revised this gist Jan 18, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -156,7 +156,7 @@ Great now I have something how do I change it? Remember you do that with the com

    When updating a record you can change in four different ways:

    **Add: +=** Add another value to an attribute. So if you had an attribute on an attribute before, you now have two values on it.
    **Add: +=** Add another value to an attribute. So if you had a value on an attribute before, you now have two values on it.

    **Set: :=** Update a value on an attribute.

  2. RubenSandwich revised this gist Jan 17, 2017. No changes.
  3. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    Welcome to Eve.

    We are going to be going through this document as a group. But if you feel like I'm going too slow, feel free to zip ahead. After this short intro to Eve concepts their will be some exercise problems to help reinforce learning, those will not be done as a groups unless you like the person next to you. (I never do.)
    We are going to be going through this document as a group. But if you feel like I'm going too slow, feel free to zip ahead. After this short intro to the basic Eve concepts there will be some exercise problems, those can be done as an individual or as a group.

    If you ever have questions about one of the concepts in here feel free to raise your hand and ask. The one thing I ask about questions is that wait until I introduce a concept before asking questions about it. If I haven't introduced a concept your curious about then please wait till the workshop problem time begins and call me over or find me after the talk.

  4. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    Welcome to Eve.

    We are going to be going through this document as a group. But if you feel like I'm going to slow, feel free to zip ahead. After this short intro to Eve concepts their will be some exercise problems to help reinforce learning, those will not be done as a groups unless you like the person next to you. (I never do.)
    We are going to be going through this document as a group. But if you feel like I'm going too slow, feel free to zip ahead. After this short intro to Eve concepts their will be some exercise problems to help reinforce learning, those will not be done as a groups unless you like the person next to you. (I never do.)

    If you ever have questions about one of the concepts in here feel free to raise your hand and ask. The one thing I ask about questions is that wait until I introduce a concept before asking questions about it. If I haven't introduced a concept your curious about then please wait till the workshop problem time begins and call me over or find me after the talk.

  5. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -58,7 +58,7 @@ commit @browser
    ~~~

    Which is a block that commits to the browser database a record with a tag of div and an attribute and value pair of text and "Hello World!".
    The div tag in the browser db has a special meaning. That meaning is: "render this as a div". Feel free to change the text of it.
    The div tag in the browser db has a special meaning. That meaning is: "render this as an HTML div". Feel free to change the text of it.


    ### Help I broke something!
  6. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -217,4 +217,4 @@ bind @browser
    ## Exercise Problems

    You now know enough Eve to solve some problems:
    [Problems](https://goo.gl/chFzRw)
    [Problems](https://goo.gl/dNniCN)
  7. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    Welcome to Eve.

    We are going to be going through this document as a group. But if you feel like I'm going to slow, feel free to zip ahead. After this short intro to Eve concepts their will be some workshop problems to help reinforce learning, those will not be done as a groups unless you like the person next to you. (I never do.)
    We are going to be going through this document as a group. But if you feel like I'm going to slow, feel free to zip ahead. After this short intro to Eve concepts their will be some exercise problems to help reinforce learning, those will not be done as a groups unless you like the person next to you. (I never do.)

    If you ever have questions about one of the concepts in here feel free to raise your hand and ask. The one thing I ask about questions is that wait until I introduce a concept before asking questions about it. If I haven't introduced a concept your curious about then please wait till the workshop problem time begins and call me over or find me after the talk.

    @@ -214,3 +214,7 @@ bind @browser
    [#div text: seconds]
    ```

    ## Exercise Problems

    You now know enough Eve to solve some problems:
    [Problems](https://goo.gl/chFzRw)
  8. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -196,7 +196,7 @@ commit @example
    Remember that binding defines a relationship between records.
    How does this differ from commit?

    A commit will happen every time a block is called and it can run, a bind will only update if the value has changed. For an example of this compare and contrast the two blocks below.
    A commit will happen every time a block can run, a bind will only update if the value has changed. For an example of this compare and contrast the two blocks below.

    **Commit**
    ```eve disabled
  9. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -172,22 +172,22 @@ bind @browser
    [#div text:name]
    ```

    Behold. What you believed to be Ruben is now Jim.
    Behold. What you believed to be Ruben is now Jim!

    ```eve disabled
    search @example
    me = [#me]
    commit @browser
    commit @example
    me.name := "Jim"
    ```

    And you believed to be Jim now has two names:
    And who you believed to be Jim now has two names!

    ```eve disabled
    search @example
    person = [#me]
    person.name = "Jim"
    commit @browser
    commit @example
    person.name += "Tim"
    ```

  10. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -168,7 +168,7 @@ When updating a record you can change in four different ways:
    ```eve disabled
    search @example
    [#person name]
    bound @browser
    bind @browser
    [#div text:name]
    ```

    @@ -185,10 +185,10 @@ And you believed to be Jim now has two names:

    ```eve disabled
    search @example
    [#me name]
    name = "Jim"
    person = [#me]
    person.name = "Jim"
    commit @browser
    name += "Tim"
    person.name += "Tim"
    ```

    ### Binding
  11. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 10 additions and 3 deletions.
    13 changes: 10 additions & 3 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -164,12 +164,20 @@ When updating a record you can change in four different ways:

    **Merge: <-** Merge two records together

    (Use this block to see the changes below. It'll be explained in a bit.)
    ```eve disabled
    search @example
    [#person name]
    bound @browser
    [#div text:name]
    ```

    Behold. What you believed to be Ruben is now Jim.

    ```eve disabled
    search @example
    me = [#me]
    commit
    commit @browser
    me.name := "Jim"
    ```

    @@ -179,11 +187,10 @@ And you believed to be Jim now has two names:
    search @example
    [#me name]
    name = "Jim"
    commit
    commit @browser
    name += "Tim"
    ```


    ### Binding

    Remember that binding defines a relationship between records.
  12. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 40 additions and 6 deletions.
    46 changes: 40 additions & 6 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -156,20 +156,54 @@ Great now I have something how do I change it? Remember you do that with the com

    When updating a record you can change in four different ways:

    **Add: +=** - Add another value to an attribute. So if you had an attribute on an attribute before, you now have two values on it.
    **Add: +=** Add another value to an attribute. So if you had an attribute on an attribute before, you now have two values on it.

    **Set: :=** - Update a value on an attribute.
    **Set: :=** Update a value on an attribute.

    **Remove: -=** - Remove a value from an attribute.
    **Remove: -=** Remove a value from an attribute.

    **Merge: <-** - Merge two records together
    **Merge: <-** Merge two records together

    Behold. What you believed to be Ruben is now Jim.

    ```eve disabled
    search @example
    me = [#me]
    commit
    me.name := "Jim"
    ```

    And you believed to be Jim now has two names:

    ```eve disabled
    search @example
    [#me name]
    name = "Jim"
    commit
    name := "Jim"
    name += "Tim"
    ```


    ### Binding

    Remember that binding defines a relationship between records.
    How does this differ from commit?

    A commit will happen every time a block is called and it can run, a bind will only update if the value has changed. For an example of this compare and contrast the two blocks below.

    **Commit**
    ```eve disabled
    search
    [#time seconds]
    commit @browser
    [#div text: seconds]
    ```

    **Bind**
    ```eve disabled
    search
    [#time seconds]
    bind @browser
    [#div text: seconds]
    ```

    Behold. What you believed to be Ruben is now Jim.
  13. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 11 additions and 13 deletions.
    24 changes: 11 additions & 13 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -101,7 +101,7 @@ commit @browser
    We could of also just used the `#me` tag because we know that I'm the only record with that tag.

    ```eve disabled
    search
    search @example
    ruben = [#me]
    commit @browser
    [#div text:ruben.name]
    @@ -110,7 +110,7 @@ commit @browser
    What happens if our search matches multiple records?

    ```eve disabled
    search
    search @example
    person = [#person]
    commit @browser
    [#div text:person.name]
    @@ -122,7 +122,7 @@ See no loops. One item? Run once. Multiple items? Run on all of them.
    We can even simplify our code by listing empty attributes and Eve will fill those in when it finds it:

    ```eve disabled
    search
    search @example
    [#person name]
    commit @browser
    [#div text:name]
    @@ -131,7 +131,7 @@ commit @browser
    Let's exclude Ruben from this party. We can do this with `not`.

    ```eve disabled
    search
    search @example
    [#person name]
    not(name = "Ruben")
    commit @browser
    @@ -141,13 +141,13 @@ commit @browser
    What happens when we search for something that doesn't exist:

    ```eve disabled
    search
    search @example
    [#you name]
    commit @browser
    [#div text:name]
    ```

    Nothing happens. Because Eve tries to find `#you` *(stop breath don't have an existential crisis you still exist. I hope. Also only you can see this.)* and can't so it stops executing this block. (Other blocks that it can find things it will still run however, so you always just write what you want to happen and if it can't happen then it just won't run.)
    Nothing happens. Because Eve tries to find `#you` and can't *(Stop. Breath. Don't have an existential crisis you still exist. I hope. Also only you can see this.)* so it stops executing this block. (Other blocks that it can find things it will still run however, so you always just write what you want to happen and if it can't happen then it just won't run.)


    ### Commiting
    @@ -165,13 +165,11 @@ When updating a record you can change in four different ways:
    **Merge: <-** - Merge two records together




    ```
    search
    Ruben = [name:"Ruben"]
    ```eve disabled
    search @example
    [#me name]
    commit
    Ruben.name := "John"
    name := "Jim"
    ```

    Which is a block that commits a record that contains a name with a value of "Ruben".
    Behold. What you believed to be Ruben is now Jim.
  14. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 27 additions and 6 deletions.
    33 changes: 27 additions & 6 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -68,7 +68,7 @@ No worries just use this link:
    Don't actually just reload the page because Eve saves things aggressively and sometimes it gets it wrong and reloading will just load back up that bad save data.


    ### More Examples of Eve code
    ### Searching

    Let look commit a few things and then look at searching.
    ```eve
    @@ -119,18 +119,39 @@ commit @browser
    When then all of those people will be listed. Because we found 3 records with the `#person` tag the `[#div text:person.name]` is run 3 times.
    See no loops. One item? Run once. Multiple items? Run on all of them.

    We can even simplify our code by listing empty attributes and Eve will fill those in when it finds it:

    ```eve disabled
    search
    [#person name]
    commit @browser
    [#div text:name]
    ```

    Which would be equivalent to the above as long as the record I'm looking for looked like this:
    `[#me name:"Ruben"]`

    Now that we found something we can that value into a variable by making it equal to something.
    Let's exclude Ruben from this party. We can do this with `not`.

    ```eve disabled
    search
    [#person name]
    not(name = "Ruben")
    commit @browser
    [#div text:name]
    ```

    What happens when we search for something that doesn't exist:

    ```eve disabled
    search
    Ruben = [name:"Ruben"]
    [#you name]
    commit @browser
    [#div text:name]
    ```

    Nothing happens. Because Eve tries to find `#you` *(stop breath don't have an existential crisis you still exist. I hope. Also only you can see this.)* and can't so it stops executing this block. (Other blocks that it can find things it will still run however, so you always just write what you want to happen and if it can't happen then it just won't run.)


    ### Commiting

    Great now I have something how do I change it? Remember you do that with the commit action.

    When updating a record you can change in four different ways:
  15. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 26 additions and 8 deletions.
    34 changes: 26 additions & 8 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -46,7 +46,7 @@ Databases are just a collection of records. You do that by specifying the Databa
    Certain Databases have special meaning such as: @browser, @event, @http. But we are only going to use the @browser Database today.


    ### Examples of Eve code
    ### Example of Eve code

    Great now that we know how things look let's look at and play with some Eve code.
    The code below is disabled. *(You can tell because the checkbox in the upper right of the box is unchecked.)*
    @@ -68,10 +68,11 @@ No worries just use this link:
    Don't actually just reload the page because Eve saves things aggressively and sometimes it gets it wrong and reloading will just load back up that bad save data.


    ### More Examples of Eve code

    Let look commit a few things and then look at searching.
    ```eve
    commit
    commit @example
    [#person #me name:"Ruben"]
    [#person name:"John"]
    [#person name:"Jerry"]
    @@ -80,29 +81,46 @@ commit
    Great now let's search for them and display them.
    *(Remember to enable this code and run it.)*
    ```eve disabled
    search
    search @example
    ruben = [#person #me name:"Ruben"]
    commit @browser
    [#div text:"{{ruben.name}}"]
    [#div text:ruben.name]
    ```

    What we did above is search for the record `[#person #me name:"Ruben"]` put that in a variable named `ruben` and then commited that varible's name attribute to the text of a div record in the browser.

    When searching we don't have to be super exact, we could of dropped the `#me` tag.

    ```eve disabled
    search
    search @example
    ruben = [#person name:"Ruben"]
    commit @browser
    [#div text:"{{ruben.name}}"]
    [#div text:ruben.name]
    ```

    Great now let's search for them.
    We could of also just used the `#me` tag because we know that I'm the only record with that tag.

    ```eve disabled
    search
    ruben = [#me]
    commit @browser
    [#div text:"{{ruben.name}}"]
    [#div text:ruben.name]
    ```

    What happens if our search matches multiple records?

    ```eve disabled
    search
    person = [#person]
    commit @browser
    [#div text:person.name]
    ```

    When then all of those people will be listed. Because we found 3 records with the `#person` tag the `[#div text:person.name]` is run 3 times.
    See no loops. One item? Run once. Multiple items? Run on all of them.



    Which would be equivalent to the above as long as the record I'm looking for looked like this:
    `[#me name:"Ruben"]`

  16. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 31 additions and 3 deletions.
    34 changes: 31 additions & 3 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -35,7 +35,7 @@ There are three types of Actions

    **commit** - Update or Create a Record

    **bind** - Define relationships between Records. For example: "When this record update, update this record too".
    **bind** - Define relationships between Records. For example: "When this record updates, update this record too".

    These actions can be mixed and matched into Blocks. They usually come in the form of Search and then Commit or Search and then Bind. But they can be mixed and matched in anyway you want. Commit then Search and Bind? Sure! Remember order doesn't matter in Eve.

    @@ -60,6 +60,7 @@ commit @browser
    Which is a block that commits to the browser database a record with a tag of div and an attribute and value pair of text and "Hello World!".
    The div tag in the browser db has a special meaning. That meaning is: "render this as a div". Feel free to change the text of it.


    ### Help I broke something!

    No worries just use this link:
    @@ -68,11 +69,38 @@ Don't actually just reload the page because Eve saves things aggressively and so



    Which is a block that searches a record that contains a name with a value of "Ruben". I can also search by tags:
    Let look commit a few things and then look at searching.
    ```eve
    commit
    [#person #me name:"Ruben"]
    [#person name:"John"]
    [#person name:"Jerry"]
    ```

    Great now let's search for them and display them.
    *(Remember to enable this code and run it.)*
    ```eve disabled
    search
    ruben = [#person #me name:"Ruben"]
    commit @browser
    [#div text:"{{ruben.name}}"]
    ```



    ```eve disabled
    search
    ruben = [#person name:"Ruben"]
    commit @browser
    [#div text:"{{ruben.name}}"]
    ```

    Great now let's search for them.
    ```eve disabled
    search
    [#me]
    ruben = [#me]
    commit @browser
    [#div text:"{{ruben.name}}"]
    ```

    Which would be equivalent to the above as long as the record I'm looking for looked like this:
  17. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -63,7 +63,7 @@ The div tag in the browser db has a special meaning. That meaning is: "render th
    ### Help I broke something!

    No worries just use this link:
    [Reset](goo.gl/VqBtuF)
    [Reset](https://goo.gl/VqBtuF)
    Don't actually just reload the page because Eve saves things aggressively and sometimes it gets it wrong and reloading will just load back up that bad save data.


  18. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -63,7 +63,7 @@ The div tag in the browser db has a special meaning. That meaning is: "render th
    ### Help I broke something!

    No worries just use this link:
    (Reset)[goo.gl/VqBtuF]
    [Reset](goo.gl/VqBtuF)
    Don't actually just reload the page because Eve saves things aggressively and sometimes it gets it wrong and reloading will just load back up that bad save data.


  19. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 12 additions and 1 deletion.
    13 changes: 12 additions & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -49,14 +49,25 @@ Certain Databases have special meaning such as: @browser, @event, @http. But we
    ### Examples of Eve code

    Great now that we know how things look let's look at and play with some Eve code.
    The code below is disabled. (You can tell because the checkbox in the upper right of the box is unchecked.)
    The code below is disabled. *(You can tell because the checkbox in the upper right of the box is unchecked.)*
    Let's check it and run the code.

    ~~~eve disabled
    commit @browser
    [#div text:"Hello world!"]
    ~~~

    Which is a block that commits to the browser database a record with a tag of div and an attribute and value pair of text and "Hello World!".
    The div tag in the browser db has a special meaning. That meaning is: "render this as a div". Feel free to change the text of it.

    ### Help I broke something!

    No worries just use this link:
    (Reset)[goo.gl/VqBtuF]
    Don't actually just reload the page because Eve saves things aggressively and sometimes it gets it wrong and reloading will just load back up that bad save data.



    Which is a block that searches a record that contains a name with a value of "Ruben". I can also search by tags:

    ```
  20. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 8 additions and 6 deletions.
    14 changes: 8 additions & 6 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -48,12 +48,14 @@ Certain Databases have special meaning such as: @browser, @event, @http. But we

    ### Examples of Eve code

    Great now that we have the fundementals let's look at and play with some Eve code.

    ```
    search
    [name:"Ruben"]
    ```
    Great now that we know how things look let's look at and play with some Eve code.
    The code below is disabled. (You can tell because the checkbox in the upper right of the box is unchecked.)
    Let's check it and run the code.

    ~~~eve disabled
    commit @browser
    [#div text:"Hello world!"]
    ~~~

    Which is a block that searches a record that contains a name with a value of "Ruben". I can also search by tags:

  21. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 54 additions and 6 deletions.
    60 changes: 54 additions & 6 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -8,6 +8,7 @@ If you ever have questions about one of the concepts in here feel free to raise

    With pleasantries out of the way let's learn some Eve!


    ## Records

    Anything between square brackets, for example
    @@ -30,20 +31,67 @@ Which is just a shorthand way of doing:
    To do things in Eve we perform actions on Records.
    There are three types of Actions

    **Search** - Find Records
    **search** - Find Records

    **Commit** - Update or Create a Record
    **commit** - Update or Create a Record

    **Bind** - Define relationships between Records. For example: "When this record update, update this record too".
    **bind** - Define relationships between Records. For example: "When this record update, update this record too".

    These actions can be mixed and matched into Blocks. They usually come in the form of Search and then Commit or Search and then Bind. But they can be mixed and matched in anyway you want. Commit then Search and Bind? Sure! Remember order doesn't matter in Eve.

    Here are some examples of how that looks:

    Each action can perform their action on a **Database**.
    Databases are just a collection of records. You do that by specifying the Database after the Action with an at sign, @.
    `search @browser`
    Certain Databases have special meaning such as: @browser, @event, @http. But we are only going to use the @browser Database today.


    ### Examples of Eve code

    Great now that we have the fundementals let's look at and play with some Eve code.

    ```
    commit
    search
    [name:"Ruben"]
    ```

    Which is a block that commits a record that contains a name with a value of "Ruben".
    Which is a block that searches a record that contains a name with a value of "Ruben". I can also search by tags:

    ```
    search
    [#me]
    ```

    Which would be equivalent to the above as long as the record I'm looking for looked like this:
    `[#me name:"Ruben"]`

    Now that we found something we can that value into a variable by making it equal to something.

    ```
    search
    Ruben = [name:"Ruben"]
    ```

    Great now I have something how do I change it? Remember you do that with the commit action.

    When updating a record you can change in four different ways:

    **Add: +=** - Add another value to an attribute. So if you had an attribute on an attribute before, you now have two values on it.

    **Set: :=** - Update a value on an attribute.

    **Remove: -=** - Remove a value from an attribute.

    **Merge: <-** - Merge two records together




    ```
    search
    Ruben = [name:"Ruben"]
    commit
    Ruben.name := "John"
    ```

    Which is a block that commits a record that contains a name with a value of "Ruben".
  22. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 7 additions and 7 deletions.
    14 changes: 7 additions & 7 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -30,20 +30,20 @@ Which is just a shorthand way of doing:
    To do things in Eve we perform actions on Records.
    There are three types of Actions

    - Search - Find Records
    **Search** - Find Records

    - Commit - Update or Create a Record
    **Commit** - Update or Create a Record

    - Bind - Define relationships between Records
    - When this record update, update this record too
    - When this record updates, update the screen
    **Bind** - Define relationships between Records. For example: "When this record update, update this record too".

    These actions can be mixed and matched into Blocks. They usually come in the form of Search and then Commit or Search and then Bind. But they can be mixed and matched in anyway you want. Commit then Search and Bind? Sure! Remember order doesn't matter in Eve.

    Here are some examples of how that looks:

    `
    ```
    commit
    [name:"Ruben"]
    `
    ```

    Which is a block that commits a record that contains a name with a value of "Ruben".

  23. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -30,13 +30,13 @@ Which is just a shorthand way of doing:
    To do things in Eve we perform actions on Records.
    There are three types of Actions

    Search - Find Records
    - Search - Find Records

    Commit - Update or Create a Record
    - Commit - Update or Create a Record

    Bind - Define relationships between Records
    When this record update, update this record too
    When this record updates, update the screen
    - Bind - Define relationships between Records
    - When this record update, update this record too
    - When this record updates, update the screen

    These actions can be mixed and matched into Blocks. They usually come in the form of Search and then Commit or Search and then Bind. But they can be mixed and matched in anyway you want. Commit then Search and Bind? Sure! Remember order doesn't matter in Eve.

  24. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 25 additions and 2 deletions.
    27 changes: 25 additions & 2 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -20,7 +20,30 @@ Records store data in a attribute value pair:
    Records can store numbers, strings, booleans, lists, or even other records.

    Records are usually given tags, which begin with a hashtag: #, to help find query or find them:
    `[#me #hashTagsAreSo2007 lameJoke: true, name: “Ruben”]`
    `[#me #hash-tags-are-so-2007 lame-joke: true, name: “Ruben”]`
    Which is just a shorthand way of doing:
    `[tag: ”me”, tag: ”hashTagsAreSo2007”, lameJoke: true, name: “Ruben”]`
    `[tag: ”me”, tag: ”hash-tags-are-so-2007”, lame-joke: true, name: “Ruben”]`


    ## Actions

    To do things in Eve we perform actions on Records.
    There are three types of Actions

    Search - Find Records

    Commit - Update or Create a Record

    Bind - Define relationships between Records
    When this record update, update this record too
    When this record updates, update the screen

    These actions can be mixed and matched into Blocks. They usually come in the form of Search and then Commit or Search and then Bind. But they can be mixed and matched in anyway you want. Commit then Search and Bind? Sure! Remember order doesn't matter in Eve.

    Here are some examples of how that looks:

    `
    commit
    [name:"Ruben"]
    `

  25. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 7 additions and 12 deletions.
    19 changes: 7 additions & 12 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -8,24 +8,19 @@ If you ever have questions about one of the concepts in here feel free to raise

    With pleasantries out of the way let's learn some Eve!

    # Records
    ## Records

    Anything between square brackets, for example
    ~~~eve disabled
    [name: “Ruben”]
    ~~~
    `[name: “Ruben”]`
    is a Record.

    Records are the facts or variables of Eve, they are how you store data that is important to you.
    Records store data in a attribute value pair:
    ~~~eve disabled
    [ string: “Value”, num: 2017, list: (1, 2, 3), boolean: false, record: [data: 23] ]
    ~~~
    `[string: “Value”, num: 2017, list: (1, 2, 3), boolean: false, record: [data: 23]]`
    Records can store numbers, strings, booleans, lists, or even other records.

    Records are usually given tags, which begin with a hashtag: #, to help find query or find them:
    ~~~eve disabled
    [ #me #hashTagsAreSo2007 lameJoke: true, name: “Ruben” ]
    // Which is just a shorthand way of doing:
    [ tag: ”me”, tag: ”hashTagsAreSo2007”, lameJoke: true, name: “Ruben” ]
    ~~~
    `[#me #hashTagsAreSo2007 lameJoke: true, name: “Ruben”]`
    Which is just a shorthand way of doing:
    `[tag: ”me”, tag: ”hashTagsAreSo2007”, lameJoke: true, name: “Ruben”]`

  26. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,9 @@ With pleasantries out of the way let's learn some Eve!
    # Records

    Anything between square brackets, for example
    `[name: “Ruben”]`
    ~~~eve disabled
    [name: “Ruben”]
    ~~~
    is a Record.

    Records are the facts or variables of Eve, they are how you store data that is important to you.
  27. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ With pleasantries out of the way let's learn some Eve!
    # Records

    Anything between square brackets, for example
    > [name: “Ruben”]
    `[name: “Ruben”]`
    is a Record.

    Records are the facts or variables of Eve, they are how you store data that is important to you.
  28. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@ With pleasantries out of the way let's learn some Eve!

    # Records

    Anything between square brackets, for example:
    Anything between square brackets, for example
    > [name: “Ruben”]
    is a Record.

  29. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 1 addition and 3 deletions.
    4 changes: 1 addition & 3 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -11,9 +11,7 @@ With pleasantries out of the way let's learn some Eve!
    # Records

    Anything between square brackets, for example:
    ~~~eve disabled
    [name: “Ruben”]
    ~~~
    > [name: “Ruben”]
    is a Record.

    Records are the facts or variables of Eve, they are how you store data that is important to you.
  30. RubenSandwich revised this gist Jan 17, 2017. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions eveIntroOne.eve
    Original file line number Diff line number Diff line change
    @@ -11,20 +11,20 @@ With pleasantries out of the way let's learn some Eve!
    # Records

    Anything between square brackets, for example:
    ~~~eve
    [ name: “Ruben” ]
    ~~~eve disabled
    [name: “Ruben”]
    ~~~
    is a Record.

    Records are the facts or variables of Eve, they are how you store data that is important to you.
    Records store data in a attribute value pair:
    ~~~eve
    ~~~eve disabled
    [ string: “Value”, num: 2017, list: (1, 2, 3), boolean: false, record: [data: 23] ]
    ~~~
    Records can store numbers, strings, booleans, lists, or even other records.

    Records are usually given tags, which begin with a hashtag: #, to help find query or find them:
    ~~~eve
    ~~~eve disabled
    [ #me #hashTagsAreSo2007 lameJoke: true, name: “Ruben” ]
    // Which is just a shorthand way of doing:
    [ tag: ”me”, tag: ”hashTagsAreSo2007”, lameJoke: true, name: “Ruben” ]